CNN中内核大小与输入大小的关系

时间:2018-05-31 10:24:33

标签: machine-learning keras deep-learning convolution

我在keras中有一个Conv1D图层,内核大小为3,步长为1。 当我尝试处理输入大小为5但是输入大小为6时,我有以下错误。

InvalidArgumentError (see above for traceback): Computed output size would be negative:
-1 [input_size: 0, effective_filter_size: 3, stride: 1]

我认为3号内核需要输入大小至少3个。

编辑:这是模型,输入大小是可变的,我遇到的问题是输入大小为5。

model = Sequential()
model.add(Conv1D(
    input_shape=(None, 4),
    filters=64,
    kernel_size=3,
    activation='relu'))
model.add(Conv1D(
    filters=32,
    kernel_size=3,
    activation='relu'))
model.add(Conv1D(
    filters=16,
    kernel_size=2,
    activation='relu'))
model.add(GlobalMaxPooling1D())
model.add(Dense(number_of_classes))
model.add(Softmax(axis=-1))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

1 个答案:

答案 0 :(得分:1)

要确保输出要素贴图的大小与输入要素贴图的大小相同,您必须使用相同的'来填充输入。填充。

model.add(Conv1D(
    input_shape=(None, 4),
    filters=64,
    kernel_size=3,
    activation='relu',
    padding='same'))
相关问题