使用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中使用普通列表

0
0

正十七

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




0
0

Google老师亲授 TensorFlow2.0 入门到进阶

Tensorflow2.0实战—以实战促理论的方式学习深度学习

1849 学习 · 896 问题

查看课程