报告的具体错误是:
TypeError: get_params() got an unexpected keyword argument 'deep'
该错误是由Keras版本1.2.1中的错误引入的.当您使用Keras包装类(例如KerasClassifier和KerasRegressor)和scikit-learn函数cross_val_score()时会发生这种情况.
该错误已在Keras GitHub项目中识别和修补.
我尝试了两个修复:
修复1:回滚到Keras版本1.2.0.
类型:
sudo pip install keras==1.2.0
修复2:使用修复程序的Monkey-patch Keras.
导入后,但在您的工作类型之前:
from keras.wrappers.scikit_learn import BaseWrapper import copy def custom_get_params(self, **params): res = copy.deepcopy(self.sk_params) res.update({'build_fn': self.build_fn}) return res BaseWrapper.get_params = custom_get_params
这两个修复程序都适用于我(Python 2和3/sklearn 0.18.1).
一些额外的候选修复:
等待下一版本的Keras(1.2.2)发布.
从Github Checkout Keras然后手动构建和安装.