Как передать вывод tf.encode_jpeg () в tf.train.BytesList ()? - PullRequest
0 голосов
/ 01 августа 2020

В Tensorflow 2.2, как мне взять вывод из tf.encode_jpeg() (который является тензором строки типа) и преобразовать его в байты, которые будут приняты в качестве ввода tf.train.BytesList(value=[xxx])? В конце концов, я хочу добавить это в TFRecord. Когда я пытаюсь запустить какой-нибудь код basi c (показанный ниже в ошибке), я получаю следующую ошибку:

--------------------------------------------------------------------------- TypeError                                 Traceback (most recent call last) <ipython-input-25-0a8dec1885d5> in <module>
      4 x = np.array([[[1],[2]],[[3],[4]]], dtype=np.uint8)
      5 x = tf.io.encode_jpeg(x)
----> 6 x = tf.train.BytesList(value=[x])
      7 

TypeError: <tf.Tensor: shape=(), dtype=string, 
numpy=b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x01,\x01,\x 
has type tensorflow.python.framework.ops.EagerTensor, but expected one of: bytes

Я уже пробовал использовать tf.compat.as_bytes для преобразования тензора в байты, но это просто создает другую ошибку. PS Разве глупо sh комбинировать tf.encode_jpeg () и tf.train.BytesList ()?

...