在TensorFlow数据读中,由于CUP或GPU读取过快而硬盘数据跟不上,所以采取文件队列方式:将源数据按规定规模放入文件队列,启动文件队列填充后,便可以通过sess.run读取文件
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]))#读取文件队列