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
Public Methods
InputStream | |
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
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 as1.14.1
or1.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 as1.14.2
.