0

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

    ('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)

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

4

1 回答 1

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 是步幅。

于 2017-10-26T19:46:49.447 回答