【问题标题】:Inconsistency in Keras Flatten() layer behavior using Theano Backend使用 Theano 后端的 Keras Flatten() 层行为不一致
【发布时间】:2019-09-21 06:19:15
【问题描述】:

我正在尝试了解KerasFlatten() 层与Theano 后端的行为。我在两个不同的Conda 环境中安装了两个不同版本的Keras。使用Flatten() 展开 4D 张量的方式在这两个版本中有所不同,我完全不知道哪个是正确的。

我写了以下两个代码sn-ps来说明问题:

上面的代码首先沿channels轴展平输入矩阵

但是,在另一个版本中,结果是不同的:

上面的代码首先沿columns轴展平输入矩阵。

有人可以解释一下吗?谢谢!

【问题讨论】:

    标签: python keras theano keras-layer


    【解决方案1】:

    两者都是正确的。不同之处在于 image_data_format 设置。这可以在 keras.json 或通过后端 API 进行设置。

    https://keras.io/backend/

    >>> from keras import backend as K
    >>> K.image_data_format()
    'channels_first'
    

    当格​​式为'channels_first'时,输出为

    array([[ 0.,  9., 18., 27.,  1., 10., 19., 28.,  2., 11., 20., 29.,  3.,
            12., 21., 30.,  4., 13., 22., 31.,  5., 14., 23., 32.,  6., 15.,
            24., 33.,  7., 16., 25., 34.,  8., 17., 26., 35.]], dtype=float32)
    

    当格​​式为'channels_last'时,输出为

    array([[ 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10., 11., 12.,
            13., 14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24., 25.,
            26., 27., 28., 29., 30., 31., 32., 33., 34., 35.]], dtype=float32)
    

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2017-06-27
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多