Tensorflow:TypeError:预期的二进制或Unicode字符串,得到<tf.tensor'placeholder:0'=“” shape =“ <unknown”> dtype = string>

时间:2018-06-20 05:22:17

标签: python tensorflow

代码如下:

filename = tf.placeholder(tf.string)
image_raw_data = tf.gfile.FastGFile(filename, "rb").read()
image = tf.image.decode_jpeg(image_raw_data)

with tf.Session() as sess:
    sess.run(image, feed_dict={filename: "4.jpg"})

这是错误:

Traceback (most recent call last):
  File "C:/Users/fanpw.fnst/Desktop/ip8/test.py", line 26, in <module>
    image_raw_data = tf.gfile.FastGFile(filename, "rb").read()
  File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 120, in read
    self._preread_check()
  File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 80, in _preread_check
    compat.as_bytes(self.__name), 1024 * 512, status)
  File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\util\compat.py", line 67, in as_bytes
    (bytes_or_text,))
TypeError: Expected binary or unicode string, got <tf.Tensor 'Placeholder:0' shape=<unknown> dtype=string>

我想知道如何将变量filename从类型tf.string转换为unicode string。或者有其他方法可以解决此问题。

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

该函数需要一个字符串或字节字符串,而不是张量或占位符。 您正在寻找的是tf.io.readfile()... 这是一个带有数据集的示例,但可以用作代码中tf.gfile的替换

auto