我正在尝试导入图像并将其转换为张量。所有其他解决方案都建议使用filename_queue
并使用tf.reader()
,但我无法让它工作......因此,我只是按照基础进行。
我的桌面目录中有一个名为test.jp
g的文件,我正在运行Linux环境。这是我的代码:
import tensorflow as tf
image = tf.image.decode_jpeg("~/Desktop/test.jpg", channels=1)
print(image)
正如您所看到的,一些非常简单的代码......但它输出
Tensor("DecodeJpeg:0", shape=(?, ?, 1), dtype=uint8)
这告诉我它没有正确读取文件。有什么我做错了吗?
谢谢!
答案 0 :(得分:4)
函数tf.image.decode_jpeg
只构造一个图节点并将其添加到执行图中。您必须实际评估节点运行它并将其值作为numpy
数组获取。请尝试以下方法:
import tensorflow as tf
image = tf.image.decode_jpeg(tf.read_file("~/Desktop/test.jpg"), channels=1)
sess = tf.InteractiveSession()
print(sess.run(image))
请注意,tf.image.decode_jpeg
本身的参数应为字符串Tensor
。值得庆幸的是,TensorFlow有一个用于将文件读入Tensor
的操作,即tf.read_file
。