python-tensorflow Coordinate和QueueRunner配合管理队列-注入数据
发布日期:2021-11-05 07:52:18 浏览次数:25 分类:技术文章

本文共 2827 字,大约阅读时间需要 9 分钟。

转发: 

第一种,利用FIFOQueue构建队列,然后enqueue_many出来,构成tensor列表

import tensorflow as tfq = tf.FIFOQueue(10, [tf.int32,tf.int32,tf.int32])init = q.enqueue_many(([[0], [10], [20]] ))

x类型是一个tensor list 

第二种,利用tf.train.slice_input_producer向文件名队列写数据

tf.train.slice_input_producer是一个tensor生成器,作用是按照设定,每次从一个tensor列表中按顺序或者随机抽取出一个tensor放入文件名队列。

slice_input_producer(tensor_list, num_epochs=None, shuffle=True, seed=None,                         capacity=32, shared_name=None, name=None)

第一个参数 tensor_list:包含一系列tensor的列表,表中tensor的第一维度的值必须相等,即个数必须相等,有多少个图像,就应该有多少个对应的标签。

第二个参数num_epochs: 可选参数,是一个整数值,代表迭代的次数,如果设置 num_epochs=None,生成器可以无限次遍历tensor列表,如果设置为 num_epochs=N,生成器只能遍历tensor列表N次。
第三个参数shuffle: bool类型,设置是否打乱样本的顺序。一般情况下,如果shuffle=True,生成的样本顺序就被打乱了,在批处理的时候不需要再次打乱样本,使用 tf.train.batch函数就可以了;如果shuffle=False,就需要在批处理时候使用 tf.train.shuffle_batch函数打乱样本。
第四个参数seed: 可选的整数,是生成随机数的种子,在第三个参数设置为shuffle=True的情况下才有用。
第五个参数capacity:设置tensor列表的容量。
第六个参数shared_name:可选参数,如果设置一个‘shared_name’,则在不同的上下文环境(Session)中可以通过这个名字共享生成的tensor。
第七个参数name:可选,设置操作的名称。

tf.train.slice_input_producer定义了样本放入文件名队列的方式,包括迭代次数,是否乱序等,要真正将文件放入文件名队列,还需要调用tf.train.start_queue_runners 函数来启动执行文件名队列填充的线程,之后计算单元才可以把数据读出来,否则文件名队列为空的,计算单元就会处于一直等待状态,导致系统阻塞。

import tensorflow as tf images = ['img1', 'img2', 'img3', 'img4', 'img5']labels= [1,2,3,4,5] epoch_num=8 f = tf.train.slice_input_producer([images, labels],num_epochs=None,shuffle=False) #images labels是tensor列表 with tf.Session() as sess:    sess.run(tf.global_variables_initializer())    coord = tf.train.Coordinator()    threads = tf.train.start_queue_runners(sess=sess, coord=coord)    #启动线程    for i in range(epoch_num):        k = sess.run(f)        print('************************')        print (i,k)     coord.request_stop()    coord.join(threads)
************************0 [b'img1', 1]************************1 [b'img2', 2]************************2 [b'img3', 3]************************3 [b'img4', 4]************************4 [b'img5', 5]************************5 [b'img1', 1]************************6 [b'img2', 2]************************7 [b'img3', 3]

第三种,利用tf.train.string_input_producer向文件名队列写.csv数据

实际上,就是将slice换成了string

file_queue = tf.train.string_input_producer(filename, shuffle=True, num_epochs=2)reader = tf.WholeFileReader()key, value = reader.read(file_queue)
import tensorflow as tffilename = ['A.csv', 'B.csv', 'C.csv']file_queue = tf.train.string_input_producer(filename, shuffle=True, num_epochs=2)reader = tf.WholeFileReader()key, value = reader.read(file_queue)with tf.Session() as sess:    sess.run(tf.local_variables_initializer())        coord = tf.train.Coordinator()    threads = tf.train.start_queue_runners(sess=sess,coord=coord)    for i in range(6):        print(sess.run([key, value]))    # 使用tf.train.Coordinator来停止所有线程    coord.request_stop()    # 等待所有线程执行完毕    coord.join(threads)

 

.csv中数据

还需要解码!!

转载地址:https://blog.csdn.net/xingghaoyuxitong/article/details/114677797 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:python-tensorflow批量读取图像
下一篇:python-tensorflow Coordinate和QueueRunner配合管理队列-提取数据

发表评论

最新留言

很好
[***.229.124.182]2024年03月04日 10时13分33秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

三星k3梅林没有软件中心_10万出头买顶配,1.4T合资家轿起亚K3换新,还带换挡拨片... 2019-04-21
k8s边缘节点_边缘计算容器及K8S应用的三种场景及部署选项 2019-04-21
诸葛io的技术架构图_基于泳道技术生成“无数”个测试环境 2019-04-21
互相引用 spring_# 技术笔记:spring、springBoot源码解析 2019-04-21
华为发布岳云鹏手机_鸿蒙2.0正式发布:明年华为手机全面升级 2019-04-21
ifpc挖filecoin_Filecoin挖矿分析全套 不容错过的干货 2019-04-21
python扫雷 高级算法_Python玩转算法—扫雷 2019-04-21
牛客网python测试考试答案_牛客网SQL题库之考试分数 2019-04-21
git获取所有branch_使用jGit 通过gitUrl 获取Git的所有分支 2019-04-21
mysql like 数字结尾_重拾MySQL之正则表达式 2019-04-21
mysql where从句_《快速念咒——MySQL自学入门指南》:第1章第8节:模糊查询LIKE——一窝兔子(上)... 2019-04-21
mysql 重置密码_mysql忘记密码如何重置密码,以及修改root密码的三种方法 2019-04-21
python-docx tables后追加内容_Mac brew安装MySQL8.0.21后忘记密码(重置密码篇) 2019-04-21
python中两个时间相减结果转为小时_Python起步(二)基础数据类型1 2019-04-21
定义泛化。举个例子_网易考拉应用的dubbo泛化调用,是如何实现的? 2019-04-21
mysql里可以用cube吗_sql server的cube操作符使用详解_mysql 2019-04-21
php mysql 图书_使用PHP+MySQL来对图书管理系统进行构建 2019-04-21
单片机c语言 int1,51单片机into、int1中断计数c语言源程序.doc 2019-04-21
c语言课程设计工资管理建库,C语言课程设计工资管理系统参考.doc 2019-04-21
c语言case中途跳出,break语句在switch结构语句中的作用是终止某个case,并跳出switch结构语句。... 2019-04-21