Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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
Tensorflow 如何使用TF.train.shuffle_batch构建训练和推理的TF图?_Tensorflow - Fatal编程技术网

Tensorflow 如何使用TF.train.shuffle_batch构建训练和推理的TF图?

Tensorflow 如何使用TF.train.shuffle_batch构建训练和推理的TF图?,tensorflow,Tensorflow,上下文:卷积自动编码器 我使用tf将输入张量和输出张量添加到图中。将张量添加到集合()中 在推理过程中,我调用tf.get_collections()来提取这些节点,然后调用sess.run()。它说形状固定在[512,32,32,3],我如何解决这个问题?一个可能的解决方案是使用op来放松输入op上的形状要求。例如: input_batch = tf.train.shuffle_batch(..., batch_size=512) input_placeholder = tf.placeho

上下文:卷积自动编码器

我使用tf将输入张量和输出张量添加到图中。将张量添加到集合()中


在推理过程中,我调用tf.get_collections()来提取这些节点,然后调用sess.run()。它说形状固定在[512,32,32,3],我如何解决这个问题?

一个可能的解决方案是使用op来放松输入op上的形状要求。例如:

input_batch = tf.train.shuffle_batch(..., batch_size=512)

input_placeholder = tf.placeholder_with_default(input_batch, [None, None, None, 3])
如果您运行依赖于
input\u placeholder
的代码,但不输入它,它将使用
tf.train.shuffle\u batch()
的结果。或者,如果为
input\u placeholder
输入值,则可以输入任何4-D张量(深度为3),因此可以使用任何批次大小或图像大小

但是,请注意,这样做将禁用培训中的一些优化,因为每个批次的形状现在可以改变,至少在原则上是这样。这可以防止TensorFlow将一些内部调用视为常量值,这可能意味着它需要在每个训练步骤上做更多的工作。最后,最好为训练和推理建立两个单独的图表,因为它们可以单独优化。

参考。Yaroslav提到拥有多个图形很少有用。我们应该怎么做?我又问了一个问题。
input_batch = tf.train.shuffle_batch(..., batch_size=512)

input_placeholder = tf.placeholder_with_default(input_batch, [None, None, None, 3])