Spec-Zone.ru › TensorFlow 2.3

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.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.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.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.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 Некорректные аргументы.
Атрибуты
inference_type Целевой тип данных для массивов вещественных чисел в выходном файле. Должен быть {tf.float32, tf.uint8}. Если optimzations указаны, этот параметр игнорируется. (по умолчанию tf.float32)
inference_input_type Целевой тип данных для входных массивов вещественных чисел. Позволяет использовать другой тип для входных массивов. Если указан целочисленный тип и optimizations не используются, необходимо указать quantized_inputs_stats. Если inference_type равен tf.uint8, что сигнализирует о преобразовании в полностью квантованную модель из модели с квантованным обучением, то inference_input_type по умолчанию равен tf.uint8. Во всех остальных случаях inference_input_type по умолчанию равен tf.float32. Должен быть {tf.float32, tf.uint8, tf.int8}
inference_output_type Целевой тип данных для выходных массивов вещественных чисел. Позволяет использовать другой тип для выходных массивов. Если inference_type равен tf.uint8, что сигнализирует о преобразовании в полностью квантованную модель из модели с квантованным обучением, то inference_output_type по умолчанию равен tf.uint8. Во всех остальных случаях inference_output_type должен быть tf.float32, в противном случае будет выброшено исключение. Должен быть {tf.float32, tf.uint8, tf.int8}
output_format Формат выходного файла. В настоящее время должен быть {TFLITE, GRAPHVIZ_DOT}. (по умолчанию TFLITE)
quantized_input_stats Словарь строк, представляющих имена входных тензоров, сопоставленные с кортежем чисел с плавающей запятой, представляющих среднее и стандартное отклонение обучающих данных (например, {"foo" : (0., 1.)}). Необходимо только если inference_input_type равен QUANTIZED_UINT8. real_input_value = (quantized_input_value - mean_value) / std_dev_value. (по умолчанию {})
default_ranges_stats Кортеж целых чисел, представляющих диапазоны значений (min, max) для всех массивов без указанного диапазона. Предназначен для экспериментов с квантованием через «фиктивное квантование». (по умолчанию None)
drop_control_dependency Логическое значение, указывающее, следует ли молча опускать зависимости управления. Это связано с тем, что TFLite не поддерживает зависимости управления. (по умолчанию True)
reorder_across_fake_quant Логическое значение, указывающее, следует ли переупорядочивать узлы FakeQuant в неожиданных местах. Используется, когда расположение узлов FakeQuant препятствует преобразованиям графа, необходимым для преобразования графа. В результате получается граф, отличающийся от квантованного графа обучения, что может привести к различным арифметическим результатам. (по умолчанию False)
change_concat_input_ranges Логическое значение, изменяющее поведение минимальных/максимальных диапазонов для входов и выходов оператора concat для квантованных моделей. Изменяет перекрытие диапазонов оператора concat, если значение true. (по умолчанию False)
allow_custom_ops Логическое значение, указывающее, следует ли разрешить пользовательские операции. Когда значение false, любая неизвестная операция является ошибкой. Когда значение true, для любой неизвестной операции создаются пользовательские операции. Разработчик должен предоставить их в runtime TensorFlow Lite с помощью пользовательского решателя. (по умолчанию False)
post_training_quantize Устарело. Пожалуйста, укажите [Optimize.DEFAULT] для optimizations вместо этого. Логическое значение, указывающее, следует ли квантовать веса преобразованной модели с плавающей запятой. Размер модели будет уменьшен, и время отклика будет улучшено (за счет точности). (по умолчанию False)
dump_graphviz_dir Полный путь к папке для вывода графов на различных этапах обработки файлов GraphViz .dot. Предпочтительнее, чем --output_format=GRAPHVIZ_DOT, чтобы сохранить требования к выходному файлу. (по умолчанию None)
dump_graphviz_video Логическое значение, указывающее, следует ли выводить граф после каждого преобразования графа. (по умолчанию False)
conversion_summary_dir Строка, указывающая путь к сгенерированным журналам преобразования.
target_ops Устарело. Пожалуйста, укажите target_spec.supported_ops вместо этого. Набор опций OpsSet, указывающих, какой преобразователь использовать. (по умолчанию set([OpsSet.TFLITE_BUILTINS]))
target_spec Экспериментальный флаг, может быть изменён. Указание целевого устройства.
optimizations Экспериментальный флаг, может быть изменён. Список оптимизаций, которые следует применять при преобразовании модели. Например, [Optimize.DEFAULT]
representative_dataset Представительный набор данных, который может быть использован для генерации входных и выходных образцов для модели. Преобразователь может использовать набор данных для оценки различных оптимизаций.
experimental_new_converter Экспериментальный флаг, может быть изменён. Включает преобразование на основе MLIR вместо преобразования TOCO. (по умолчанию True)

Методы

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]}). Автоматически определяется, когда input_shapes равно 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]}). Автоматически определяется, когда input_shapes равно 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 для анализа. Все теги в наборе должны быть присутствовать. (по умолчанию набор("serve"))
signature_key Ключ, идентифицирующий SignatureDef, содержащий входные и выходные данные. (по умолчанию 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()

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

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

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

Spec-Zone.ru

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