tf.FIFOQueue
Class FIFOQueue
先进先出的队列

属性
dtypes
队列元素的每个组件的dtypes列表

name
队列名字

基础队列的名称。

names
队列元素的每个组件的名字列表

queue_ref
基础队列引用

shapes
队列元素的每个组件的尺寸列表

Methods
init

init(
capacity,
dtypes,
shapes=None,
names=None,
shared_name=None,
name=‘fifo_queue’
)

创建一个先进先出的队列。

一个FIFOQueue具有有限的容量;支持多个并发生产者和消费者;并且提供恰好一次传递。

一个FIFOQueue持有一个至多容量元素的列表。每个元素是一个固定长度的张量元组,其dtype由dtypes描述,其形状可选地由shapes参数描述。

如果指定了shapes参数,则队列元素的每个组件必须具有各自的固定形状。如果未指定,则不同的队列元素可能具有不同的形状,但是不允许使用dequeue_many。

参数:

capacity: 整数。可存储在该队列中的元素数量的上限。
dtypes: 一个dType对象的列表。dtypes的长度必须等于每个队列元素中张量的数量。
shapes: (可选) 一个完全定义的TensorShape对象的列表,其长度与dtypes相同,或者None。A
names: (Optional.) 可选的)一个字符串列表,命名为与dtypes相同的队列中的组件,或者None。如果指定了dequeue E方法,返回一个字典,名称为键。
shared_name: (Optional.)(可选)。如果非空,这个队列将在给定的名称下在多个会话中共享。
name: 队列操作的可选名称。

close
close(
cancel_pending_enqueues=False,
name=None
)

关闭先进先出队列

此操作指示在给定队列中不再有元素入队(enqueue)。随后的enqueue队列和enqueue_many将失败,如果队列中有足够的元素,则后续的dequeue(出队)和dequeue_many操作将继续成功。随后,如果dequeue和dequeue_many操作阻塞等待更多元素(如果close没有被调用)将立即失败。

如果cancel_pending_enqueues是True,所有未决请求也将被取消。

参数:

cancel_pending_enqueues: (可选) 一个boolean,默认为False
name: 操作的名字(可选)
返回:

关闭队列的操作

dequeue
dequeue(name=None)

从队列中出列一个元素。

如果队列在执行此操作时是空的,它将阻塞直到有一个元素出列。

在运行时,如果队列在执行之前或执行过程中的队列是.tf.QuealBase.close,则此操作可能会引发错误。如果队列被关闭,队列是空的,并且没有可以满足此请求的挂起队列操作,会触发tf.Error。如果会话是tf.Session.close,tf.errors.CancelledError 将触发。

参数:

name: 操作名(可选)
返回:

出列的张量的元组

dequeue_many
dequeue_many(
n,
name=None
)

将队列中的n个元素出列并连接起来。

此操作将队列元素组件张量沿着零维度连接成单个组件张量。在零个维度中,出列元组中的所有组件的大小都为n。如果队列被关闭,并且还有小于n个元素,则引发一个OutOfRange异常。

在运行时,如果队列是tf.QueueBase.close。在执行之前或执行期间关闭,则此操作可能会引发错误。如果队列关闭,则队列包含少于n个元素,并且没有可以满足此请求的挂起的入列操作,即tf.error.OutOfRangeErrouqr。如果这个队列是tf.Session.close, tf.errors.CancelledError将被抛出。

参数:

n: 一个scalar Tensor,包括入列元素的数目
name: 操作的名字(可选)
返回:

tensors拼接生成的列表,这些列表将出列

enqueue

enqueue(
vals,
name=None
)

在队列里入列一个元素

当操作执行时,如果这个队列是满的则它将阻止,直到元素已被入队。

在运行时,如果队列在执行之前或执行过程中的队列是tf.QueueBase.close,则此操作可能会引发错误tf.errors.CancelledError。如果该操作被阻塞,并且要么(i)队列通过具有cancel_pending_enque.=True的闭合操作关闭,要么(ii)会话为tf.Session.close、f.errors.CancelledError将被触发。

参数:

vals:一个tensor,tensors的元组列表 ,或包含入队值的字典。
name: 操作名字(可选)
返回:

将张量的新元组入列到队列的操作。

enqueue_many

enqueue_many(
vals,
name=None
)

将零或多个元素入队到此队列

该操作将每个分量张量沿零维切片,以形成多个队列元素。在零维中,所有在vals中的张量必须具有相同的大小。

如果此操作执行时队列已满,则它将阻塞,直到所有元素都已入队。

在运行时,如果队列在执行之前或执行过程中的队列是tf.QueueBase.close,如果在运行之前关闭该队列,则将引发tf.errors.CancelledError。如果该操作被阻塞,并且要么(i)队列通过具有cancel_pending_enqueues=True的闭合操作关闭,要么(ii)会话为tf.Session.close、tf.errors.CancelledError将被引发。

参数:

vals: 一个tensor,tensors元组的列表,或一个字典 从中获取队列元素的字典
name: A name for the operation (optional).
返回:

将张量的一批元组排到队列中的操作。

from_list

from_list(
index,
queues
)

从queues[index]中使用队列引用创建队列

参数:

index: 一个整数标量,决定输入选择范围
queues: 一个QueueBase对象列表
返回:

一个QueueBase对象

抛出:

TypeError: 当queues不是queues对象的列表,或当queues数据类型并非都相同。
is_closed

is_closed(name=None)

如果队列关闭,返回true。

如果队列是关闭的,此操作返回true;如果队列是打开的,则返回false。

参数:

name: 操作名称(可选)
返回:

如果队列是关闭的,此操作返回true;如果队列是打开的,则返回false。

size

size(name=None)

计算队列元素数量

参数:

name: 操作名(可选)
返回:

标量张量,包括队列元素数量

dequeue_up_to

dequeue_up_to(
n,
name=None
)

从队列中出列并拼接n个元素。

注:此操作不受所有队列的支持。如果队列不支持DequeueUpTo,则引发一个tf.errors.UnimplementedError。

此操作将队列元素组件张量沿着零维连接成单个组件张量。如果队列尚未关闭,则在零维度中,队列中的元组中的所有组件都将具有大小N。

如果队列关闭,并且剩余的元素多于0但少于n个,则立即返回少于n个的元素,而不是引发tf.error.OutOfRangeError,像tf.QueueBase.dequeue_many。如果队列关闭,并且队列中剩余的元素为0,tf.errors.OutOfRangeError将被抛出,就像就像dequeue_many中一样。否则行为与dequeue_many一样。

参数:

n: 一个标量Tensor,包含出列元素的数目。
name: A name for the operation (optional).
返回:

拼接出列tensors的元组,

#!/usr/bin/env python2
# -*- coding: utf-8 -*-import tensorflow as tfn = 100xQueue=tf.FIFOQueue(100,tf.int32)with tf.Session() as sess:for i  in xrange(n):if i%3==0:sess.run(xQueue.enqueue(i))xLen=sess.run(xQueue.size())mySum=0printfor i in range(xLen):myx=sess.run(xQueue.dequeue())print myx,mySum+=myxprint print mySum

0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99
1683
求被3整除的100以内数之和

下面列出1-4的数字

#!/usr/bin/env python2
# -*- coding: utf-8 -*-import tensorflow as tfwith tf.Session() as sess:queue = tf.FIFOQueue(100, dtypes=[tf.int32], shapes=[()])enqueue_op = queue.enqueue_many([[1, 2,3,4]])inputs = queue.dequeue_many(4)sess.run(enqueue_op)sess.run(enqueue_op)print sess.run(inputs)

[1 2 3 4]

#!/usr/bin/env python2
# -*- coding: utf-8 -*-import tensorflow as tfn = 100xQueue=tf.FIFOQueue(100,dtypes=[tf.int32],shapes=[])with tf.Session() as sess:for i  in xrange(n):if i%3==0:sess.run(xQueue.enqueue(i))xLen=sess.run(xQueue.size())myx=sess.run(xQueue.dequeue_many(xLen))print myx    print sum(myx)

[ 0 3 6 … 93 96 99]
1683
上面求100以内被3整除的数之和

tensorflow随笔-队列(1)相关推荐

  1. tensorflow随笔-队列管理器QueueRunner-生产者与消费者

    # -*- coding: utf-8 -*- """ Spyder EditorThis is a temporary script file. "" ...

  2. Tensorflow线程队列与IO操作

    目录 Tensorflow线程队列与IO操作 1 线程和队列 1.1 前言 1.2 队列 1.3 队列管理器 1.4 线程协调器 2 文件读取 2.1 流程 2.2 文件读取API: 3 图像读取 3 ...

  3. tensorflow随笔-读取图像文件数据(2)-TFRecord

    写文件 代码如下 # -*- coding: utf-8 -*- """ Created on Tue May 7 18:29:30 2019@author: liuxi ...

  4. tensorflow随笔-读取图像文件数据(1)

    # -*- coding: utf-8 -*- """ Created on Tue May 7 18:29:30 2019@author: liuxing @email ...

  5. tensorflow随笔-读取多个文件

    #!/usr/bin/env python2 # -*- coding: utf-8 -*- """读取多个文件""" import ten ...

  6. tensorflow随笔-文件数据读取

    # -*- coding:utf-8 -*- import tensorflow as tf fn_queue=tf.train.string_input_producer(["winequ ...

  7. tensorflow随笔-读文件

    #!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Sat Sep 15 10:54:53 201 ...

  8. TensorFlow入门--队列与TensorBoard操作

    目录 第1关:出队操作 - dequeue 方法 第2关:入队 - enqueue方法 第3关:TensorBoard的使用 第1关:出队操作 - dequeue 方法 本关任务:编写一个能计算队列中 ...

  9. tensorflow随笔——VGG网络

    这次用slim搭个稍微大一点的网络VGG16,VGG16和VGG19实际上差不多,所以本例程的代码以VGG16来做5类花的分类任务. VGG网络相比之前的LeNet,AlexNet引入如下几个特点: ...

最新文章

  1. tvm模型部署c++ 分析
  2. 服务发现系统之consul入门
  3. Android杂谈--ListView之BaseAdapter的使用二(转)
  4. OO Unit4 UML
  5. 超级账本(Hyperledger Fabric):基本架构及运作机制
  6. iOS之常用的正则表达式
  7. 鼠标问题:鼠标拖拽不灵敏,准备复制拖动的半截就断了
  8. 有道翻译接口问题(续)
  9. html 中 标签里面的id 和 name 有什么区别?
  10. 使用Symantec Altiris 来监控 Dell 服务器 的 硬件
  11. 迷你世界远古机器人_以我的世界生物为原型 打造17款创意庇护所
  12. 补PSP进度(10.28-11.3)
  13. javascript-函数声明和函数表达式-call-apply
  14. SaveIG什么意思--Instagram图片下载最佳途径,
  15. 微信小程序怎么开通店铺呢?
  16. 零基础学UI设计好学不?
  17. 图像二值化方法及适用场景分析(OTSU Trangle 自适应阈值分割)
  18. 路径规划 | 图解LPA*算法(附ROS C++/Python/Matlab仿真)
  19. 商标中R标和TM标的区别
  20. OSChina 周六乱弹 ——她穿裙子还没你好看呢

热门文章

  1. bzoj4665小w的喜糖 dp+容斥
  2. C# 深入浅出 委托与事件
  3. 设备管理学习之概念篇
  4. 洛谷 P3865 【模板】ST表
  5. POJ 3436 ACM Computer Factory(最大流+路径输出)
  6. 13.SpringMVC和Spring集成(一) 14.SpringMVC和Spring集成(二)
  7. POJ-1414 Life Line (暴力搜索)
  8. 显示和隐藏系统任务栏的类
  9. Nios 定时器内核之timestamp_timer
  10. Silverlight三维透视+倒影效果