使用random_searh_cv.fit时,出现错误
来源:2-18 实战sklearn超参数搜索
qq_苏格拉底_0
2020-02-19
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
2回答
-
正十七
2020-03-01
如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中使用普通列表
00 -
正十七
2020-02-26
同学你好,好像这是个通用问题,我一天之内看到三四个这样的问题,怀疑是版本问题,不知道是否能将使用的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
00
相似问题