作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的模型基本上类似于卷积网络。
我希望我的模型能够工作,无论输入的宽度如何。因此宽度大小显示为None
。
我使用 Conv2DTranspose
将解码器附加到我的模型。
但是,有一个问题。
我期望 Conv2DTranspose
的结果与输入的大小相同,但它不一样。
我将stride
设置为2
以减少参数数量,padding
模式是same
,但当尺寸为奇数时我发现了一个问题。
以下函数用于ConvCapsuleLayer(自定义层)
中的卷积运算。
conv = K.conv2d(input_tensor_reshaped, self.W, (self.strides, self.strides),
padding=self.padding, data_format='channels_last')
我使用 Conv2DTranspose
作为解码器,如下所示。
recon_1 = layers.Conv2DTranspose(4, (5,5), strides=(2, 2), padding='same', kernel_initializer='he_normal', name='decoder_1', activation='relu')(mask_layer)
recon_2 = layers.Conv2DTranspose(8, (5,5), strides=(2, 2), padding='same', kernel_initializer='he_normal', name='decoder_2', activation='relu')(recon_1)
recon_3 = layers.Conv2DTranspose(1, (1,1), strides=(1, 1), padding='same', kernel_initializer='he_normal', name='decoder_3', activation='linear')(recon_2)
然后我收到以下错误消息。
InvalidArgumentError (see above for traceback): Incompatible shapes: [1,200,824,1] vs. [1,200,823,1]
当尺寸为奇数时,如何解决这种差异?
最佳答案
如果您使用 2 倍的连续下采样(由于步长),然后进行反卷积 (Conv2DTranspose),将大小乘以 2(同样由于步长=2),则只能使用偶数维度。
如果您绝对必须拥有奇数维度的输入,则必须使用填充或丢弃一行。如果您使用连续的下采样操作(无论是使用步幅还是使用 MaxPooling),您还必须小心。在每次降维操作之前,您的维度必须是下采样因子的倍数。
关于python - 如何使用 Keras 中的 Conv2DTranspose 获得与原始输入大小相同的层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55810077/
我是一名优秀的程序员,十分优秀!