Converts a TensorFlow model into TensorFlow Lite model.
tf
.
lite
.
TFLiteConverter
(
funcs
,
trackable_obj
=
None
)
Used in the notebooks
Used in the guide
Used in the tutorials
Example usage:
# Converting a SavedModel to a TensorFlow Lite model.
converter
=
tf
.
lite
.
TFLiteConverter
.
from_saved_model
(
saved_model_dir
)
tflite_model
=
converter
.
convert
()
# Converting a tf.Keras model to a TensorFlow Lite model.
converter
=
tf
.
lite
.
TFLiteConverter
.
from_keras_model
(
model
)
tflite_model
=
converter
.
convert
()
# Converting ConcreteFunctions to a TensorFlow Lite model.
converter
=
tf
.
lite
.
TFLiteConverter
.
from_concrete_functions
([
func
],
model
)
tflite_model
=
converter
.
convert
()
# Converting a Jax model to a TensorFlow Lite model.
converter
=
tf
.
lite
.
TFLiteConverter
.
experimental_from_jax
(
[
func
],
[[
(
'input1'
,
input1
),
(
'input2'
,
input2
)]])
tflite_model
=
converter
.
convert
()
Args
tf.AutoTrackable object associated with
funcs
. A
reference to this object needs to be maintained so that Variables do not
get garbage collected since functions have a weak reference to
Variables. This is only required when the tf.AutoTrackable object is not
maintained by the user (e.g. from_saved_model
).
Attributes
Experimental flag, subject to change. Set of optimizations to
apply. e.g {tf.lite.Optimize.DEFAULT}. (default None, must be None or a
set of values of type
tf.lite.Optimize
)A generator function used for integer quantization
where each generated sample has the same order, type and shape as the
inputs to the model. Usually, this is a small subset of a few hundred
samples randomly chosen, in no particular order, from the training or
evaluation dataset. This is an optional attribute, but required for full
integer quantization, i.e, if
tf.int8
is the only supported type in target_spec.supported_types
. Refer to tf.lite.RepresentativeDataset
.
(default None)Experimental flag, subject to change. Specifications of target
device, including supported ops set, supported types and a set of user's
defined TensorFlow operators required in the TensorFlow Lite runtime.
Refer to
tf.lite.TargetSpec
.Data type of the input layer. Note that integer types
(tf.int8 and tf.uint8) are currently only supported for post training
integer quantization and quantization aware training. (default tf.float32,
must be in {tf.float32, tf.int8, tf.uint8})
Data type of the output layer. Note that integer
types (tf.int8 and tf.uint8) are currently only supported for post
training integer quantization and quantization aware training. (default
tf.float32, must be in {tf.float32, tf.int8, tf.uint8})
Boolean indicating whether to allow custom operations.
When False, any unknown operation is an error. When True, custom ops are
created for any op that is unknown. The developer needs to provide these
to the TensorFlow Lite runtime with a custom resolver. (default False)
Whether not to embed the conversion metadata
into the converted model. (default False)
Experimental flag, subject to change. Enables
MLIR-based conversion. (default True)
Experimental flag, subject to change. Enables
MLIR-based quantization conversion instead of Flatbuffer-based conversion.
(default True)
Experimental flag, subject to
change. Enables resource
variables
to be converted by this converter. This is only allowed if the
from_saved_model interface is used. (default True)
Methods
convert
convert
()
Converts a TensorFlow GraphDef based on instance variables.
Returns
The converted data in serialized format.
Raises
ValueError
No concrete functions is specified.
Multiple concrete functions are specified.
Input shape is not specified.
Invalid quantization parameters.
experimental_from_jax
@classmethodexperimental_from_jax ( serving_funcs , inputs )
Creates a TFLiteConverter object from a Jax model with its inputs. (deprecated)
Args
serving_funcs
A array of Jax functions with all the weights applied
already.
inputs
A array of Jax input placeholders tuples list, e.g.,
jnp.zeros(INPUT_SHAPE). Each tuple list should correspond with the
serving function.
Returns
TFLiteConverter object.
from_concrete_functions
@classmethodfrom_concrete_functions ( funcs , trackable_obj = None )
Creates a TFLiteConverter object from ConcreteFunctions.
Args
funcs
List of TensorFlow ConcreteFunctions. The list should not contain
duplicate elements. Currently converter can only convert a single
ConcreteFunction. Converting multiple functions is under development.
trackable_obj
An
AutoTrackable
object (typically tf.module
)
associated with funcs
. A reference to this object needs to be
maintained so that Variables do not get garbage collected since
functions have a weak reference to Variables.
Returns
TFLiteConverter object.
Raises
Invalid input type.
from_keras_model
@classmethodfrom_keras_model ( model )
Creates a TFLiteConverter object from a Keras model.
Args
model
tf.Keras.Model
Returns
TFLiteConverter object.
from_saved_model
@classmethodfrom_saved_model ( saved_model_dir , signature_keys = None , tags = None )
Creates a TFLiteConverter object from a SavedModel directory.
Args
saved_model_dir
SavedModel directory to convert.
signature_keys
List of keys identifying SignatureDef containing inputs
and outputs. Elements should not be duplicated. By default the
signatures
attribute of the MetaGraphdef is used. (default
saved_model.signatures)tags
Set of tags identifying the MetaGraphDef within the SavedModel to
analyze. All tags in the tag set must be present. (default
{tf.saved_model.SERVING} or {'serve'})
Returns
TFLiteConverter object.
Raises
Invalid signature keys.


