使用内存队列方式读取文件数据

Tensorflow创建文件名队列 tf.train.string_input_producer
1 传入一个文件名list, 系统将自动将其转换为一个文件名队列
2 num_epochs epoch数
3 shuffle 指一个epoch内文件的顺序是否被打乱, 如果为False,则会按照顺序进入文件名队列

内存队列不需要自己建立,只需要使用reader对象从文件名队列中读取书即可

其他参数:tf.train.start_queue_runners
启动填充队列的线程
# coding:utf-8
import os
import tensorflow as tf


if os.path.exists('read') is False:
    os.makedirs('read/')

with tf.Session() as sess:
    filename = ['A.jpg', 'B.jpg', 'C.jpg']
    # 产生一个文件名队列 tf.train.string_input_producer
    filename_queue = tf.train.string_input_producer(filename, shuffle=False, num_epochs=5)
    # 使用reader从文件名队列中读物数据 reader.read
    reader = tf.WholeFileReader()
    key, value = reader.read(filename_queue)
    # 初始化tf.train.string_input_producer中的epoch变量
    tf.local_variables_initializer().run()
    # 使用start_queue_runners之后,开始填充队列
    threads = tf.train.start_queue_runners(sess=sess)
    i = 0
    while True:
        i += 1
        image_data = sess.run(value)
        with open('read/test_%d.jpg' % i, 'wb') as f:
            f.write(image_data)

♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥

广告时间:

本宝宝开通了一个公众号,记录日常的深度学习和强化学习笔记。

希望大家可以共同进步,嘻嘻嘻!求关注,爱你呦!

发布了128 篇原创文章 · 获赞 128 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/Valieli/article/details/103956778