tf.train.string_input_producer
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]))