Spec-Zone.ru › TensorFlow 2.4

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 Неверные аргументы.
Атрибуты
inference_type Целевой тип данных для вещественных массивов в выходном файле. Должен быть {tf.float32, tf.uint8}. Если optimzations заданы, этот параметр игнорируется. (по умолчанию tf.float32)
inference_input_type Целевой тип данных для вещественных входных массивов. Позволяет использовать другой тип для входных массивов. Если указан целочисленный тип и optimizations не используются, необходимо указать quantized_input_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 Кортеж целых чисел, представляющих (мин, макс) значения диапазона для всех массивов без указанного диапазона. Предназначено для экспериментов с квантованием с помощью "фиктивного квантования". (по умолчанию 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, для любой неизвестной операции создается пользовательская операция. Разработчику потребуется предоставить их исполнителю 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 для анализа. Все теги в наборе должны присутствовать. (по умолчанию set("serve"))
signature_key Ключ, идентифицирующий SignatureDef, содержащий входные и выходные данные. (по умолчанию 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()

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

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

© 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.4/api_docs/python/tf/compat/v1/lite/TFLiteConverter

Spec-Zone.ru

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