Tensorflow 整形层的输出尺寸

Tensorflow 整形层的输出尺寸,tensorflow,machine-learning,keras,deep-learning,Tensorflow,Machine Learning,Keras,Deep Learning,密集层采用1*100维的输入。它在其层中使用7*7*256个节点。重塑层以1*7*7*256作为输入和输出。我是说7,7,256是什么意思 如果我们以1*100的图像形式输入,是否是尺寸为7*7的图像?这是什么 对不起,我知道我完全错了。所以我想理解它。在这里,你的模型将采用*100的输入形状,第一个密集层将输出*7*7*256的形状,最后一个重塑层将把输出重塑为*7,7,256的形状数组 *是你的批量大小 所以,基本上,你的“图像”的形状,100将被重塑为一个数组的形状 ,7,7256 希望这

密集层采用1*100维的输入。它在其层中使用7*7*256个节点。重塑层以1*7*7*256作为输入和输出。我是说7,7,256是什么意思

如果我们以1*100的图像形式输入,是否是尺寸为7*7的图像?这是什么


对不起,我知道我完全错了。所以我想理解它。

在这里,你的模型将采用*100的输入形状,第一个密集层将输出*7*7*256的形状,最后一个重塑层将把输出重塑为*7,7,256的形状数组

*是你的批量大小

所以,基本上,你的“图像”的形状,100将被重塑为一个数组的形状 ,7,7256


希望这能帮助你

这是谷歌tensorflow mnist dcgan教程的参考资料

输入端的第一个密集层被配置为有7*7*256个过滤器,我们在教程中找不到对此的解释

我对此的初步印象如下:

请记住,我们需要一个28x28灰度图像作为输出。这意味着所需的输出形状是None,28,28,1,其中第一个实体是batch size,如果需要单个图像,则为None

现在请注意,步幅为2,2的conv2dtranpse层基本上将输入形状的采样率提高了2倍。其次,转置层的滤波器数量成为通道,如果我希望输出为灰度,则滤波器数量应为1。因此,如果我希望conv2dtranpse层的输出为None,28,28,1,那么其输入的形状应该是None,14,14,x。否如果通道由当前层决定,则x可以是输入处的任何值

假设我再一次在这一层之前再放一个conv2dtranpse层,步幅=2,2,显然这一层的输入应该是None,7,7,x,其中x是过滤器的数量

通常,如果将一批大小为h,w的图像以步长=2,2输入到CONV2DTranpse层,则其输出将具有形状批大小,2*h,2*w,无过滤器

谷歌教程进一步增加了一个conv2dtranpse层(但步幅=1,1,因此不具有上采样效果)和一个密集层。这些层没有进行上采样,因此输入形状保持7x7。7x7是此处的图像形状。第一个稠密层的输出是扁平的,所以如果它有7*7*x单位,我们总是可以对它进行整形以获得7,7,x的图像


这就是第一致密层7*7*x单位数背后的理论。他们使用的256是一个任意值,我猜他们可能是根据经验或直觉得出的。

这是否意味着7*7*256维的图像?我知道了,谢谢。但背后的数学是什么?我是说它是如何从1*100变为7*7*256的?
model = tf.keras.Sequential()
model.add(layers.Dense(7*7*256, use_bias=False, input_shape=(100,)))
model.add(layers.BatchNormalization())
model.add(layers.LeakyReLU())

model.add(layers.Reshape((7, 7, 256)))