当前位置:  开发笔记 > 人工智能 > 正文

Tensorflow图像读空

如何解决《Tensorflow图像读空》经验,为你挑选了1个好方法。

这个问题基于:Tensorflow图像读取和显示

遵循他们的代码,我们有以下内容:

string = ['/home/user/test.jpg']
filepath_queue = tf.train.string_input_producer(string)
self.reader = tf.WholeFileReader()
key, value = self.reader.read(filepath_queue)

print(value)
# Output: Tensor("ReaderRead:1", shape=TensorShape([]), dtype=string)

my_img = tf.image.decode_jpeg(value, channels=3)
print(my_img)
# Output: Tensor("DecodeJpeg:0", shape=TensorShape([Dimension(None), Dimension(None), Dimension(3)]), dtype=uint8)

为什么my_img没有尺寸?(Dimension(3)仅仅是因为参数channels=3)

这是否意味着图像没有正确加载?(img = misc.imread('/home/user/test.jpg')确实加载该图像).



1> mrry..:

图像将被正确加载,但TensorFlow没有足够的信息来推断图像的形状,直到运行op.这是因为tf.image.decode_jpeg()根据弦张量的内容可以产生不同形状(高度和宽度)的张量value.这使您可以使用不同大小的图像集合来构建输入管道.

Dimension(None)在装置的形状"未知",而不是"空".如果您碰巧知道此操作读取的所有图像都具有相同的大小,您可以使用它Tensor.set_shape()来提供此信息,这样做有助于验证图形后面部分的形状:

my_img = tf.image.decode_jpeg(value, channels=3)    
KNOWN_HEIGHT = 28
KNOWN_WIDTH = 28
my_img.set_shape([KNOWN_HEIGHT, KNOWN_WIDTH, 3])

print(my_img)
# Output: Tensor("DecodeJpeg:0", shape=TensorShape([Dimension(28), Dimension(28), Dimension(3)]), dtype=uint8)

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有