Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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,我正在使用tensorflow运行队列在培训期间提供数据: X, Y = tf.train.batch( [image, label], batch_size=64 ) 然而,X,Y具有[64,32,32,3]和[64,10]的强制形状。在评估期间,我希望在整个测试集上运行loss操作,该测试集的维度为:[10000,32,32,3]和[10000,10]。我会在session.run()中使用feed_dict属性用我的值覆盖X,

我正在使用tensorflow运行队列在培训期间提供数据:

X, Y = tf.train.batch(
           [image, label], 
           batch_size=64 
       )
然而,X,Y具有[64,32,32,3]和[64,10]的强制形状。在评估期间,我希望在整个测试集上运行loss操作,该测试集的维度为:[10000,32,32,3]和[10000,10]。我会在session.run()中使用feed_dict属性用我的值覆盖X,Y,但是它们的形状不兼容

我能不能让tensorflow忘记第一维度,也就是重塑[64,32,32,3]->[None,32,32,3]?或者是否有其他选项可供我用另一个值替换X,Y


整个数据集足够小,可以放入内存,因此我使用与

中类似的方法。这有点微妙:在TensorFlow术语中,您实际上不想重塑张量(即更改每个维度中的元素数量),而是希望TensorFlow“忘记”特定维度,以提供具有一系列大小的值

op旨在支持这种情况。它接受一个默认输入,在您的情况下,它将是下一个训练批(shape
[64,…]
);以及一个形状,在您的情况下,该形状与输入的形状相同,第一个维度设置为
None
。然后,您可以向该占位符提供任意批量大小的值

下面是一个如何使用它的示例:

X_batch, Y_batch = tf.train.batch([image, label], batch_size=64)

# Alternatively, `X_shape = [None, 32, 32, 3]`
X_shape = tf.TensorShape([None]).concatenate(X_batch.get_shape()[1:])
# Alternatively, `Y_shape = [None, 10]`
Y_shape = tf.TensorShape([None]).concatenate(Y_batch.get_shape()[1:])

# Create tensors that can be fed with a less specific shape
# than `X_batch`, `Y_batch`.
X = tf.placeholder_with_default(X_batch, shape=X_shape)
Y = tf.placeholder_with_default(Y_batch, shape=Y_shape)

这太完美了,正是我想要的!不过还有一个问题。当我使用feed_dict时,由于整个dict无法安装到GPU上,我可以使用设备放置CPU进行内存分配吗?我的大部分计算会在GPU上运行吗?