Class TensorFlowSavedModelExternalModel<T extends Output<T>>

java.lang.Object
org.tribuo.Model<T>
org.tribuo.interop.ExternalModel<T,TensorMap,TensorMap>
org.tribuo.interop.tensorflow.TensorFlowSavedModelExternalModel<T>
All Implemented Interfaces:
com.oracle.labs.mlrg.olcut.provenance.Provenancable<ModelProvenance>, Closeable, Serializable, AutoCloseable

public final class TensorFlowSavedModelExternalModel<T extends Output<T>> extends ExternalModel<T,TensorMap,TensorMap> implements Closeable
A Tribuo wrapper around a TensorFlow saved model bundle.

The model's serialVersionUID is set to the major TensorFlow version number times 100.

N.B. TensorFlow support is experimental and may change without a major version bump.

See Also:
  • Method Details

    • convertFeatures

      protected TensorMap convertFeatures(SparseVector input)
      Description copied from class: ExternalModel
      Converts from a SparseVector using the external model's indices into the ingestion format for the external model.
      Specified by:
      convertFeatures in class ExternalModel<T extends Output<T>,TensorMap,TensorMap>
      Parameters:
      input - The features using external indices.
      Returns:
      The ingestion format for the external model.
    • convertFeaturesList

      protected TensorMap convertFeaturesList(List<SparseVector> input)
      Description copied from class: ExternalModel
      Converts from a list of SparseVector using the external model's indices into the ingestion format for the external model.
      Specified by:
      convertFeaturesList in class ExternalModel<T extends Output<T>,TensorMap,TensorMap>
      Parameters:
      input - The features using external indices.
      Returns:
      The ingestion format for the external model.
    • externalPrediction

      protected TensorMap externalPrediction(TensorMap input)
      Runs the session to make a prediction.

      Closes the input tensor after the prediction has been made.

      Specified by:
      externalPrediction in class ExternalModel<T extends Output<T>,TensorMap,TensorMap>
      Parameters:
      input - The input in the external model's format.
      Returns:
      A tensor representing the output.
    • convertOutput

      protected Prediction<T> convertOutput(TensorMap output, int numValidFeatures, Example<T> example)
      Converts a tensor into a prediction. Closes the output tensor after it's been converted.
      Specified by:
      convertOutput in class ExternalModel<T extends Output<T>,TensorMap,TensorMap>
      Parameters:
      output - The output of the external model.
      numValidFeatures - The number of valid features in the input.
      example - The input example, used to construct the Prediction.
      Returns:
      A Prediction representing this tensor output.
    • convertOutput

      protected List<Prediction<T>> convertOutput(TensorMap output, int[] numValidFeatures, List<Example<T>> examples)
      Converts a tensor into a prediction. Closes the output tensor after it's been converted.
      Specified by:
      convertOutput in class ExternalModel<T extends Output<T>,TensorMap,TensorMap>
      Parameters:
      output - The output of the external model.
      numValidFeatures - An array with the number of valid features in each example.
      examples - The input examples, used to construct the Predictions.
      Returns:
      A list of Prediction representing this tensor output.
    • getTopFeatures

      public Map<String,List<com.oracle.labs.mlrg.olcut.util.Pair<String,Double>>> getTopFeatures(int n)
      Description copied from class: Model
      Gets the top n features associated with this model.

      If the model does not produce per output feature lists, it returns a map with a single element with key Model.ALL_OUTPUTS.

      If the model cannot describe it's top features then it returns Collections.emptyMap().

      Specified by:
      getTopFeatures in class Model<T extends Output<T>>
      Parameters:
      n - the number of features to return. If this value is less than 0, all features should be returned for each class, unless the model cannot score it's features.
      Returns:
      a map from string outputs to an ordered list of pairs of feature names and weights associated with that feature in the model
    • copy

      protected Model<T> copy(String newName, ModelProvenance newProvenance)
      Description copied from class: Model
      Copies a model, replacing its provenance and name with the supplied values.

      Used to provide the provenance removal functionality.

      Specified by:
      copy in class Model<T extends Output<T>>
      Parameters:
      newName - The new name.
      newProvenance - The new provenance.
      Returns:
      A copy of the model.
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
    • createTensorflowModel

      public static <T extends Output<T>> TensorFlowSavedModelExternalModel<T> createTensorflowModel(OutputFactory<T> factory, Map<String,Integer> featureMapping, Map<T,Integer> outputMapping, String outputName, FeatureConverter featureConverter, OutputConverter<T> outputConverter, String bundleDirectory)
      Creates a TensorflowSavedModelExternalModel by loading in a SavedModelBundle.

      Throws IllegalArgumentException if the model bundle could not be loaded.

      Type Parameters:
      T - The type of the output.
      Parameters:
      factory - The output factory.
      featureMapping - The feature mapping between Tribuo's names and the TF integer ids.
      outputMapping - The output mapping between Tribuo's names and the TF integer ids.
      outputName - The name of the output tensor.
      featureConverter - The feature transformation function.
      outputConverter - The output transformation function.
      bundleDirectory - The path to load the saved model bundle from.
      Returns:
      The TF model wrapped in a Tribuo ExternalModel.