# -*- 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-生产者与消费者相关推荐

  1. spring boot整合IBM WebSphere MQ,并配置多个队列管理器

    IBM WebSphere MQ概述 网上关于IBM WebSphere MQ的资料挺少的,毕竟是一项老技术,整理一下从零开始对于IBM WebSphere MQ的理解 IBM WebSphere M ...

  2. com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: 为队列管理器提供的安全性认证无效...

    com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: 为队列管理器"zm_queue_manager"提 ...

  3. IBM MQ - 连接远程队列管理器报AMQ4036错误

    解决方法 :  首先确定好服务器连接通道是否正常,如SERVER_CHL: 修改其相关属性 :  ALTER CHL('SERVER_CHL') CHLTYPE(SVRCONN) MCAUSER('m ...

  4. 队列管理器连接数设置_详解!基于Redis解决业务场景中延迟队列的应用实践,你不得不服啊...

    一.业务概述 我们假定设置两个队列,一个队列维护正式工单,另一个队列维护挂起工单.对于挂起操作,我们通过Redis设置key有效时间,当key失效时,客户端监听失效事件,获取工单,实现 挂起工单队列的 ...

  5. MQ队列管理器搭建(一)

    多应用单MQ使用场景 如上图所示,MQ独立安装,或者与其中一个应用同处一机.Application1与Application2要进行通信,但因为跨系统,所以引入中间件来实现需求. Applicatio ...

  6. mq查看队列管理器信息linux,IBM WebSphere MQ for linux 安装详解 | MUCHINFO

    前言 首先介绍一下MQ MQ消息队列的简称是一种应用程序对应用程序的通信方法.说白了也就是通过队列的方式来对应用程序进行数据通信.而无需专用链接来链接它们. MQ的通讯方式 1.数据报的方式 Data ...

  7. linux队列管理器复位,Linux如何实现MQ开机自动启动队列管理器

    问题描述: 前面的MQ安装,需要手动设置MQ环境变量和启动队列管理器,每次重启后,都需要手动,实际生产中MQ服务器应该可以自动重启. 解决: linux下MQ默认安装没有自动设置mq运行环境变量和开机 ...

  8. linux下添加mq队列管理配置,linux下 MQ第二弹:队列管理器的配置,实现双机MQI通道异步双向通信,亲测!!...

    本人前面文章一提到MQ 在linux下的安装,在此只描述队列管理器的配置,实现MQI通道的双向通讯. 一下方法我已亲测!! 贴出A,B两机的MQ配置记录: A机: #**--------------- ...

  9. SpringBoot整合IBM MQ,多个队列管理器通信

    说明:本项目开发前提是,在本地windows机器上搭建了MQ,并建立好发送队列管理器,本地队列,远程队列,发送通道:在阿里云服务器上也搭建了MQ,建立了接收队列管理器,接收通道.具体步骤见本人之前的博 ...

最新文章

  1. 你一定要了解的NB-IoT !
  2. 《转》完美解决微信video视频隐藏控件和内联播放问题
  3. 955.WLB 不加班公司名单,2022年最新版!新增5家公司
  4. vue接收jsp发送的post请求_vue与后台交互之post用法
  5. ASP.NET读取XML文件
  6. linux 桌面小部件,在Ubuntu中安装桌面小部件 | MOS86
  7. 阿里云盘 Mac客户端(附福利兑换码)
  8. 儿童使用计算机和手机的 危害,手机对孩子的4个不良影响,第3个最严重!
  9. OSChina 周六乱弹 ——我的闺蜜是总统
  10. Liunx 切换用户This account is currently not available
  11. 用友杨雨春 融合是企业互联网化的下一个主旋律
  12. win10恢复经典开始菜单_怎么将win10界面切换成win7界面
  13. 给定一个任意的大写字母A~Z,转换为小写字母。
  14. 【转】系统无法进入睡眠模式解决办法
  15. SpringBoot 中 The valid characters are defined in RFC 7230 and RFC 3986 终极解决方案
  16. Java中同步和异步的区别是什么?优点缺点以及概念理解
  17. 奥地利、爱沙尼亚重要机构或正成为俄黑客目标
  18. viso 2003 windows 10 Microsoft Office 启动报错:无法验证产品的许可证
  19. Passive device and active device(有源器件和无源器件)
  20. UE4 插值FInterpEaseInOut和Ease

热门文章

  1. 用C#操作word替换字符,用spire
  2. 由web项目中上传图片所引出的路径问题
  3. PHP session值控制
  4. WSS 扩展文件夹的属性--如何给文件夹添加扩展字段
  5. 函数和构造函数的区别
  6. Python学习 Day 046 - DOM 操作 二
  7. 图片预加载的问题-----有针对加载和缓存的兼容解决
  8. Android系统语言默认设置为简体中文
  9. ASP.NET定时调用WebService 运行后台代码
  10. 六式建站浅见,和大家一起分享,不足之处还望斧正。