tensorflow随笔-队列管理器QueueRunner-生产者与消费者
# -*- coding: utf-8 -*-
"""
Spyder EditorThis is a temporary script file.
"""
#生产者与消费者
import tensorflow as tfqueue=tf.FIFOQueue(100,"float")
num=tf.random_uniform([1],1,50,tf.float32)
eQueue=queue.enqueue(num)
#队列管理器
qr=tf.train.QueueRunner(queue,enqueue_ops=[eQueue]*1)
#主线程
with tf.Session() as sess:sess.run(tf.global_variables_initializer())sess.run(eQueue)#另外开一个入队线程enqueueThreads=qr.create_threads(sess,start=True)#主线程出队for i in range(10):print(sess.run(queue.dequeue()))
[16.1576]
[42.464508]
[13.7773485]
[39.160828]
[44.308994]
[30.80474]
[37.00065]
[2.7175977]
[32.29577]
[6.0784574]
(1)队列管理器单独开线程进行入队操作
(2)主线程进行出队操作
从而完成生产者与消费者模型
队列是使用多线程异步计算张量的一种方便的TensorFlow机制。例如,在规范的“input Reader”设置中,一组线程在队列中生成文件名;第二组线程从文件中读取记录,对其进行处理,并将张量放入第二队列;第三组线程从这些输入记录中取出队列来构造批,并通过培训操作运行它们。
当以这种方式运行多个线程时,存在几个微妙的问题:在输入耗尽时按顺序关闭队列、正确捕获异常并报告异常,等等。
QueueRunner与协调器一起帮助处理这些问题
__init__(queue=None,enqueue_ops=None,close_op=None,cancel_op=None,queue_closed_exception_types=None,queue_runner_def=None,import_scope=None
)
enqueue_ops:稍后将在线程中运行的enqueue ops 入队OPS列表
create_threads(sess,coord=None,daemon=False,start=False
)
创建线程来运行给定Session的入队操作。
此方法需要启动图graph的Session。它创建一个线程列表,可以选择启动它们。enqueue_ops中传递的每个op都有一个线程。
coord参数是一个可选的协调器,线程将使用它一起终止并报告异常。如果给定一个协调器,此方法将启动一个附加线程,以便在协调器请求停止时关闭队列。
如果先前为给定会话创建的线程仍在运行,则不会创建任何新线程。
tensorflow随笔-队列管理器QueueRunner-生产者与消费者相关推荐
- spring boot整合IBM WebSphere MQ,并配置多个队列管理器
IBM WebSphere MQ概述 网上关于IBM WebSphere MQ的资料挺少的,毕竟是一项老技术,整理一下从零开始对于IBM WebSphere MQ的理解 IBM WebSphere M ...
- com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: 为队列管理器提供的安全性认证无效...
com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: 为队列管理器"zm_queue_manager"提 ...
- IBM MQ - 连接远程队列管理器报AMQ4036错误
解决方法 : 首先确定好服务器连接通道是否正常,如SERVER_CHL: 修改其相关属性 : ALTER CHL('SERVER_CHL') CHLTYPE(SVRCONN) MCAUSER('m ...
- 队列管理器连接数设置_详解!基于Redis解决业务场景中延迟队列的应用实践,你不得不服啊...
一.业务概述 我们假定设置两个队列,一个队列维护正式工单,另一个队列维护挂起工单.对于挂起操作,我们通过Redis设置key有效时间,当key失效时,客户端监听失效事件,获取工单,实现 挂起工单队列的 ...
- MQ队列管理器搭建(一)
多应用单MQ使用场景 如上图所示,MQ独立安装,或者与其中一个应用同处一机.Application1与Application2要进行通信,但因为跨系统,所以引入中间件来实现需求. Applicatio ...
- mq查看队列管理器信息linux,IBM WebSphere MQ for linux 安装详解 | MUCHINFO
前言 首先介绍一下MQ MQ消息队列的简称是一种应用程序对应用程序的通信方法.说白了也就是通过队列的方式来对应用程序进行数据通信.而无需专用链接来链接它们. MQ的通讯方式 1.数据报的方式 Data ...
- linux队列管理器复位,Linux如何实现MQ开机自动启动队列管理器
问题描述: 前面的MQ安装,需要手动设置MQ环境变量和启动队列管理器,每次重启后,都需要手动,实际生产中MQ服务器应该可以自动重启. 解决: linux下MQ默认安装没有自动设置mq运行环境变量和开机 ...
- linux下添加mq队列管理配置,linux下 MQ第二弹:队列管理器的配置,实现双机MQI通道异步双向通信,亲测!!...
本人前面文章一提到MQ 在linux下的安装,在此只描述队列管理器的配置,实现MQI通道的双向通讯. 一下方法我已亲测!! 贴出A,B两机的MQ配置记录: A机: #**--------------- ...
- SpringBoot整合IBM MQ,多个队列管理器通信
说明:本项目开发前提是,在本地windows机器上搭建了MQ,并建立好发送队列管理器,本地队列,远程队列,发送通道:在阿里云服务器上也搭建了MQ,建立了接收队列管理器,接收通道.具体步骤见本人之前的博 ...
最新文章
- 你一定要了解的NB-IoT !
- 《转》完美解决微信video视频隐藏控件和内联播放问题
- 955.WLB 不加班公司名单,2022年最新版!新增5家公司
- vue接收jsp发送的post请求_vue与后台交互之post用法
- ASP.NET读取XML文件
- linux 桌面小部件,在Ubuntu中安装桌面小部件 | MOS86
- 阿里云盘 Mac客户端(附福利兑换码)
- 儿童使用计算机和手机的 危害,手机对孩子的4个不良影响,第3个最严重!
- OSChina 周六乱弹 ——我的闺蜜是总统
- Liunx 切换用户This account is currently not available
- 用友杨雨春 融合是企业互联网化的下一个主旋律
- win10恢复经典开始菜单_怎么将win10界面切换成win7界面
- 给定一个任意的大写字母A~Z,转换为小写字母。
- 【转】系统无法进入睡眠模式解决办法
- SpringBoot 中 The valid characters are defined in RFC 7230 and RFC 3986 终极解决方案
- Java中同步和异步的区别是什么?优点缺点以及概念理解
- 奥地利、爱沙尼亚重要机构或正成为俄黑客目标
- viso 2003 windows 10 Microsoft Office 启动报错:无法验证产品的许可证
- Passive device and active device(有源器件和无源器件)
- UE4 插值FInterpEaseInOut和Ease