tf.train.string_input_producer只是讀入文件還沒有解析,需要tf.WholeFileReader()來解析文件
import tensorflow as tf
# images=['image1.jpg','image2.jpg','image3.jpg','image4.jpg']
# labels=[1,2,3,4]
#
# #創建文件名隊列(也就是內存隊列)
# [images,labels]=tf.train.slice_input_producer([images,labels],
# num_epochs=2,#epochs循環數,改成None則只要獲取隊列就有
# shuffle=True)#shuffle文件隊列打亂
# #輸出兩個tensor
# with tf.Session() as sess:#后端運算
# sess.run(tf.local_variables_initializer())#上述定義了2和True,但是在后端運行時不會被使用,需要這里的初始化,才能完成賦值
# tf.train.start_queue_runners(sess=sess)#啟動隊列填充過程
# for i in range(8):#一個epoachs長度4,2個就是8
# print(sess.run([images,labels]))#讀取文件隊列
###slice實際輸出是tensor,通過sess.run我們就可以直接獲取tensor
###string實際上是輸出文件隊列,需要從文件隊列數據讀取(不是張量,所以無法sess.run來獲取)
filename=['data/A.csv','data/B.csv','data/C.csv']
file_queue=tf.train.string_input_producer(filename,
shuffle=True,
num_epochs=2)
reader=tf.WholeFileReader()#定義文件讀取器
key,value=reader.read(file_queue)
with tf.Session() as sess:
sess.run(tf.local_variables_initializer())#變量初始化賦值
tf.train.start_queue_runners(sess=sess)#開啟隊列讀入
for i in range(6):
print(sess.run([key,value]))