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

Методы

convert

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

convert()

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

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

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]}). Автоматически определяется, когда входные формы равны None (например, {"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]}). Определяется автоматически, когда формы входов None (например, {"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]}). Определяется автоматически, когда формы входов 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)
Возвращаемое значение
Класс 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