tensorflow-队列(3)

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 -*-
"""
Created on Thu Sep  6 10:16:37 2018
@author: myhaspl
"""
import tensorflow as tf

n = 100

xQueue=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=0
    print
    for i in range(xLen):
        myx=sess.run(xQueue.dequeue())
        print myx,
        mySum+=myx

    print
    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 -*-
"""
Created on Thu Sep  6 10:16:37 2018
@author: myhaspl
"""
import tensorflow as tf

with 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 -*-
"""
Created on Thu Sep  6 10:16:37 2018
@author: [email protected]
"""
import tensorflow as tf

n = 100

xQueue=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整除的数之和

原文地址:http://blog.51cto.com/13959448/2334709

时间: 2024-10-10 14:32:35

tensorflow-队列(3)的相关文章

TensorFlow队列读取流程

主要相关函数: tf.train.string_input_producer:这个函数需要传入一个文件名list,系统会自动将它转为一个文件名队列 tf.train.string_input_producer:两个重要的参数(1)num_epochs,上文中提到的epoch数(2)shuffle,shuffle是指在一个epoch内文件的顺序是否被打乱 tf.train.string_input_producer:创建文件名队列后,整个系统其实还是处于"停滞状态"的 tf.train.

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

import tensorflow as tf q = tf.FIFOQueue(2, "int32") init = q.enqueue_many(([0, 10],)) x = q.dequeue() y = x + 1 q_inc = q.enqueue([y]) with tf.Session() as sess: init.run() for _ in range(5): v, _ = sess.run([x, q_inc]) print(v) import time imp

Tensorflow 大规模数据集训练方法

本文转自:Tensorflow]超大规模数据集解决方案:通过线程来预取 原文地址:https://blog.csdn.net/mao_xiao_feng/article/details/73991787 现在让我们用Tensorflow实现一个具体的Input pipeline,我们使用CoCo2014作为处理对象,网上应该可以下载到CoCo训练集,train2014这个文件.下载链接: http://msvocds.blob.core.windows.net/coco2014/train201

Tensorflow源码解析1 -- 内核架构和源码结构

1 主流深度学习框架对比 当今的软件开发基本都是分层化和模块化的,应用层开发会基于框架层.比如开发Linux Driver会基于Linux kernel,开发Android app会基于Android Framework.深度学习也不例外,框架层为上层模型开发提供了强大的多语言接口.稳定的运行时.高效的算子,以及完备的通信层和设备层管理层.因此,各大公司早早的就开始了深度学习框架的研发,以便能占领市场.当前的框架有数十种之多,主流的如下(截止到2018年11月) 显然TensorFlow是独一无

浅谈 PHP Yaf 开启session之后对响应头的影响

当使用PHP Yaf框架,如果某个 Action 在返回响应(输出页面或者返回json)之前,启用了session,那么将会在响应头里面加上强制不缓存的响应头,也就是如下的三个响应头. Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache 测试代码 class IndexController extends Yaf_Controller_

『TensorFlow』队列&多线程&TFRecod文件_我辈当高歌

TF数据读取队列机制详解 TFR文件多线程队列读写操作: TFRecod文件写入操作: import tensorflow as tf def _int64_feature(value): # value必须是可迭代对象 # 非int的数据使用bytes取代int64即可 return tf.train.Feature(int64_list=tf.train.Int64List(value=[value])) num_shards = 2 instance_perPshard = 2 for i

吴裕雄 python 神经网络——TensorFlow 多线程队列操作

import tensorflow as tf queue = tf.FIFOQueue(100,"float") enqueue_op = queue.enqueue([tf.random_normal([1])]) qr = tf.train.QueueRunner(queue, [enqueue_op] * 5) tf.train.add_queue_runner(qr) out_tensor = queue.dequeue() with tf.Session() as sess

吴裕雄 python 神经网络——TensorFlow 输入文件队列

import tensorflow as tf def _int64_feature(value): return tf.train.Feature(int64_list=tf.train.Int64List(value=[value])) num_shards = 2 instances_per_shard = 2 for i in range(num_shards): filename = ('E:\\temp\\data.tfrecords-%.5d-of-%.5d' % (i, num_

Tensorflow细节-P190-输入文件队列

以下代码要学会几个地方 1.filename = ('data.tfrecords-%.5d-of-%.5d' % (i, num_shards)) 这个东西就是要会data.tfrecords-%.5d-of-%.5d两个.5d, 2.记住这两个操作writer = tf.python_io.TFRecordWriter(filename)与writer = tf.python_io.TFRecordWriter(filename) 3.得到的是以下TFrecoard两个文件 import t

Tensorflow一些常用基本概念与函数(四)

摘要:本系列主要对tf的一些常用概念与方法进行描述.本文主要针对tensorflow的模型训练Training与测试Testing等相关函数进行讲解.为'Tensorflow一些常用基本概念与函数'系列之四. 1.序言 本文所讲的内容主要为以下列表中相关函数.函数training()通过梯度下降法为最小化损失函数增加了相关的优化操作,在训练过程中,先实例化一个优化函数,比如 tf.train.GradientDescentOptimizer,并基于一定的学习率进行梯度优化训练: optimize