python - KerasClassifier TypeError: __call__() 在 cross_val_score 上正好有 2 个参数(1 个给定)
问题描述
我尝试在我的模型上进行 cross_val_score,但出现以下错误:
Traceback (most recent call last):
File "/home/dinhnha1402/.local/lib/python2.7/site-packages/keras/wrappers/scikit_learn.py", line 210, in fit
return super(KerasClassifier, self).fit(x, y, **kwargs)
File "/home/dinhnha1402/.local/lib/python2.7/site-packages/keras/wrappers/scikit_learn.py", line 139, in fit
**self.filter_sk_params(self.build_fn.__call__))
TypeError: __call__() takes exactly 2 arguments (1 given)
这是我的模型:
model = Sequential()
model.add(LSTM(int(128), input_shape=(timesteps, int(128)),return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(20, activation='relu', input_shape=(128,),kernel_initializer=initializers.glorot_uniform(seed=0)))
model.add(Dropout(0.2))
model.add(Dense(20, activation='softmax'))
model.add(Dense(2, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam',metrics=['accuracy'])
### fit model
model.fit(X_train, Y_train, batch_size=batch_size, epochs= epochs, verbose=1, validation_data=(X_test, Y_test))
####Applying K-fold cross validation
classifier = KerasClassifier(build_fn=binary_classify_lstm_fc_model(), batch_size=10, epochs=100, verbose=0)
accuracies = cross_val_score(estimator= classifier, X = X_train, y = Y_train, cv=10, scoring="accuracy")#n_jobs= -1
print(accuracies)
我在任何地方都找不到这个错误(在谷歌上)。有没有人对如何解决这个问题有任何想法?
解决方案
只需将损失从 categorical_crossentropy 更改为 mean_squared_error。
推荐阅读
- ios - 如何让 iOS 应用的深层链接在 Twiiter 上运行?
- r - 使用 reghelper 包计算简单斜率时出错
- r - 合并 2 个数据框,df1 中多个位置的占位符,df2 中填充的占位符
- javascript - 使用 luxon 在两个日期之间循环以创建时间间隔
- 3d - Blender 渲染的粒子输出与视口不同
- flutter - 什么是一个代码库并在颤动中统治它们?
- javascript - 有没有办法让工具提示通过 innerHTML 工作?
- asp.net-core - 在 .NET Core 5 中使用 WCF (WSDL)
- javascript - 如何确保仅在构建对象后才调用函数?
- excel - 如何将单元格的 .Find 函数返回值更改为文本值?