Back to Tensorflow

MetadataExtractor

tensorflow/lite/g3doc/api_docs/java/org/tensorflow/lite/support/metadata/MetadataExtractor.html

2.21.011.7 KB
Original Source

public class MetadataExtractor

Loads metadata from TFLite Model FlatBuffer.

TFLite Model FlatBuffer can be generated using the TFLite Model schema file.

Some models contain a TFLite Metadata Flatbuffer, which records more information about what the model does and how to interprete the model. TFLite Metadata Flatbuffer can be generated using the TFLite Metadata schema file.

It is allowed to pass in a model FlatBuffer without TFLite metadata. However, invoking methods that read from TFLite metadata will cause runtime errors.

Similarly, it is allowed to pass in a model FlatBuffer without associated files. However, invoking methods that read the associated files will cause runtime errors.

Though TFLite model FlatBuffer supports multiple subgraphs, TFLite Interpreter only supports a single subgraph so far. See the instruction of how to specify subgraph during convertion for more information. Therefore, MetadataExtractor omits subgraph index as an input in its methods.

Nested Classes

| class | MetadataExtractor.QuantizationParams | Quantization parameters that corresponds to the table, QuantizationParameters, in the TFLite Model schema file. |

Public Constructors

| | MetadataExtractor(ByteBuffer buffer) Creates a MetadataExtractor with TFLite model FlatBuffer.

|

Public Methods

| InputStream | getAssociatedFile(String fileName) Gets the packed associated file with the specified fileName.

| | Set<String> | getAssociatedFileNames() Gets the file names of the associated files.

| | int | getInputTensorCount() Gets the count of input tensors in the model.

| | TensorMetadata | getInputTensorMetadata(int inputIndex) Gets the metadata for the input tensor specified by inputIndex.

| | MetadataExtractor.QuantizationParams | getInputTensorQuantizationParams(int inputIndex) Gets the quantization parameters for the input tensor specified by inputIndex.

| | int[] | getInputTensorShape(int inputIndex) Gets the shape of the input tensor with inputIndex.

| | byte | getInputTensorType(int inputIndex) Gets the ERROR(/TensorType) of the input tensor with inputIndex.

| | ModelMetadata | getModelMetadata() Gets the root handler for the model metadata.

| | int | getOutputTensorCount() Gets the count of output tensors in the model.

| | TensorMetadata | getOutputTensorMetadata(int outputIndex) Gets the metadata for the output tensor specified by outputIndex.

| | MetadataExtractor.QuantizationParams | getOutputTensorQuantizationParams(int outputIndex) Gets the quantization parameters for the output tensor specified by outputIndex.

| | int[] | getOutputTensorShape(int outputIndex) Gets the shape of the output tensor with outputIndex.

| | byte | getOutputTensorType(int outputIndex) Gets the ERROR(/TensorType) of the output tensor with outputIndex.

| | boolean | hasMetadata() Returns true if the model has metadata.

| | final boolean | isMinimumParserVersionSatisfied() Returns true if the minimum parser version required by the given metadata flatbuffer precedes or equals to the version of the metadata parser that this MetadataExtractor library is relying on.

|

Inherited Methods

From class java.lang.Object

| boolean | equals(Object arg0) | | final Class<?> | getClass() | | int | hashCode() | | final void | notify() | | final void | notifyAll() | | String | toString() | | final void | wait(long arg0, int arg1) | | final void | wait(long arg0) | | final void | wait() |

Public Constructors

public MetadataExtractor (ByteBuffer buffer)

Creates a MetadataExtractor with TFLite model FlatBuffer.

Parameters

| buffer | the TFLite model FlatBuffer |

Throws

| IllegalArgumentException | if the number of input or output tensors in the model does not match that in the metadata | | IOException | if an error occurs while reading the model as a Zip file |

Public Methods

public InputStream getAssociatedFile (String fileName)

Gets the packed associated file with the specified fileName.

Parameters

| fileName | the name of the associated file |

Returns
  • the raw input stream containing specified file
Throws

| IllegalStateException | if the model is not a zip file | | IllegalArgumentException | if the specified file does not exist in the model |

public Set<String> getAssociatedFileNames ()

Gets the file names of the associated files.

Returns
  • the file names of the associated files
Throws

| IllegalStateException | if the model is not a zip file |

public int getInputTensorCount ()

Gets the count of input tensors in the model.

public TensorMetadata getInputTensorMetadata (int inputIndex)

Gets the metadata for the input tensor specified by inputIndex.

Parameters

| inputIndex | the index of the desired input tensor |

Throws

| IllegalStateException | if this model does not contain model metadata |

public MetadataExtractor.QuantizationParams getInputTensorQuantizationParams (int inputIndex)

Gets the quantization parameters for the input tensor specified by inputIndex.

Parameters

| inputIndex | the index of the desired input tensor |

public int[] getInputTensorShape (int inputIndex)

Gets the shape of the input tensor with inputIndex.

Parameters

| inputIndex | the index of the desired input tensor |

public byte getInputTensorType (int inputIndex)

Gets the ERROR(/TensorType) of the input tensor with inputIndex.

Parameters

| inputIndex | the index of the desired input tensor |

public ModelMetadata getModelMetadata ()

Gets the root handler for the model metadata.

Throws

| IllegalStateException | if this model does not contain model metadata |

public int getOutputTensorCount ()

Gets the count of output tensors in the model.

public TensorMetadata getOutputTensorMetadata (int outputIndex)

Gets the metadata for the output tensor specified by outputIndex.

Parameters

| outputIndex | the index of the desired output tensor |

Throws

| IllegalStateException | if this model does not contain model metadata |

public MetadataExtractor.QuantizationParams getOutputTensorQuantizationParams (int outputIndex)

Gets the quantization parameters for the output tensor specified by outputIndex.

Parameters

| outputIndex | the index of the desired output tensor |

public int[] getOutputTensorShape (int outputIndex)

Gets the shape of the output tensor with outputIndex.

Parameters

| outputIndex | the index of the desired output tensor |

public byte getOutputTensorType (int outputIndex)

Gets the ERROR(/TensorType) of the output tensor with outputIndex.

Parameters

| outputIndex | the index of the desired output tensor |

public boolean hasMetadata ()

Returns true if the model has metadata. Otherwise, returns false.

public final boolean isMinimumParserVersionSatisfied ()

Returns true if the minimum parser version required by the given metadata flatbuffer precedes or equals to the version of the metadata parser that this MetadataExtractor library is relying on. All fields in the metadata can be parsed correctly with this metadata extractor library in this case. Otherwise, it returns false.

For example, assume the underlying metadata parser version is 1.14.1,

  • it returns true, if the required minimum parser version is the same or older, such as 1.14.1 or 1.14.0. Null version precedes all numeric versions, because some metadata flatbuffers are generated before the first versioned release;
  • it returns false, if the required minimum parser version is newer, such as 1.14.2.