Deep learning 全卷积自动编码器

Deep learning 全卷积自动编码器,deep-learning,convolution,autoencoder,deconvolution,Deep Learning,Convolution,Autoencoder,Deconvolution,我正在实现一个卷积自动编码器,我很难找到卷积转置层(在解码器中)的正确形状。到目前为止,我的编码器看起来像 ('convolution', num_outputs=256, kernel_size=48, stride=2, padding="SAME") ('convolution', num_outputs=256, kernel_size=7, stride=1, padding="SAME" ) ('convolution', num_outputs=256, k

我正在实现一个卷积自动编码器,我很难找到卷积转置层(在解码器中)的正确形状。到目前为止,我的编码器看起来像

    ('convolution', num_outputs=256, kernel_size=48, stride=2, padding="SAME")
    ('convolution', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
    ('convolution', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
    ('convolution', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
    ('convolution', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
    ('convolution', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
    ('convolution', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
    ('convolution', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
    ('convolution', num_outputs=256, kernel_size=32, stride=1, padding="SAME" )
现在,在解码器中,我试图还原这个。使用:

    ('convolution_transpose', num_outputs=256, kernel_size=32, stride=2, padding="SAME")
    ('convolution_transpose', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
    ('convolution_transpose', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
    ('convolution_transpose', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
    ('convolution_transpose', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
    ('convolution_transpose', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
    ('convolution_transpose', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
    ('convolution_transpose', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
    ('convolution_transpose', num_outputs=256, kernel_size=48, stride=2, padding="SAME" )
    ('convolution_transpose', num_outputs=1, kernel_size=48, stride=2, padding="SAME" )
我无法重现输入的大小

Input Size:  (10, 161, 1800, 1)
Output Size: (10, 3600, 1024, 1)

你知道解码器层的正确设置应该是什么吗

不确定您使用的是什么平台或您试图实现什么,但是您的输入大小应该可以被卷积层整除,否则您的输入将被填充(或裁剪)。除此之外,tensorflow还进行了以下工作:

tf.layers.conv2d(in,256,3,2,'SAME',activation=tf.nn.relu)
tf.layers.conv2d_transpose(in,256,3,2,'SAME',activation=tf.nn.relu)
其中256是功能的数量,3是内核大小(3x3),2是步幅