【问题标题】:Keras convolutional autoencoder doesn't workKeras 卷积自动编码器不起作用
【发布时间】:2016-12-27 15:09:55
【问题描述】:

我正在这里测试 Keras 作者的卷积自动编码器: https://blog.keras.io/building-autoencoders-in-keras.html

但是我有这个问题:

Exception: Error when checking model target: expected convolution2d_7 to have shape (None, 8, 32, 1) but got array with shape (60000, 1, 28, 28)

我准确地说,我已经在最后一个 conv 层中设置了字段 'border_mode='same''。 所以我真的不知道它是从哪里来的。。 总结如下:

Layer (type)                     Output Shape          Param #         Connected to                     
        ====================================================================================================
input_1 (InputLayer)             (None, 1, 28, 28)     0                                            
 ____________________________________________________________________________________________________
convolution2d_1 (Convolution2D)  (None, 1, 28, 16)     4048        input_1[0][0]                    
____________________________________________________________________________________________________
maxpooling2d_1 (MaxPooling2D)    (None, 1, 14, 16)     0           convolution2d_1[0][0]            
        ______________________________________________________________________________    ______________________
convolution2d_2 (Convolution2D)  (None, 1, 14, 8)      1160        maxpooling2d_1[0][0]             
____________________________________________________________________________________________________
maxpooling2d_2 (MaxPooling2D)    (None, 1, 7, 8)       0           convolution2d_2[0][0]            
____________________________________________________________________________________________________
convolution2d_3 (Convolution2D)  (None, 1, 7, 8)       584         maxpooling2d_2[0][0]             
____________________________________________________________________________________________________
maxpooling2d_3 (MaxPooling2D)    (None, 1, 4, 8)       0           convolution2d_3[0][0]            
____________________________________________________________________________________________________
convolution2d_4 (Convolution2D)  (None, 1, 4, 8)       584         maxpooling2d_3[0][0]             
____________________________________________________________________________________________________
upsampling2d_1 (UpSampling2D)    (None, 2, 8, 8)       0           convolution2d_4[0][0]            
 ____________________________________________________________________________________________________
convolution2d_5 (Convolution2D)  (None, 2, 8, 8)       584         upsampling2d_1[0][0]             
____________________________________________________________________________________________________
upsampling2d_2 (UpSampling2D)    (None, 4, 16, 8)      0           convolution2d_5[0][0]            
____________________________________________________________________________________________________
convolution2d_6 (Convolution2D)  (None, 4, 16, 16)     1168        upsampling2d_2[0][0]             
____________________________________________________________________________________________________
upsampling2d_3 (UpSampling2D)    (None, 8, 32, 16)     0           convolution2d_6[0][0]            
______________________________________________________________________________ ______________________

convolution2d_7 (Convolution2D)  (None, 8, 32, 1)      145             

upsampling2d_3[0][0]             
====================================================================================================
Total params: 8273
 ____________________________________________________________________________________________________

【问题讨论】:

  • 此问题可能与以下问题重复:stackoverflow.com/questions/39848466/…
  • 您好,我看到了这个帖子,确实,dim_ordering 需要更改为 theano dim。 (1,x,x) 但是,问题仍然存在,现在,网络期望 (1,28,28),但得到 (1,32,32) 我知道这是因为最后一个上采样层,但是最后一个 conv 大小为 3x3 的过滤器应该安排没有?

标签: deep-learning keras keras-layer


【解决方案1】:

终于找到答案了。 我认为本教程的创建者使用 32x32 MNIST 图像而不是 28x28 对其进行了测试。

因为,当添加到最后一个 conv 层时,border_mode='same',你得到的输出形状为 (32,32,1) 因此,要获得良好的输出 (28,28,1),您需要将 border_mode='valid' 添加到最后一个 conv 层。

总结: 将尺寸排序更正为 28x28x1 而不是 1x28x28。 然后添加与最后一个卷积层相同的边框模式 最后在最后一个卷积层添加有效的边框模式。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-11-11
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 2020-08-20
    • 1970-01-01
    • 2018-09-08
    相关资源
    最近更新 更多