python - 类型错误:__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
调用。当我尝试在单行中制作它时,我收到了错误。
解决方案
您正在尝试使用与 Conv2D 相同的参数。您应该将行更改为
model.add(Convolution2D(6,3,3,input_shape=(256,768,1),activation='relu'))
推荐阅读
- c++ - QtSql:绑定不会改变使用 SQLite 的查询
- sql - 我想在 SQL 中创建系列数据
- azure - 在 azure data factory V2 中查找活动不成功
- android - 如何绘制 SVG Q 操作?
- c# - 每次运行 dotnet ef 迁移时都会收到 MSB1006
- android - 当手机锁定在 android 中时,使用什么而不是弃用的 FLAG_SHOW_WHEN_LOCKED 标志来启动活动
- html - 隐藏 HTML 标签的属性
- arrays - 从文本字段数组中获取值
- javascript - 在事件流中等待静默期的 RxJS 运算符,但在事件流繁忙的情况下不会永远等待
- android - Travis - 在 Github 上部署 Android 项目失败