Spec-Zone.ru › TensorFlow 2.9

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
)

Это используется для преобразования модели TensorFlow GraphDef, SavedModel или tf.keras в TFLite FlatBuffer или визуализацию графа.

Пример использования:

# 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)
Аргументы
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 Кортеж целых чисел (мин, макс), представляющих значения диапазона для всех числовых массивов без указанного диапазона. Предназначено для экспериментов с квантованием с помощью «фиктивного квантования». (по умолчанию 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)

Методы

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]}). Определяется автоматически, если формы входов 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 Session.

Аргументы
sess TensorFlow Session.
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/versions/r2.9/api_docs/python/tf/compat/v1/lite/TFLiteConverter

Spec-Zone.ru

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