tf.raw_ops.EncodeProto
Операция сериализует сообщения protobuf, заданные в входных тензорах.
tf.raw_ops.EncodeProto(
sizes,
values,
field_names,
message_type,
descriptor_source='local://',
name=None
)
Типы тензоров в values должны соответствовать схеме полей, указанных в field_names. Все тензоры в values должны иметь общий префикс формы, batch_shape.
Тензор sizes указывает количество повторений для каждого поля. Количество повторений (последнее измерение) каждого тензора в values должно быть больше или равно соответствующему количеству повторений в sizes.
Необходимо предоставить имя message_type, чтобы указать контекст для имён полей. Фактический дескриптор сообщения можно найти в связанном пуле дескрипторов или в файле, предоставленном вызывающей стороной с помощью атрибута descriptor_source.
В основном, сопоставление между типами полей Proto и типами TensorFlow очевидно. Однако есть несколько специальных случаев:
Поле proto, содержащее подсообщение или группу, может быть преобразовано только в
DT_STRING(сериализованное подсообщение). Это сделано для уменьшения сложности API. Полученная строка может быть использована в качестве входных данных для другой операции decode_proto.TensorFlow не поддерживает беззнаковые целые числа. Операции представляют типы uint64 как
DT_INT64с той же двудополнительной двоичной записью (очевидный способ). Беззнаковые значения int32 могут быть точно представлены, если указать типDT_INT64или использовать двудополнительную запись, если вызывающая сторона указываетDT_INT32в атрибутеoutput_types.
Атрибут descriptor_source выбирает источник протокольных дескрипторов для поиска message_type. Это может быть:
Пустая строка или «local://», в этом случае протокольные дескрипторы создаются для определений прото в C++ (не Python), связанных с двоичным файлом.
Файл, в этом случае протокольные дескрипторы создаются из файла, который ожидается, что он содержит сериализованный
FileDescriptorSetв виде строки. ПРИМЕЧАНИЕ: Вы можете создать файлdescriptor_source, используя опции--descriptor_set_outи--include_importsкомпилятора протоколовprotoc.«bytes://
», в этом случае протокольные дескрипторы создаются из <bytes>, который ожидается, что он будет сериализованнымFileDescriptorSetв виде строки.
| Аргументы | |
|---|---|
sizes | Tensor типа int32. Тензор int32 со формой [batch_shape, len(field_names)]. |
values | Список объектов Tensor. Список тензоров, содержащих значения для соответствующего поля. |
field_names | Список strings. Список строк, содержащих имена полей прото. |
message_type | string. Имя типа сообщения прото для декодирования. |
descriptor_source | Необязательный string. По умолчанию равен "local://". |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
Tensor типа string. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/raw_ops/EncodeProto