Spec-Zone.ru › TensorFlow 1.15

tf.lite.TFLiteConverter

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

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

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения дополнительной информации.

tf.compat.v1.lite.TFLiteConverter

tf.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 = 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 = 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 = 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 = 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_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, пользовательские операции создаются для любой неизвестной операции. Разработчик должен предоставить их для выполнения TensorFlow Lite с пользовательским решателем. (по умолчанию False)
post_training_quantize Устарело. Пожалуйста, укажите [Optimize.DEFAULT] для optimizations вместо этого. Логическое значение, указывающее, следует ли квантовать веса преобразованной модели с плавающей запятой. Размер модели будет уменьшен, и будут улучшены показатели производительности (за счет точности). (по умолчанию False)
dump_graphviz_dir Полный путь к папке для вывода графов на различных этапах обработки файлов GraphViz .dot. Предпочтительнее --output_format=GRAPHVIZ_DOT, чтобы сохранить требования к выходному файлу. (по умолчанию None)
dump_graphviz_video Логическое значение, указывающее, следует ли выводить граф после каждого преобразования графа. (по умолчанию False)
target_ops Устарело. Пожалуйста, укажите target_spec.supported_ops вместо этого. Набор опций OpsSet, указывающих, какой конвертер использовать. (по умолчанию set([OpsSet.TFLITE_BUILTINS]))
target_spec Экспериментальный флаг, может быть изменен. Указание целевого устройства.
optimizations Экспериментальный флаг, может быть изменен. Список оптимизаций для применения при преобразовании модели. Например, [Optimize.DEFAULT]
representative_dataset Представительный набор данных, который может быть использован для генерации входных и выходных образцов для модели. Конвертер может использовать набор данных для оценки различных оптимизаций.
experimental_enable_mlir_converter Экспериментальный флаг, может быть изменен. Включает конвертер MLIR вместо конвертера TOCO.

Методы

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.

Аргументы
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/r1.15/api_docs/python/tf/lite/TFLiteConverter

Spec-Zone.ru

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