Tensorflow,使用可变形状的输入

问题描述:

我是tensorflow的新手,我必须实现一个包含大量图像作为输入的模型。但是这些图像不具有相同的维度,因此,当我将它们转换为数组时,它们不具有相同的维度。 我想知道如何在没有预定义形状的情况下声明权重。Tensorflow,使用可变形状的输入

W = tf.Variable(tf.zeros([?, ?])) 
+0

我认为你必须要么需要重新大小的图像,或使用不同的池像金字塔池 – BlooB

+0

谢谢,但我不能使用它。 – Yes92

您无法在变量内输入图像。可能你需要的是一个占位符(你可以用来在你的算法的某个点上用数据提供的变量)。请参阅此链接以了解更多信息:https://www.tensorflow.org/api_docs/python/tf/placeholder

但是在占位符的情况下,您必须指定尺寸。因此,我的建议是使用一些技术将所有图片的大小调整为相同的维度(例如,参见填充,镜像等):当然,只有在您的特定问题允许这样做的情况下。

只是在某些情况下,如果要定义一个神经网络,你可以留下一些dimesion没有规定,比如,你可以离开的batch_size没有定义这样

input = tf.placeholder(tf.float32, shape=(None, 28, 28)) 

如果你要实现你的第一个神经网络,我强烈建议看看这里。这是最简单明了的指导tensorflow,从官方网站:https://www.tensorflow.org/get_started/mnist/beginners 值得阅读:)

+0

我会为重量和偏见而变化。但问题是一样的(我想)。这不是我的第一个神经网络,但这是我第一次遇到这种复杂情况。我可能只会将图像矢量重新塑造成一个维度,您怎么看? – Yes92

+0

这是一个经常使用的很好的解决方案 –