Сериализация тензора и запись в tfrecord из графа - PullRequest
0 голосов
/ 30 апреля 2020

Я хотел бы записать записи примера tenorflow в TFRecordWriter из графа, сгенерированного AutoGraph.

В документации для тензорного потока 2.0 говорится следующее:

Самый простой способ обработки Нескалярные особенности - использовать tf.serialize_tensor для преобразования тензоров в двоичные строки. Строки являются скалярами в тензорном потоке.

Однако tf.io.serialize_tensor возвращает тензор байтовой строки. Для создания Прото примера требуется список байтов, а не тензор.

Как мне записать tf.train.Example в запись tf из графика?

Код для воспроизведения:

%tensorflow_version 2.x
import tensorflow as tf

@tf.function
def example_write():
  writer = tf.io.TFRecordWriter("test.tfr")
  x = tf.constant([[0, 1], [2, 3]])
  x = tf.io.serialize_tensor(x)
  feature = {
      "data": tf.train.Features(
        bytes_list=tf.train.BytesList(value=[x]))
  }
  ex = tf.train.Example(features=tf.train.Features(
      feature=feature))
  writer.write(ex.SerializeToString())

example_write()

и ошибка

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-df8a97eb17c9> in <module>()
     12   writer.write(ex.SerializeToString())
     13 
---> 14 example_write()

8 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/func_graph.py in wrapper(*args, **kwargs)
    966           except Exception as e:  # pylint:disable=broad-except
    967             if hasattr(e, "ag_error_metadata"):
--> 968               raise e.ag_error_metadata.to_exception(e)
    969             else:
    970               raise

TypeError: in user code:

    <ipython-input-6-df8a97eb17c9>:6 example_write  *
        feature = {

    TypeError: <tf.Tensor 'SerializeTensor:0' shape=() dtype=string> has type Tensor, but expected one of: bytes
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...