Spec-Zone.ru › TensorFlow 1.15

tf.io.decode_proto

Операция извлекает поля из сериализованного сообщения протобуфера в тензоры.

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

Основные псевдонимы

`tf.contrib.proto.decode_proto`

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

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

tf.compat.v1.io.decode_proto, `tf.compat.v2.io.decode_proto`

tf.io.decode_proto(
    bytes, message_type, field_names, output_types, descriptor_source='local://',
    message_format='binary', sanitize=False, name=None
)

Операция decode_proto извлекает поля из сериализованного сообщения протобуфера в тензоры. Поля в field_names декодируются и преобразуются в соответствующие output_types по возможности.

Необходимо указать имя message_type, чтобы предоставить контекст для имён полей. Фактический дескриптор сообщения можно найти либо в связанном пуле дескрипторов, либо в файле, предоставленном вызывающей стороной с помощью атрибута descriptor_source.

Каждый выходной тензор является плотным тензором. Это означает, что он заполняется до максимального количества повторяющихся элементов, наблюдаемых в входной мини-выборке. (Форма также дополняется на единицу, чтобы предотвратить размерность нулевого размера). Фактическое количество повторений для каждого примера в мини-выборке можно найти в выходном sizes. Во многих случаях выход decode_proto подаётся непосредственно в tf.squeeze, если пропущенные значения не вызывают беспокойства. При использовании tf.squeeze всегда явно передавайте размер сжатия, чтобы избежать неожиданностей.

В основном, соответствие между типами полей Proto и типами данных TensorFlow является простым. Однако есть несколько особых случаев:

  • Поле proto, содержащее подсообщение или группу, может быть преобразовано только в DT_STRING (сериализованное подсообщение). Это делается для упрощения API. Результирующую строку можно использовать в качестве входных данных для другого экземпляра операции decode_proto.

  • TensorFlow не поддерживает целые числа без знака. Операции представляют типы uint64 как DT_INT64 с той же двоично-дополнительной битовой структурой (очевидный способ). Целые числа int32 без знака можно точно представить, указав тип DT_INT64, или используя двоично-дополнительное представление, если вызывающая сторона указывает DT_INT32 в атрибуте output_types.

Поддерживается сериализация протобуферов как в двоичном, так и в текстовом формате, и её можно выбрать с помощью атрибута format.

Атрибут descriptor_source выбирает источник прото дескрипторов для поиска message_type. Это может быть:

  • Пустая строка или "local://", в этом случае прото дескрипторы создаются для C++ (не Python) определений протобуфера, связанных с двоичным файлом.

  • Файл, в этом случае прото дескрипторы создаются из файла, который должен содержать сериализованный FileDescriptorSet в виде строки. ПРИМЕЧАНИЕ: Вы можете создать файл descriptor_source с использованием опций --descriptor_set_out и --include_imports для компилятора протоколов protoc.

  • «bytes://», в этом случае прото дескрипторы создаются из <bytes>, который должен быть сериализованным FileDescriptorSet в виде строки.

Аргументы
bytes Tensor типа string. Тензор сериализованных протобуферов с формой batch_shape.
message_type string. Имя типа сообщения протобуфера для декодирования.
field_names Список strings. Список строк, содержащих имена полей протобуфера. Поле расширения можно декодировать, используя его полное имя, например EXT_PACKAGE.EXT_FIELD_NAME.
output_types Список tf.DTypes. Список типов TF для использования для соответствующего поля в field_names.
descriptor_source Необязательный string. По умолчанию "local://". Либо специальное значение local://, либо путь к файлу, содержащему сериализованный FileDescriptorSet.
message_format Необязательный string. По умолчанию "binary". Либо binary, либо text.
sanitize Необязательный bool. По умолчанию False. Нужно ли очищать результат.
name Имя операции (необязательно).
Возвращаемые значения
Кортеж объектов Tensor (размеры, значения).
sizes Tensor типа int32.
values Список объектов Tensor типа output_types.

© 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/io/decode_proto

Spec-Zone.ru

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