首页 > 解决方案 > 类型错误:__init__() 缺少 1 个必需的位置参数:'kernel_size'

问题描述

这是我运行的代码:

def fish_model():
    model = Sequential()
    from keras.layers import Activation, Dense
    from keras.layers.convolutional import Convolution2D
    from keras.layers.convolutional import MaxPooling2D
    from keras.layers import Dropout
    model.add(Convolution2D(filters=(6,3,3),input_shape=(256,768,1),activation='relu'))
    model.add(MaxPooling2D(pool_size=(2,2),strides=2))
    model.add(Convolution2D(filters=6, nb_row=3, nb_col=3,subsample=(2,2),
    input_shape=(256, 768, 1,), activation='relu', border_mode='same'))
    model.add(Dropout(0.1))
    model.add(Flatten())
    model.add(Dense(8, activation='softmax'))
    epochs = 5
    lrate = 0.1
    decay = lrate/epochs
    #sgd = SGD(lr=lrate, momentum=0.5, decay=decay, nesterov=False)
    model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['categorical_accuracy'])
    return model

model= fish_model()
print(model.summary())
history = model.fit(X_train, Y_train, validation_data=(x_validation, y_validation), nb_epoch=6, batch_size=4)

我收到以下错误:

Traceback (most recent call last)
<ipython-input-28-bf6be1e3ca4c> in <module>
----> 1 model= fish_model()
      2 print(model.summary())
      3 history = model.fit(X_train, Y_train, validation_data=(x_validation, y_validation), nb_epoch=6, batch_size=4)

<ipython-input-26-634ceb657d80> in fish_model()
     23     from keras.layers.convolutional import MaxPooling2D
     24     from keras.layers import Dropout
---> 25     model.add(Convolution2D(filters=(6,3,3),input_shape=(256,768,1),activation='relu'))
     26     model.add(MaxPooling2D(pool_size=(2,2),strides=2))
     27     model.add(Convolution2D(filters=6, nb_row=3, nb_col=3,subsample=(2,2),

~\Anaconda3\lib\site-packages\keras\legacy\interfaces.py in wrapper(*args, **kwargs)
     89                 warnings.warn('Update your `' + object_name + '` call to the ' +
     90                               'Keras 2 API: ' + signature, stacklevel=2)
---> 91             return func(*args, **kwargs)
     92         wrapper._original_function = func
     93         return wrapper

 TypeError: __init__() missing 1 required positional argument: 'kernel_size'

为什么我收到错误消息Convolution2D?如何修复代码?

在上面的代码中,我添加了 2 个Convolution2D调用。当我尝试在单行中制作它时,我收到了错误。

标签: pythonpython-3.ximage-processingkeras

解决方案


您正在尝试使用与 Conv2D 相同的参数。您应该将行更改为
model.add(Convolution2D(6,3,3,input_shape=(256,768,1),activation='relu'))


推荐阅读