tensorflow队列tf.FIFOQueue | enqueue | enqueue_many | dequeue | dequeue_many
关于队列的相关知识,盗用一张https://blog.csdn.net/HowardWood/article/details/79406891的动态图

import tensorflow as tf
import time
#
q = tf.FIFOQueue(3,'float') ###创建先入先出的队列
init = q.enqueue_many([[0.,0.,0.],]) ###[[0.,0.,0.],]的第0个以及元素为[0.,0.,0.],将[0.,0.,0.]的元素连入队
x = q.dequeue() ###出列一个元素
y = x+1
q_inc = q.enqueue([y]) ###单个数列[y]入队
with tf.Session() as sess: ###开启会话执行以上定义的操作
init.run() ###初始化列队(列队中加入3个0)
for _ in range(10): ###出列 入列 循环操作
v,_ = sess.run([x,q_inc]) ###执行x = q.dequeue 出列 空出一个位置,执行入列 q.enqueue([y])
time.sleep(2)
print(v)
# print(_)
'''
0.0
0.0
0.0
1.0
1.0
1.0
2.0
2.0
2.0
3.0
'''
动态图代码复现
###[[3.,2.,1.],[11.,22.,33.],[111.,222.,333.]]的第一个一级元素[3.,2.,1.]入队
# ###张量(数组)
input_data = [[3.,2.,1.],[11.,22.,33.],[111.,222.,333.]]
##创建一个先入先出队列
q = tf.FIFOQueue(3,dtypes=[tf.float32])
###入队---一次入队一个张量
init=q.enqueue(input_data)
###出队----一次出队一个张量
output_data = q.dequeue()
with tf.Session() as sess:
###入队操作3次(如果四次入队,而创建的队列长度为3,在入队3次后,没有出队操作,入队操作将会被阻止)
init.run()
init.run()
init.run()
##出队操作3次(如果队列里面没有数据,操作会被阻止,直到队列里面有一个数字)
print('1:',sess.run(output_data))
print('2:', sess.run(output_data))
print('3:', sess.run(output_data))
sess.run(q.close(cancel_pending_enqueues=True))
print(sess.run(q.is_closed()))
'''
输出:
1: [ 3. 2. 1.]
2: [ 3. 2. 1.]
3: [ 3. 2. 1.]
'''
enqueue and dequeue
#1.队列中元素的个数,小于出队操作的次数 --- 程序会被阻止(暂停等待),直到有队列中有元素
# ###张量(数组)
input_data = [[3.,2.,1.],[11.,22.,33.],[111.,222.,333.]]
##创建一个先入先出队列
q = tf.FIFOQueue(3,dtypes=[tf.float32])
###入队---一次入队一个张量
init=q.enqueue(input_data)
###出队----一次出队一个张量
output_data = q.dequeue()
with tf.Session() as sess:
###入队操作3次(如果四次入队,而创建的队列长度为3,在入队3次后,没有出队操作,入队操作将会被阻止)
init.run()
init.run()
# init.run() 只执行了两次入队操作,队列中有两个元素 print('1:',sess.run(output_data))
print('2:', sess.run(output_data))
print('3:', sess.run(output_data)) ##出队操作3次(如果队列里面没有数据,操作会被阻止,直到队列里面有一个数字)
sess.run(q.close(cancel_pending_enqueues=True))
print(sess.run(q.is_closed()))
'''
输出:
1: [ 3. 2. 1.]
2: [ 3. 2. 1.]
之后等待
'''
异常

##将数组的第一个以及元素的以及元素作为分别的元素,一次入队n个
input_data=[[3.,2.,1.],[11.,22.,33.],[111.,222.,333.]]
print(tf.shape(input_data))
q=tf.FIFOQueue(3,dtypes=[tf.float32],shapes=[[]])
init=q.enqueue_many(input_data)
output_data=q.dequeue()
with tf.Session() as sess:
init.run() ##入队一次(3个元素)
print('1:',sess.run(output_data))
print('2:',sess.run(output_data))
print('3:',sess.run(output_data))
sess.run(q.close(cancel_pending_enqueues=True))
print(sess.run(q.is_closed()))
'''
1: 3.0
2: 2.0
3: 1.0
True
'''
enqueue_many and dequeue
tensorflow队列tf.FIFOQueue | enqueue | enqueue_many | dequeue | dequeue_many的更多相关文章
- TensorFlow函数:tf.FIFOQueue队列
转载:https://blog.csdn.net/akadiao/article/details/78552037 tf.FIFOQueue tf.FIFOQueue继承基类QueueBase. Qu ...
- tf.FIFOQueue()
Tensorflow–tf.FIFOQueue详解描述tf.FIFOQueue根据先进先出(FIFO)的原则创建一个队列.队列是Tensorflow的一种数据结构,每个队列的元素都是包含一个或多个张量 ...
- 【学习笔记】tensorflow队列和线程
目录 Tensorflow队列 同步执行队列 队列管理器 异步执行队列 线程协调器 在使用TensorFlow进行异步计算时,队列是一种强大的机制. 为了感受一下队列,让我们来看一个简单的例子.我们先 ...
- 吴裕雄 python 神经网络——TensorFlow 队列操作
import tensorflow as tf q = tf.FIFOQueue(2, "int32") init = q.enqueue_many(([0, 10],)) x = ...
- tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数(转)
tensorflow数据读取机制 tensorflow中为了充分利用GPU,减少GPU等待数据的空闲时间,使用了两个线程分别执行数据读入和数据计算. 具体来说就是使用一个线程源源不断的将硬盘中的图片数 ...
- tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数
tensorflow数据读取机制 tensorflow中为了充分利用GPU,减少GPU等待数据的空闲时间,使用了两个线程分别执行数据读入和数据计算. 具体来说就是使用一个线程源源不断的将硬盘中的图片数 ...
- 【转载】 tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数
原文地址: https://blog.csdn.net/dcrmg/article/details/79776876 ----------------------------------------- ...
- tfsenflow队列|tf.train.slice_input_producer|tf.train.Coordinator|tf.train.start_queue_runners
#### ''' tf.train.slice_input_producer :定义样本放入文件名队列的方式[迭代次数,是否乱序],但此时文件名队列还没有真正写入数据 slice_input_pr ...
- 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法
在计算loss的时候,最常见的一句话就是 tf.nn.softmax_cross_entropy_with_logits ,那么它到底是怎么做的呢? 首先明确一点,loss是代价值,也就是我们要最小化 ...
随机推荐
- 2019牛客暑期多校训练营(第一场) - A - Equivalent Prefixes - 单调栈
A - Equivalent Prefixes - 单调栈 题意:给定两个n个元素的数组a,b,它们的前p个元素构成的数组是"等价"的,求p的最大值."等价"的 ...
- js/jquery中什么时候用return,什么时候用return false
根本的说 return 是函数的返回结果用, 如果你一个函数需要执行结果那就return 你需要的结果, 不需要结果就不用return而在jq中有些特殊的用法,比如$().each(function( ...
- 38.0到n-1中缺失的数字
题目描述: 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字的范围都在0到n-1之内.在范围0到n-1内的n个数字中有且仅有一个数字不在该数组中,求出该数字. 思路分析: 因 ...
- Java 8实战之读书笔记一:内容简介
本书的主要内容如下: 如何使用Java 8新增的强大特性 如何编写能有效利用多核架构的程序 重构.测试和调试 怎样高效地应用函数式编程 目录: 第一部分 基础知识 第1 章 为什么要关心Jav ...
- K3 cloud选单时候必须把必录的数据录完以后才可以选单
解决办法:在bos中把选单按钮的提交时候校验打勾
- 导入excle到服务器时候删除服务器历史数据
//删除历史数据EXCLE 当天前一天的数据都删除 var folder = Path.GetDirectoryName(absFilePath); var files = Directory.Get ...
- fputc, fputs, putc, putchar, puts - 输出字符和字符串
总览 (SYNOPSIS) #include <stdio.h> int fputc(int c, FILE *stream); int fputs(const char *s, FILE ...
- AR/VR增强现实 虚拟现实,嵌入式解决方案探讨
AR/VR增强现实 虚拟现实,嵌入式解决方案探讨 北京太速科技有限公司 视频增强现实产品与视频矩阵拼接等产品开发,增强现实技术包含了多媒体.三维建模.实时视频显示及控制.多传感器融合.实时跟踪及注册. ...
- 93-基于ATOM E3825的3U PXIe 主板控制器
基于ATOM E3825的3U PXIe 主板控制器 一.板卡概述: 本主板采用intel ATOM 处理器 E3825 设计主板控制器,是一种低成本.低功耗解决方案.板卡采用Intel Bay Tr ...
- [数论]原根与指标,BSGS
刚学了这方面的知识,总结一下.推荐学习数论方面的知识还是看书学习,蒟蒻看的是<初等数论>学的. 这里也推荐几个总结性质的博客,学习大佬的代码和习题. 原根:https://blog.csd ...