请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

使用random_searh_cv.fit时,出现错误

RuntimeError: Cannot clone object <tensorflow.python.keras.wrappers.scikit_learn.KerasRegressor object at 0x7f028213a438>, as the constructor either does not set or modifies parameter layer_size

正在回答 回答被采纳积分+3

2回答

正十七 2020-03-01 14:22:51

如LHF同学指出的,sklearn 0.21.3可以工作。

然后经过我调研,发现也可能是新版本tensorflow中的KerasRegressor的问题,新版本的参数在做deep copy的时候出现了问题,导致在拷贝复杂的numpy对象的时候出错,如果把搜索的参数改成普通列表则不会出错:

param_distribution = {
    "hidden_layers": [1, 2, 3, 4],
    "layer_size": [5, 10, 20, 30],
    "learning_rate": [1e-4, 5e-5, 1e-3, 5e-3, 1e-2],
}

因为deep copy这个操作对用户不可见,所以结论是,退回到sklearn 0.21.3版本,或者在param_distribution中使用普通列表

0 回复 有任何疑惑可以回复我~
正十七 2020-02-26 10:22:11

同学你好,好像这是个通用问题,我一天之内看到三四个这样的问题,怀疑是版本问题,不知道是否能将使用的scikit-learn和tensorflow的版本号贴一下?

类似问题集合:

http://coding.imooc.com/learn/questiondetail/168838.html

http://coding.imooc.com/learn/questiondetail/168054.html

http://coding.imooc.com/learn/questiondetail/169274.html




0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信