我的模型结构如下:
conv2d_31 (Conv2D) (None, 40, 40, 16) 160
_________________________________________________________________
max_pooling2d_4 (MaxPooling2 (None, 20, 20, 16) 0
_________________________________________________________________
conv2d_32 (Conv2D) (None, 20, 20, 32) 12832
_________________________________________________________________
max_pooling2d_5 (MaxPooling2 (None, 10, 10, 32) 0
_________________________________________________________________
conv2d_33 (Conv2D) (None, 10, 10, 64) 100416
_________________________________________________________________
max_pooling2d_6 (MaxPooling2 (None, 5, 5, 64) 0
_________________________________________________________________
flatten_2 (Flatten) (None, 1600) 0
_________________________________________________________________
dense_3 (Dense) (None, 1024) 1639424
_________________________________________________________________
dropout_2 (Dropout) (None, 1024) 0
_________________________________________________________________
dense_4 (Dense) (None, 1) 1025
_________________________________________________________________
activation_52 (Activation) (None, 1) 0
我想将反卷积应用于任何特定图层并绘制结果。我以为我应该使用Conv2DTranspose图层,但似乎无法理解其中涉及的参数。请帮助
答案 0 :(得分:1)
请注意术语。
反卷积不是换位卷积,尽管术语可以互换使用。正确使用的术语是转置卷积。这就是为什么在Keras中甚至不存在“反卷积”层,而Conv2DTransposed却如此的原因。
您可以尝试通过 Model API 而不是 Sequential API 来构建深度学习模型。
这样,您可以将Conv2DTransposed添加到特定图层,并查看转置卷积的结果。
您可以将转置的卷积层视为上采样层。前者具有可学习的参数,而后者仅具有两倍/三倍等,可以通过插值来获得图像的大小。
查看功能API (模型API)的Keras文档:https://keras.io/models/model/
请查阅Keras文档中有关转置卷积的内容:https://keras.io/layers/convolutional/
查看此github帐户以直观地了解转置卷积:https://github.com/vdumoulin/conv_arithmetic