• tensorflow数据读取过程


    思考
    如果tf读取文件是这样的:1. 读取文件, 2. 将文件数据送入内存计算。 那么就意味这读取和计算是串行的,效率低下。

    那么提高效率的一个简单途径,就是将两个步骤并行化。

     

    这样就可以把数据读取与数据计算分离。

     tf改进
    tf的数据读取更进一步,添加了一个文件名管理队列,用于先将需要处理的数据的文件存储起来,这样就可以与epoch(将所有数据训练一遍称为一个epoch)紧密结合起来,如果需要两个epoch,只需要把这些文件在文件名管理队列存储两遍即可。需要使用这个数据的时候,直接从这个文件名管理队列中获取文件,然后获取文件放到内存队列。这里文件名管理队列会在最后一个文件的后面添加结束标志,用于使程序抛出一个 OutOfRangeError 异常,提示已经完成所有文件读取和计算,程序结束。

     

    相关函数
    创建文件名队列:

    filename_queue = tf.train.string_input_producer(fliename_list, shuffle=False, num_epochs=NUM)

    从文件名队列中读取数据:

    reader = tf.WholeFileReader()

    key, value = reader.read(filename_queue)

    上一步创建了队列,下一步需要填充队列,系统拿到计算数据进行计算:

    tf.train.start_queue_runners()

    参考:

    《21个项目玩转tensorflow》

  • 相关阅读:
    Redis设置生存时间或过期时间的相关命令
    .Net Core使用Redis
    Redis的数据类型
    Java集合 使用Collections
    Java集合 使用Iterator
    Java集合 使用Stack
    响应式常用样式汇总
    图片 文字 背景等响应式设置总结
    微信动态聊天工具
    第2章 栅格系统
  • 原文地址:https://www.cnblogs.com/gstblog/p/11649182.html
Copyright © 2020-2023  润新知