Spec-Zone.ru › TensorFlow 2.3

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 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/r2.3/api_docs/python/tf/raw_ops/DecodeProtoV2

Spec-Zone.ru

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