2017-06-22 45 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()