Используется для преобразования графа TensorFlow, SavedModel или модели tf.keras в TFLite FlatBuffer или визуализацию графа.
Аргументы
graph_def
Замороженный граф TensorFlow GraphDef.
input_tensors
Список входных тензоров. Тип и форма вычисляются с помощью foo.shape и foo.dtype.
output_tensors
Список выходных тензоров (из этого используется только .name).
input_arrays_with_shape
Кортеж строк, представляющих имена входных тензоров, и список целых чисел, представляющих формы входных данных (например, [("foo" : [1, 16, 16, 3])]). Используется только в случае, если граф не может быть загружен в TensorFlow, и когда input_tensors и output_tensors равны None. (по умолчанию None)
output_arrays
Список выходных тензоров для заморозки графа. Используется только в случае, если граф не может быть загружен в TensorFlow, и когда input_tensors и output_tensors равны None. (по умолчанию None)
experimental_debug_info_func
Экспериментальная функция для получения информации о отладке графа для набора узлов из graph_def.
Исключения
ValueError
Неверные аргументы.
Атрибуты
optimizations
Экспериментальный флаг, может быть изменён. Набор оптимизаций для применения. Например {tf.lite.Optimize.DEFAULT}. (по умолчанию None, должен быть None или набором значений типа tf.lite.Optimize)
representative_dataset
Функция-генератор, используемая для целочисленного квантования, где каждый сгенерированный образец имеет тот же порядок, тип и форму, что и входные данные модели. Обычно это небольшой подмножество, несколько сотен выборок, случайным образом выбранных из набора обучения или проверки, без определенного порядка. Это необязательный атрибут, но необходимый для полного целочисленного квантования, т. е., если tf.int8 — единственный поддерживаемый тип в target_spec.supported_types. См. tf.lite.RepresentativeDataset. (по умолчанию None)
target_spec
Экспериментальный флаг, может быть изменён. Спецификации целевого устройства, включая набор поддерживаемых операций, поддерживаемые типы и набор пользовательских операторов TensorFlow, необходимых в среде выполнения TensorFlow Lite. См. tf.lite.TargetSpec.
inference_type
Тип данных числовых массивов, за исключением входного слоя. (по умолчанию tf.float32, должен быть в {tf.float32, tf.int8, tf.uint8})
inference_input_type
Тип данных числовых массивов в входном слое. Если inference_input_type находится в {tf.int8, tf.uint8}, то quantized_input_stats должен быть предоставлен. (по умолчанию значение, присвоенное inference_type, должно быть в {tf.float32, tf.int8, tf.uint8})
inference_output_type
Тип данных числовых массивов в выходном слое. (по умолчанию значение, присвоенное inference_type, должно быть в {tf.float32, tf.int8, tf.uint8})
quantized_input_stats
Отображение имен входных тензоров на кортеж чисел с плавающей точкой, представляющий среднее значение и стандартное отклонение обучающих данных. (например, {"foo" : (0., 1.)}). Требуется, если inference_input_type равно tf.int8 или tf.uint8. (по умолчанию None)
default_ranges_stats
Кортеж целых чисел (min, max), представляющий значения диапазона для всех числовых массивов без указанного диапазона. Предназначено для экспериментов с квантованием с помощью "фиктивного квантования". (по умолчанию None)
allow_custom_ops
Логический флаг, указывающий, разрешить ли пользовательские операции. Если False, любая неизвестная операция является ошибкой. Если True, пользовательские операции создаются для любой неизвестной операции. Разработчик должен предоставить их в среде выполнения TensorFlow Lite с пользовательским разрешающим элементом. (по умолчанию False)
drop_control_dependency
Логический флаг, указывающий, нужно ли молча игнорировать зависимости управления. Это связано с тем, что TFLite не поддерживает зависимости управления. (по умолчанию True)
reorder_across_fake_quant
Логический флаг, указывающий, нужно ли переупорядочивать узлы FakeQuant в неожиданных местах. Используется, когда расположение узлов FakeQuant препятствует преобразованиям графа, необходимым для преобразования графа. Приводит к графу, отличающемуся от квантованного обучающего графа, что может вызвать разное арифметическое поведение. (по умолчанию False)
change_concat_input_ranges
Логический флаг, меняющий поведение минимальных/максимальных диапазонов для входов и выходов оператора concat для квантованных моделей. Изменяет перекрытия диапазонов оператора concat, если значение True. (по умолчанию False)
output_format
Формат выходного файла. (по умолчанию tf.compat.v1.lite.constants.TFLITE, должен быть в {tf.compat.v1.lite.constants.TFLITE, tf.compat.v1.lite.constants.GRAPHVIZ_DOT})
dump_graphviz_dir
Полный путь к папке для вывода графов на различных этапах обработки файлов GraphViz .dot. Предпочтительнее, чем output_format=tf.compat.v1.lite.constants.GRAPHVIZ_DOT, чтобы сохранить требования к выходному файлу. (по умолчанию None)
dump_graphviz_video
Логический флаг, указывающий, нужно ли выводить файлы GraphViz .dot после каждого преобразования графа. Требуется, чтобы был задан флаг dump_graphviz_dir. (по умолчанию False)
conversion_summary_dir
Полный путь к каталогу для сохранения журналов преобразования. (по умолчанию None)
exclude_conversion_metadata
Флаг, указывающий, следует ли встраивать метаданные преобразования в преобразованную модель. (по умолчанию False)
target_ops
Устарело. Используйте target_spec.supported_ops вместо этого.
post_training_quantize
Устарело. Используйте optimizations вместо этого и установите его в {tf.lite.Optimize.DEFAULT}. (по умолчанию False)
experimental_new_converter
Экспериментальный флаг, может быть изменён. Включает преобразование на основе MLIR. (по умолчанию True)
experimental_new_quantizer
Экспериментальный флаг, может быть изменён. Включает преобразование квантования на основе MLIR вместо преобразования на основе Flatbuffer. (по умолчанию True) Пример использования: python # Converting a GraphDef from session. converter = tf.compat.v1.lite.TFLiteConverter.from_session( sess, in_tensors, out_tensors) tflite_model = converter.convert() open("converted_model.tflite", "wb").write(tflite_model) # Converting a GraphDef from file. converter = tf.compat.v1.lite.TFLiteConverter.from_frozen_graph( graph_def_file, input_arrays, output_arrays) tflite_model = converter.convert() open("converted_model.tflite", "wb").write(tflite_model) # Converting a SavedModel. converter = tf.compat.v1.lite.TFLiteConverter.from_saved_model( saved_model_dir) tflite_model = converter.convert() open("converted_model.tflite", "wb").write(tflite_model) # Converting a tf.keras model. converter = tf.compat.v1.lite.TFLiteConverter.from_keras_model_file( keras_model) tflite_model = converter.convert() open("converted_model.tflite", "wb").write(tflite_model)
Создаёт класс TFLiteConverter из файла, содержащего замороженный GraphDef.
Аргументы
graph_def_file
Полный путь к файлу, содержащему замороженный GraphDef.
input_arrays
Список входных тензоров для заморозки графа.
output_arrays
Список выходных тензоров для заморозки графа.
input_shapes
Словарь строк, представляющих имена входных тензоров, и списки целых чисел, представляющих формы входных данных (например, {"foo" : [1, 16, 16, 3]}). Автоматически определяется, когда входные формы равны None (например, {"foo" : None}). (по умолчанию None)
Возвращает
Класс TFLiteConverter.
Исключения
IOError
Файл не найден. Не удалось разобрать входной файл.
ValueError
Граф не заморожен. input_arrays или output_arrays содержат недействительное имя тензора. input_shapes определены некорректно, когда это необходимо.
Создаёт класс TFLiteConverter из файла модели tf.keras.
Аргументы
model_file
Полный путь к файлу HDF5, содержащему модель tf.keras.
input_arrays
Список входных тензоров для заморозки графа. Использует входные массивы из SignatureDef, если не заданы. (по умолчанию None)
input_shapes
Словарь, сопоставляющий имена входных тензоров (строки) со списком целых чисел, представляющих формы входов (например, {"foo" : [1, 16, 16, 3]}). Определяется автоматически, когда формы входов None (например, {"foo" : None}). (по умолчанию None)
output_arrays
Список выходных тензоров для заморозки графа. Использует выходные массивы из SignatureDef, если не заданы. (по умолчанию None)
custom_objects
Словарь, сопоставляющий имена (строки) с пользовательскими классами или функциями, которые следует учитывать при десериализации модели. (по умолчанию None)
Список входных тензоров для заморозки графа. Использует входные массивы из SignatureDef, если не заданы. (по умолчанию None)
input_shapes
Словарь, сопоставляющий имена входных тензоров (строки) со списком целых чисел, представляющих формы входов (например, {"foo" : [1, 16, 16, 3]}). Определяется автоматически, когда формы входов None (например, {"foo" : None}). (по умолчанию None)
output_arrays
Список выходных тензоров для заморозки графа. Использует выходные массивы из SignatureDef, если не заданы. (по умолчанию None)
tag_set
Набор тегов, идентифицирующих MetaGraphDef внутри SavedModel для анализа. Все теги в наборе тегов должны присутствовать. (по умолчанию {tf.saved_model.SERVING})
signature_key
Ключ, идентифицирующий SignatureDef, содержащий входные и выходные данные. (по умолчанию tf.saved_model.DEFAULT_SERVING_SIGNATURE_DEF_KEY)