Используется для преобразования TensorFlow GraphDef, 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
Логическое значение, изменяющее поведение диапазонов min/max для входов и выходов оператора concat в квантованных моделях. Если значение True, диапазоны оператора concat перекрываются. (по умолчанию 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]}). Определяется автоматически, если формы входных данных не заданы (например, {"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]}). Определяется автоматически, если формы входных данных не заданы (например, {"foo" : None}). (по умолчанию None)
output_arrays
Список выходных тензоров для замораживания графа. Если не указаны, используются выходные массивы из SignatureDef. (по умолчанию None)
custom_objects
Словарь, сопоставляющий имена (строки) пользовательским классам или функциям, учитываемым при десериализации модели. (по умолчанию None)
Список входных тензоров для замораживания графа. Если не указаны, используются входные массивы из SignatureDef. (по умолчанию None)
input_shapes
Словарь, сопоставляющий строки с именами входных тензоров спискам целых чисел, задающих формы входных данных (например, {"foo" : [1, 16, 16, 3]}). Определяется автоматически, если формы входных данных не заданы (например, {"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)