2017-06-22 49 views
0

我是tensorflow的新手,所以我试图首先测试我的基本功能。我有用于读取数据以下Python方法:如何验证张量包含图像数据tensorflow

def read_data(filename_queue): 

# Whole file reader required for jpeg decoding 
    image_reader = tf.WholeFileReader() 

# We don't care about the filename, so we ignore the first tuple 
    _, image_file = image_reader.read(filename_queue) 

# Decode the jpeg images and set them to a universal size 
# so we don't run into "out of bounds" issues down the road 
    image_orig = tf.image.decode_jpeg(image_file, channels=3) 

    image = tf.image.resize_images(image_orig, [224, 224]) 

    return image 

“filename_queue”是路径个别JPEG文件中的“图像”子目录的队列。我运行一个for循环遍历文件名,以确保唯一与有效路径被添加到队列:

filenames = [] 
for i in range(1000): 
    filename = os.path.join(os.path.dirname(os.path.realpath(__file__)), 
             "./images/seatbelt%d.jpg" % i) 
    if not tf.gfile.Exists(filename): 
    # print("Filename %s does not exist" % filename) 
    continue 
    else: 
    filenames.append(filename) 

# Create a string queue out of all filenames found in local 'images' directory 
filename_queue = tf.train.string_input_producer(filenames) 

input = read_data(filename_queue) 

我想断言,图像被读取正确的,所有的数据都是包含在重构的张量中。我怎么能这样做?

回答

0

下面的代码可以显示我的实验图像。也许这可以帮助你。

import matplotlib.pyplot as plt 
import tensorflow as tf 
import numpy as np 

# ...... 

sess = tf.Session() 
coord = tf.train.Coordinator() 
threads = tf.train.start_queue_runners(sess=sess, coord=coord) 

num = 10 
for _ in range(num): 
    image = sess.run(input) 
    plt.imshow(image.astype(np.uint8)) 
    plt.show()