2016-07-15 75 views
0

我正在試驗tensorflow,我試圖從csv文件讀取並通過shuffle_batch打印出一批數據。我扔了decode_csv docsshuffle_batch docs,但我仍然無法得到它的工作。使用tensorflow的shuffle_batch方法

這是我有: 進口tensorflow爲TF

sess = tf.InteractiveSession() 

filename_queue = tf.train.string_input_producer(
    ["./data/train.csv"], num_epochs=1, shuffle=True) # total record count in csv is 30K 
reader = tf.TextLineReader() 
key, value = reader.read(filename_queue) 

record_defaults = [["1"], ["2"]] # irrelevant for this discussion 
input, outcome = tf.decode_csv(value, record_defaults=record_defaults) 

min_after_dequeue = 1000 
batch_size = 10 
capacity = min_after_dequeue + 3 * batch_size 

example_batch = tf.train.shuffle_batch([outcome], batch_size, capacity, min_after_dequeue) 
coord = tf.train.Coordinator() 
tf.train.start_queue_runners(sess, coord=coord) 
example_batch.eval(session = sess) 

運行,這將產生此異常:

OutOfRangeError: RandomShuffleQueue 
    '_3_shuffle_batch_1/random_shuffle_queue' is closed 
    and has insufficient elements (requested 10, current size 0) 

我不知道是什麼問題。我有一種感覺,這是由於會議和我處理它的方式;我可能做得不好。

回答

0

嘗試從string_input_producer初始值設定項中刪除num_epochs=1。 「

+0

是的,那工作。非常感謝! ......你能告訴我背後的原因嗎? – rtorres

+0

該參數限制隊列僅通過一次數據,所以我認爲它正在耗盡示例來填滿隊列。也許數據沒有你想象的那麼多(關閉某個或某些東西?) –