Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tensorflow-获取队列中的样本数量?_Python_Tensorflow - Fatal编程技术网

Python Tensorflow-获取队列中的样本数量?

Python Tensorflow-获取队列中的样本数量?,python,tensorflow,Python,Tensorflow,对于性能监控,我想关注一下当前排队的示例。我正在平衡用于填充队列的线程数量和队列的最佳最大大小。 我如何获得这些信息?我使用的是tf.train.batch(),但我猜信息可能在FIFOQueue中的某个地方? 我本以为这是一个局部变量,但我没有找到它。tldr:如果您的队列是由tf.batch创建的,您可以使用sess.run(“批处理/fifo\u队列大小:0”)获取大小。 FIFOQueue对象提供了一个size()方法,该方法创建一个op,该op给出队列中的元素数。但是,如果您使用的是t

对于性能监控,我想关注一下当前排队的示例。我正在平衡用于填充队列的线程数量和队列的最佳最大大小。 我如何获得这些信息?我使用的是
tf.train.batch()
,但我猜信息可能在
FIFOQueue
中的某个地方?
我本以为这是一个局部变量,但我没有找到它。

tldr:如果您的队列是由
tf.batch
创建的,您可以使用
sess.run(“批处理/fifo\u队列大小:0”)获取大小。

FIFOQueue
对象提供了一个
size()
方法,该方法创建一个op,该op给出队列中的元素数。但是,如果您使用的是
tf.batch
,则会在方法内部创建FIFOQueue,并且此对象不会暴露在外部

特别是你可以从中看到这一点

由于
queue
是本地的,因此无法获得其
size()
方法。但是,由于已调用
size()
来构造摘要,因此相应的
size
op在图中,您可以按名称调用它。通过执行以下操作,可以找到节点的名称

x = tf.constant(1)
q = tf.train.batch([x], 2)
tf.get_default_graph().as_graph_def()
你会看到

node {
  name: "batch/fifo_queue_Size"
  op: "QueueSize"
  input: "batch/fifo_queue"
  attr {
    key: "_class"
    value {
      list {
从中可以看出,
batch/fifo\u queue\u Size
是op的名称,因此
batch/fifo\u queue\u Size:0
是第一个输出的名称,因此可以通过如下操作获得大小:

sess.run("batch/fifo_queue_Size:0")
如果您有多个
批处理
操作,名称将自动重复到
批处理1/fifo\u队列大小
批处理2/fifo\u队列大小
,等等


或者,您可以使用
tf.batch(…name=“mybatch”)
调用您的节点,然后tensor的名称将是
mybatch/fifo\u queue\u Size:0

出色的写入。也完全错过了批处理中的标量摘要-这是因为我没有执行
合并所有\u摘要
,而是从我自己的范围中获取它们。谢谢你的时间,雅罗斯拉夫。
sess.run("batch/fifo_queue_Size:0")