Updates TOCO documentation.

PiperOrigin-RevId: 202577530
This commit is contained in:
Nupur Garg 2018-06-28 17:56:16 -07:00 committed by TensorFlower Gardener
parent 9ab9d5e034
commit 78d7a7783a
6 changed files with 42 additions and 19 deletions

View File

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

View File

@ -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,

View File

@ -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.
![drawing](g3doc/toco_landscape.svg)

View File

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

View File

@ -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.

View File

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