DnnImageFeaturizerEstimator Class


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))


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

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.



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


Extension Methods

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