import tensorflow as tf
with tf.Session() as sess:
filename=["A.jpg", "B.jpg", "C.jpg"]
filename_queue=tf.train.string_input_producer(filename, shuffle=True, num_epochs=5)
#文件名队列
reader=tf.WholeFileReader()
key, value=reader.read(filename_queue)
tf.local_variables_initializer().run()
threads=tf.train.start_queue_runners(sess=sess)
i=0
while True:
i+=1
image_data=sess.run(value)
1.首先
filename_queue=tf.train.string_input_producer(filename, shuffle=True, num_epochs=5)
创建一个文件名队列,这个队列包含文件的名称,并没有把这些文件放入内存队列中。
2.阅读器。
reader=tf.WholeFileReader()
key, value=reader.read(filename_queue)
创建一个阅读器,并且去读取,内存队列的文件。但是此时,只有文件名队列里面有各个文件的名称,但是内存队列却没有任何东西,所以才需要下面这条语句的的作用!!!
3.将文件名队列的内容传入,内存队列中。
threads=tf.train.start_queue_runners(sess=sess)
如果没有这一步,虽然你建立了文件名队列,但是因为实际上文件名队列的内容并没有未给内存,所以此时如果执行读取队列内容的操作,会产生读取操作挂起等待,读取器等待内存队列存入数据的情况。