Spec-Zone.ru › TensorFlow

tf.compat.v1.lite.TFLiteConverter

Преобразует модель TensorFlow в output_format.

tf.compat.v1.lite.TFLiteConverter(
    graph_def,
    input_tensors,
    output_tensors,
    input_arrays_with_shape=None,
    output_arrays=None,
    experimental_debug_info_func=None
)

Используется в блокнотах

Используется в руководстве
  • Перенос кода TFLite на TF2

Используется для преобразования 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)

Методы

convert

Просмотреть исходный код

convert()

Преобразует TensorFlow GraphDef на основе переменных экземпляра.

Возвращает
Преобразованные данные в сериализованном формате. TFLite Flatbuffer или граф Graphviz — в зависимости от значения output_format.
Вызывает исключения
ValueError Форма входных данных не указана. Для измерения во входном тензоре задано значение None.

from_frozen_graph

Просмотреть исходный код

@classmethod
from_frozen_graph(
    graph_def_file, input_arrays, output_arrays, input_shapes=None
)

Создает класс 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 задан некорректно, хотя его необходимо указать.

from_keras_model_file

Просмотреть исходный код

@classmethod
from_keras_model_file(
    model_file,
    input_arrays=None,
    input_shapes=None,
    output_arrays=None,
    custom_objects=None
)

Создает класс 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)
Возвращает
Класс TFLiteConverter.

from_saved_model

Просмотреть исходный код

@classmethod
from_saved_model(
    saved_model_dir,
    input_arrays=None,
    input_shapes=None,
    output_arrays=None,
    tag_set=None,
    signature_key=None
)

Создает класс TFLiteConverter из SavedModel.

Аргументы
saved_model_dir Каталог SavedModel для преобразования.
input_arrays Список входных тензоров для замораживания графа. Если не указаны, используются входные массивы из 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)
Возвращает
Класс TFLiteConverter.

from_session

Просмотреть исходный код

@classmethod
from_session(
    sess, input_tensors, output_tensors
)

Создает класс TFLiteConverter из сеанса TensorFlow.

Аргументы
sess Сеанс TensorFlow.
input_tensors Список входных тензоров. Тип и форма вычисляются с использованием foo.shape и foo.dtype.
output_tensors Список выходных тензоров (используется только .name).
Возвращает
Класс TFLiteConverter.

get_input_arrays

Просмотреть исходный код

get_input_arrays()

Возвращает список имен входных тензоров.

Возвращает
Список строк.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/compat/v1/lite/TFLiteConverter

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API