Conv2dTranspose指定输出形状



我正在尝试构建一个类似自动编码器的网络,但我不知道如何指定网络的输出形状。我具有大小为mxn的输入和大小为pxq的成对期望输出。我看过

计算卷积层中的输出大小

利用tensorflow 中的tf.nn.conv2d_transpose获得反褶积层的输出形状

但是有没有一种方法可以强制输出形状,而不必为每个输入形状计算一堆数学?

我真的不认为有办法做到这一点(很难,否则我很乐意学习(,因为任何类型的conv层的输出形状都是用几个参数进行数学运算(卷积(的结果。因此,基于输入张量和参数(步长、内核大小等(,得到的形状必须是可能的形状之一。

这与密集(完全连接的层(形成了对比,在密集层中,只要是一个数字(4、60或5000,但不是(60、60((,就可以得到任何想要的形状。

在这种情况下,有时可以帮助你的一个小技巧是打印上一层的形状,这样你就知道下一层需要什么参数,并确保你的计算是正确的:

import keras.backend as K 
x = Conv2D()(x) # or any other layer
shape = K.int_shape(x)
print(shape)
x = Conv2D()(x) 

相关内容

  • 没有找到相关文章

最新更新