【问题标题】:max pooling across one dimension using keras使用 keras 跨一维最大池化
【发布时间】:2020-12-14 14:42:27
【问题描述】:

我已经实现了一个 3D 卷积神经网络。我输入的形状是(500,10,4,1)。我只想在第一维中进行卷积,使其在某种程度上在第二维和第三维中“完全连接”。所以我使用(30,10,4)的内核大小。到目前为止还好。但是当我进行最大池化时,它也会减少第二维和第三维。但这只是我想减少的第一个维度。那是在进行最大池化之后,我希望第一个维度 (500) 变为 250,但我希望我的第二个维度和第三个维度分别保持 10 和 4。我怎样才能做到这一点?到目前为止我的代码是:

###Input shape
i1 = Input(shape=(500,10, 4,1))

###First block
c1 = Conv3D(128, kernel_size=(50,10,4),activation='relu',padding='same')(i1)
c1 = MaxPooling3D(2)(c1) 
c1 = Dropout(0.1)(c1)

###Second block
#c1 = Conv3D(128, kernel_size=(50,10,4),activation='relu',padding='same')(c1)
#c1 = MaxPooling3D(2)(c1)
#c1 = Dropout(0.1)(c1)

c = Flatten()(c1)
#c2 = Dropout(0.1)(c2)

###FC Layers
x = Dense(128, activation='relu')(c)

##Output
output = Dense(4,activation = 'linear')(x)

错误 当我这样做时

c1 = MaxPooling3D(2,1,1)(c1)

我收到以下错误:

我们将不胜感激。

【问题讨论】:

    标签: python python-3.x tensorflow keras conv-neural-network


    【解决方案1】:

    试试这个:

    c1=MaxPool3D(pool_size=(2,1,1))(c1)
    

    【讨论】:

    • 是的,我确实尝试过,但它给了我一个错误,我在问题中提出了这个错误。
    • MaxPooling3D((2,1,1)),不是MaxPooling3D(2,1,1)
    猜你喜欢
    • 2017-06-16
    • 1970-01-01
    • 2017-12-02
    • 2021-07-11
    • 2018-07-26
    • 2020-07-27
    • 2018-08-19
    • 2017-01-23
    • 2022-10-30
    相关资源
    最近更新 更多