Spec-Zone.ru › TensorFlow 2.4

tf.raw_ops.DecodeProtoV2

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

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

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

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

tf.compat.v1.raw_ops.DecodeProtoV2

tf.raw_ops.DecodeProtoV2(
    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 всегда явно передавайте размерность сжатия, чтобы избежать неожиданных результатов.

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

  • Поле прото, содержащее подсообщение или группу, может быть преобразовано только в 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 A Tensor типа string. Тензор сериализованных прото с формой batch_shape.
message_type A 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 A 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/r2.4/api_docs/python/tf/raw_ops/DecodeProtoV2

Spec-Zone.ru

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