Updates TOCO documentation.
PiperOrigin-RevId: 202577530
This commit is contained in:
parent
9ab9d5e034
commit
78d7a7783a
tensorflow/contrib/lite
@ -132,7 +132,7 @@ class TocoConverter(object):
|
||||
|
||||
Args:
|
||||
|
||||
graph_def: TensorFlow GraphDef.
|
||||
graph_def: Frozen TensorFlow GraphDef.
|
||||
input_tensors: List of input tensors. Type and shape are computed using
|
||||
`foo.get_shape()` and `foo.dtype`.
|
||||
output_tensors: List of output tensors (only .name is used from this).
|
||||
@ -178,7 +178,7 @@ class TocoConverter(object):
|
||||
"""Creates a TocoConverter class from a file containing a frozen GraphDef.
|
||||
|
||||
Args:
|
||||
graph_def_file: Full filepath of file containing TensorFlow GraphDef.
|
||||
graph_def_file: Full filepath of file containing frozen GraphDef.
|
||||
input_arrays: List of input tensors to freeze graph with.
|
||||
output_arrays: List of output tensors to freeze graph with.
|
||||
input_shapes: Dict of strings representing input tensor names to list of
|
||||
|
@ -225,7 +225,7 @@ def run_main(_):
|
||||
input_file_group.add_argument(
|
||||
"--graph_def_file",
|
||||
type=str,
|
||||
help="Full filepath of file containing TensorFlow GraphDef.")
|
||||
help="Full filepath of file containing frozen TensorFlow GraphDef.")
|
||||
input_file_group.add_argument(
|
||||
"--saved_model_dir",
|
||||
type=str,
|
||||
|
@ -17,11 +17,12 @@ Usage information is given in these documents:
|
||||
Once an application developer has a trained TensorFlow model, TOCO will accept
|
||||
that model and generate a TensorFlow Lite
|
||||
[FlatBuffer](https://google.github.io/flatbuffers/) file. TOCO currently supports
|
||||
[SavedModels](https://www.tensorflow.org/guide/saved_model#using_savedmodel_with_estimators)
|
||||
and frozen graphs (models generated via
|
||||
[freeze_graph.py](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph.py)).
|
||||
The TensorFlow Lite FlatBuffer file can be shipped to client devices, generally
|
||||
mobile devices, where the TensorFlow Lite interpreter handles them on-device.
|
||||
This flow is represented in the diagram below.
|
||||
[SavedModels](https://www.tensorflow.org/guide/saved_model#using_savedmodel_with_estimators),
|
||||
frozen graphs (models generated via
|
||||
[freeze_graph.py](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph.py)),
|
||||
and `tf.Keras` model files. The TensorFlow Lite FlatBuffer file can be shipped
|
||||
to client devices, generally mobile devices, where the TensorFlow Lite
|
||||
interpreter handles them on-device. This flow is represented in the diagram
|
||||
below.
|
||||
|
||||

|
||||
|
@ -11,8 +11,10 @@ Table of contents:
|
||||
|
||||
* [Command-line tools](#tools)
|
||||
* [Converting models prior to TensorFlow 1.9.](#pre-tensorflow-1.9)
|
||||
* [Convert a TensorFlow GraphDef](#graphdef)
|
||||
* [Convert a TensorFlow SavedModel](#savedmodel)
|
||||
* [Basic examples](#basic)
|
||||
* [Convert a TensorFlow GraphDef](#graphdef)
|
||||
* [Convert a TensorFlow SavedModel](#savedmodel)
|
||||
* [Convert a tf.keras model](#keras)
|
||||
* [Quantization](#quantization)
|
||||
* [Convert a TensorFlow GraphDef for quantized inference](#graphdef-quant)
|
||||
* [Use "dummy-quantization" to try out quantized inference on a float
|
||||
@ -51,7 +53,12 @@ API](python_api.md#pre-tensorflow-1.9). If a command line tool is desired, the
|
||||
Terminal for additional details on the command-line flags available. There were
|
||||
no command line tools in TensorFlow 1.8.
|
||||
|
||||
## Convert a TensorFlow GraphDef <a name="graphdef"></a>
|
||||
## Basic examples <a name="basic"></a>
|
||||
|
||||
The following section shows examples of how to convert a basic float-point model
|
||||
from each of the supported data formats into a TensorFlow Lite FlatBuffers.
|
||||
|
||||
### Convert a TensorFlow GraphDef <a name="graphdef"></a>
|
||||
|
||||
The follow example converts a basic TensorFlow GraphDef (frozen by
|
||||
[freeze_graph.py](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph.py))
|
||||
@ -70,7 +77,7 @@ tflite_convert \
|
||||
|
||||
The value for `input_shapes` is automatically determined whenever possible.
|
||||
|
||||
## Convert a TensorFlow SavedModel <a name="savedmodel"></a>
|
||||
### Convert a TensorFlow SavedModel <a name="savedmodel"></a>
|
||||
|
||||
The follow example converts a basic TensorFlow SavedModel into a Tensorflow Lite
|
||||
FlatBuffer to perform floating-point inference.
|
||||
@ -95,6 +102,17 @@ There is currently no support for MetaGraphDefs without a SignatureDef or for
|
||||
MetaGraphDefs that use the [`assets/`
|
||||
directory](https://www.tensorflow.org/guide/saved_model#structure_of_a_savedmodel_directory).
|
||||
|
||||
### Convert a tf.Keras model <a name="keras"></a>
|
||||
|
||||
The following example converts a `tf.keras` model into a TensorFlow Lite
|
||||
Flatbuffer. The `tf.keras` file must contain both the model and the weights.
|
||||
|
||||
```
|
||||
tflite_convert \
|
||||
--output_file=/tmp/foo.tflite \
|
||||
--keras_model_file=/tmp/keras_model.h5
|
||||
```
|
||||
|
||||
## Quantization
|
||||
|
||||
### Convert a TensorFlow GraphDef for quantized inference <a name="graphdef-quant"></a>
|
||||
|
@ -19,7 +19,7 @@ Table of contents:
|
||||
|
||||
The following high level flags specify the details of the input and output
|
||||
files. The flag `--output_file` is always required. Additionally, either
|
||||
`--graph_def_file` or `--saved_model_dir` is required.
|
||||
`--graph_def_file`, `--saved_model_dir` or `--keras_model_file` is required.
|
||||
|
||||
* `--output_file`. Type: string. Specifies the full path of the output file.
|
||||
* `--graph_def_file`. Type: string. Specifies the full path of the input
|
||||
@ -27,6 +27,8 @@ files. The flag `--output_file` is always required. Additionally, either
|
||||
[freeze_graph.py](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph.py).
|
||||
* `--saved_model_dir`. Type: string. Specifies the full path to the directory
|
||||
containing the SavedModel.
|
||||
* `--keras_model_file`. Type: string. Specifies the full path of the HDF5 file
|
||||
containing the tf.keras model.
|
||||
* `--output_format`. Type: string. Default: `TFLITE`. Specifies the format of
|
||||
the output file. Allowed values:
|
||||
* `TFLITE`: TensorFlow Lite FlatBuffer format.
|
||||
|
@ -41,9 +41,11 @@ is `tf.contrib.lite.TocoConverter`. The API for calling the Python intepreter is
|
||||
|
||||
`TocoConverter` provides class methods based on the original format of the
|
||||
model. `TocoConverter.from_session()` is available for GraphDefs.
|
||||
`TocoConverter.from_saved_model()` is available for SavedModels. Example usages
|
||||
for simple float-point models are shown in [Basic Examples](#basic). Examples
|
||||
usages for more complex models is shown in [Complex Examples](#complex).
|
||||
`TocoConverter.from_saved_model()` is available for SavedModels.
|
||||
`TocoConverter.from_keras_model_file()` is available for `tf.Keras` files.
|
||||
Example usages for simple float-point models are shown in [Basic
|
||||
Examples](#basic). Examples usages for more complex models is shown in [Complex
|
||||
Examples](#complex).
|
||||
|
||||
**NOTE**: Currently, `TocoConverter` will cause a fatal error to the Python
|
||||
interpreter when the conversion fails. This will be remedied as soon as
|
||||
@ -117,7 +119,7 @@ available by running `help(tf.contrib.lite.TocoConverter)`.
|
||||
|
||||
### Exporting a tf.keras File <a name="basic-keras-file"></a>
|
||||
|
||||
The following example shows how to convert a tf.keras model into a TensorFlow
|
||||
The following example shows how to convert a `tf.keras` model into a TensorFlow
|
||||
Lite FlatBuffer.
|
||||
|
||||
```python
|
||||
@ -128,7 +130,7 @@ tflite_model = converter.convert()
|
||||
open("converted_model.tflite", "wb").write(tflite_model)
|
||||
```
|
||||
|
||||
The tf.keras file must contain both the model and the weights. A comprehensive
|
||||
The `tf.keras` file must contain both the model and the weights. A comprehensive
|
||||
example including model construction can be seen below.
|
||||
|
||||
```python
|
||||
|
Loading…
Reference in New Issue
Block a user