关于队列的相关知识,盗用一张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的更多相关文章

  1. TensorFlow函数:tf.FIFOQueue队列

    转载:https://blog.csdn.net/akadiao/article/details/78552037 tf.FIFOQueue tf.FIFOQueue继承基类QueueBase. Qu ...

  2. tf.FIFOQueue()

    Tensorflow–tf.FIFOQueue详解描述tf.FIFOQueue根据先进先出(FIFO)的原则创建一个队列.队列是Tensorflow的一种数据结构,每个队列的元素都是包含一个或多个张量 ...

  3. 【学习笔记】tensorflow队列和线程

    目录 Tensorflow队列 同步执行队列 队列管理器 异步执行队列 线程协调器 在使用TensorFlow进行异步计算时,队列是一种强大的机制. 为了感受一下队列,让我们来看一个简单的例子.我们先 ...

  4. 吴裕雄 python 神经网络——TensorFlow 队列操作

    import tensorflow as tf q = tf.FIFOQueue(2, "int32") init = q.enqueue_many(([0, 10],)) x = ...

  5. tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数(转)

    tensorflow数据读取机制 tensorflow中为了充分利用GPU,减少GPU等待数据的空闲时间,使用了两个线程分别执行数据读入和数据计算. 具体来说就是使用一个线程源源不断的将硬盘中的图片数 ...

  6. tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数

    tensorflow数据读取机制 tensorflow中为了充分利用GPU,减少GPU等待数据的空闲时间,使用了两个线程分别执行数据读入和数据计算. 具体来说就是使用一个线程源源不断的将硬盘中的图片数 ...

  7. 【转载】 tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数

    原文地址: https://blog.csdn.net/dcrmg/article/details/79776876 ----------------------------------------- ...

  8. tfsenflow队列|tf.train.slice_input_producer|tf.train.Coordinator|tf.train.start_queue_runners

      #### ''' tf.train.slice_input_producer :定义样本放入文件名队列的方式[迭代次数,是否乱序],但此时文件名队列还没有真正写入数据 slice_input_pr ...

  9. 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法

    在计算loss的时候,最常见的一句话就是 tf.nn.softmax_cross_entropy_with_logits ,那么它到底是怎么做的呢? 首先明确一点,loss是代价值,也就是我们要最小化 ...

随机推荐

  1. 最小公倍数(lcm与gcd)

    J - Worker Avin meets a rich customer today. He will earn 1 million dollars if he can solve a hard p ...

  2. tomcat安装分享

    安装Tomcat前需要安装JDK 安装的jdk1.8   解压   在vim /etc/profile下面添加以下内容 export JAVA_HOME=/jdk/jdk1.8.0_111export ...

  3. asp.net 连续打印多份HTML页面,出现漏字

    在IE8上打印的内容用了CSS 样式,连续打印多份导致的 可以通过改变CSS样式或更换浏览器解决

  4. ini配置文件内如果有更新参数

    ini配置文件内如果有更新参数 执行更新 更新参数 自动去下载执行????

  5. 学会如何使用shiro

    摘:https://www.cnblogs.com/learnhow/p/5694876.html 一.架构 要学习如何使用Shiro必须先从它的架构谈起,作为一款安全框架Shiro的设计相当精妙.S ...

  6. vue 字符串长度控制显示的字数超出显示省略号

    1. html <p class="index__Feature-list-itemlist-title newline"> {{item.name| ellipsis ...

  7. 51nod 1040:最大公约数之和(数论)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040 给出一个n,求1-n这n个数,同n的最大公约数的和. ...

  8. 【leetcode】572. Subtree of Another Tree

    题目如下: Given two non-empty binary trees s and t, check whether tree t has exactly the same structure ...

  9. 【8.0.0_r4】AMS架构与流程分析

    AMS主要用来管理应用程序的生命周期,以及其核心组件,包括Activity,Service,Provider,Broadcast,Task等 之前整体架构如下图(O上已经废弃) 新的架构比较直接,简化 ...

  10. 基于oracle 的PL/SQL编程 -变量使用

    1. 需要开启的服务:  本机安装的oracle ,默认是开机启动服务的,开机时间太慢,关闭了,需要手动打开: OracleDBConsoleorcl OracleOraDb10g_home1iSQL ...