【tensorflow】文件队列的两种创建和加载方式
来源:互联网 发布:南京网络作家协会 编辑:程序博客网 时间:2024/06/01 10:20
方式1:内存加载
①创建队列: queue=tf.FIFOQueue(...) or queue=tf.RandomShuffleQueue(...)
②添加enqueue op: enqueue=tf.enqueue(xxx) or enqueue=tf.enqueue_many([xxx])
③手动添加queue runner: qr=tf.train.QueueRunner(queue,enqueue*thread)
④异步启动qunue runner: thread=qr.create_threads(sess,corrd,start=True)
说明:
1) corr=tf.train.Coordinator()用于线程之间协调,通过发送coord.request_stop()和接收corrd.should_stop()同步结束,用coord.join(thread)等待副线程的op执行完毕
2) thread会循环执行
①创建文件名队列并加载: name_queue=tf.train.string_input_producer(list,epoch,...) or name_queue=tf.train.slice_input_producer([lists],epoch,...)
②读取并解码文件名队列对应的文件: contents=tf.read_file(name_queue),用decoded_contents=tf.image.decode_xxx(contents)解码
③创建文件队列并加载批次: batch=tf.train.batch(decoded_contents,...) or batch=tf.train.shuffle_batch(decoded_contents,...)
④启动线程: thread=tf.train.start_queue_runners(corrd)
说明:
1) tf.train.string_input_producer()和tf.train.batch()中隐含了queue runner的创建和enqueue op的创建
2) tf.train.start_queue_runners()中隐含了多个qr.create_threads()
3) 异步线程加载name_queue时,根据num_epoches参数循环
4) tf.train.string_input_producer()输入tensor list,返回queue tensor;tf.train.slice_input_producer()输入list of tensor list,返回list of queue tensor
①创建队列: queue=tf.FIFOQueue(...) or queue=tf.RandomShuffleQueue(...)
②添加enqueue op: enqueue=tf.enqueue(xxx) or enqueue=tf.enqueue_many([xxx])
③手动添加queue runner: qr=tf.train.QueueRunner(queue,enqueue*thread)
④异步启动qunue runner: thread=qr.create_threads(sess,corrd,start=True)
说明:
1) corr=tf.train.Coordinator()用于线程之间协调,通过发送coord.request_stop()和接收corrd.should_stop()同步结束,用coord.join(thread)等待副线程的op执行完毕
2) thread会循环执行
①创建文件名队列并加载: name_queue=tf.train.string_input_producer(list,epoch,...) or name_queue=tf.train.slice_input_producer([lists],epoch,...)
②读取并解码文件名队列对应的文件: contents=tf.read_file(name_queue),用decoded_contents=tf.image.decode_xxx(contents)解码
③创建文件队列并加载批次: batch=tf.train.batch(decoded_contents,...) or batch=tf.train.shuffle_batch(decoded_contents,...)
④启动线程: thread=tf.train.start_queue_runners(corrd)
说明:
1) tf.train.string_input_producer()和tf.train.batch()中隐含了queue runner的创建和enqueue op的创建
2) tf.train.start_queue_runners()中隐含了多个qr.create_threads()
3) 异步线程加载name_queue时,根据num_epoches参数循环
4) tf.train.string_input_producer()输入tensor list,返回queue tensor;tf.train.slice_input_producer()输入list of tensor list,返回list of queue tensor
阅读全文
0 0
- 【tensorflow】文件队列的两种创建和加载方式
- 加载xib文件的两种方式
- Qml文件的两种加载方式
- Flash动态加载swf文件的两种方式
- Android加载布局文件的两种方式及区别。
- Python加载csv文件的两种方式
- JavaScript加载XML文件的两种方式
- Spring加载properties文件的两种方式
- spring 配置加载外部文件的两种方式
- Android加载布局文件的两种方式及区别
- Spring加载properties文件的两种方式
- Spring加载properties文件的两种方式
- Spring加载properties文件的两种方式
- Spring加载properties文件的两种方式
- Spring加载properties文件的两种方式
- Spring加载properties文件的两种方式
- Spring加载properties文件的两种方式
- Spring加载properties文件的两种方式
- selenium上传附件(借助AutoIt识别Windows上传窗口)
- Onenet EDP协议调试(1)-设备登陆
- Java 中根据 TCP 协议进行网络通信
- PHP面向对象中final和const笔记
- 第14周项目3- 归并排序算法的改进
- 【tensorflow】文件队列的两种创建和加载方式
- 如何在在frame里返回上一页
- 关于Gmssl
- 登录注册mvp
- HADOOP离线分析+实时分析框架使用技术框架Hadoop+Flume+Kafka+Storm+Hive+Sqoop+mysql/oracle
- flask框架运行程序一些知识
- [JSP&JDBC]mysql数据库/properties系统找不到指定的路径路径/java.lang.nullpointerexception
- 第四周实践项目2 算法库——单链表
- GCD的其他(不常用)方法