如何将具有转置卷积层的多个通道的输出合并为单个输出,例如例如在Keras?

时间:2019-06-04 08:57:18

标签: keras dotnetnuke layer convolution autoencoder

请想象有一个自动编码器,其结构如下:

    没有填充的卷积层获得大小为WXH的强度图像的输入,并使用20组权重/偏置生成20个输出(特征图)。因此,这20个输出中的每个输出的大小都将小于WXH

  1. (可选)没有填充的池化层会生成较小的20个2D数组,然后将其矢量化

  2. 一个完全连接的层会生成另一个向量,该向量的大小可能与上面的向量相同或不相同;

%#1,#2和#3属于编码器部分

  1. 另一个完全连接的层镜像#3,即其输入和输出的大小分别是#3中的输出和输入的大小。之后,输出的相应部分将被堆叠为20个2D阵列

  2. (可选),以相同的方式镜像#2的解池层。再次输出20个2D数组;

  3. 通过向20个2D数组(每个一个)施加另外20组权重/偏移,从而使转置卷积层镜像#2。最终它将产生20个WXH大小的输出。

所以我的问题是,应该如何将这20个WXH大小的输出组合在一起,以给出一个与强度图像I相同的WXH大小的输出?还是转置的卷积层应该生成20个较小尺寸(较低分辨率)的输出?

在Keras中,我了解到有一个tf.keras.layers.SeparableConv2D层,该层执行深度卷积,然后执行点向卷积,可以将多个通道的输出组合在一起。但是在执行tf.keras.layers.Conv2DTranspose之后,Keras中没有可用的单点卷积层,因此我应该指定SeparableConv2D的特殊参数,以便使其过滤器在空间上为1X1,从而产生事实上的点卷积层?

非常感谢!

0 个答案:

没有答案