DnnImageFeaturizerEstimator Class

Definition

Applies a pre-trained deep neural network (DNN) model to featurize input image data.

public sealed class DnnImageFeaturizerEstimator : Microsoft.ML.IEstimator<Microsoft.ML.Data.TransformerChain<Microsoft.ML.Transforms.ColumnCopyingTransformer>>
type DnnImageFeaturizerEstimator = class
    interface IEstimator<TransformerChain<ColumnCopyingTransformer>>
Public NotInheritable Class DnnImageFeaturizerEstimator
Implements IEstimator(Of TransformerChain(Of ColumnCopyingTransformer))
Inheritance
DnnImageFeaturizerEstimator
Implements

Remarks

Estimator Characteristics

Does this estimator need to look at the data to train its parameters? No
Input column data type Vector of Single
Output column data type Vector of Single, the size of the vector depends on the pre-trained DNN
Exportable to ONNX No

NuGet requirements:

  • Microsoft.ML.OnnxTransformer
  • Microsoft.ML.OnnxRuntime.Gpu (only if GPU processing is used)
  • Each pre-trained DNN model has a separate NuGet that must be included if that model is used:
    • Microsoft.ML.DnnImageFeaturizer.AlexNet
    • Microsoft.ML.DnnImageFeaturizer.ResNet18
    • Microsoft.ML.DnnImageFeaturizer.ResNet50
    • Microsoft.ML.DnnImageFeaturizer.ResNet101

The resulting transformer creates a new column, named as specified in the output column name parameters, where a pre-trained deep neural network is applied to the input image data.

This estimator is a wrapper around a OnnxScoringEstimator with the current available DNN pre-trained models and several ColumnCopyingEstimator. The ColumnCopyingEstimator are needed to allow arbitrary column input and output names, since otherwise the OnnxScoringEstimator would require the column names to match the names of the ONNX model nodes.

Any platform requirement for this estimator will follow the requirements on the OnnxScoringEstimator.

Check the See Also section for links to usage examples.

Methods

Fit(IDataView)

Note that OnnxEstimator which this is based on is a trivial estimator, so this does not do any actual training, just verifies the schema.

GetOutputSchema(SchemaShape)

Extension Methods

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Append a 'caching checkpoint' to the estimator chain. This will ensure that the downstream estimators will be trained against cached data. It is helpful to have a caching checkpoint before trainers that take multiple data passes.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Given an estimator, return a wrapping object that will call a delegate once Fit(IDataView) is called. It is often important for an estimator to return information about what was fit, which is why the Fit(IDataView) method returns a specifically typed object, rather than just a general ITransformer. However, at the same time, IEstimator<TTransformer> are often formed into pipelines with many objects, so we may need to build a chain of estimators via EstimatorChain<TLastTransformer> where the estimator for which we want to get the transformer is buried somewhere in this chain. For that scenario, we can through this method attach a delegate that will be called once fit is called.

Applies to

See also