Spec-Zone.ru › TensorFlow 2.3

tf.io.decode_proto

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

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

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

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

tf.compat.v1.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 всегда явно передавайте размерность squeeze, чтобы избежать неожиданностей.

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

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

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

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

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

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

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

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

Args
bytes A Tensor of type string. Tensor сериализованных прото с формой batch_shape.
message_type A string. Имя типа сообщения прото для декодирования.
field_names A list of strings. Список строк, содержащих имена полей прото. Поле расширения можно декодировать, используя его полное имя, например, EXT_PACKAGE.EXT_FIELD_NAME.
output_types A list of tf.DTypes. Список типов TF, используемых для соответствующего поля в field_names.
descriptor_source An optional string. Defaults to "local://". Either the special value local:// or a path to a file containing a serialized FileDescriptorSet.
message_format An optional string. Defaults to "binary". Either binary or text.
sanitize An optional bool. Defaults to False. Нужно ли очищать результат.
name Имя операции (необязательно).
Returns
A tuple of Tensor objects (sizes, values).
sizes A Tensor of type int32.
values A list of Tensor objects of type 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/io/decode_proto

Spec-Zone.ru

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