Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python scikit学习:无法克隆对象。。。因为构造函数似乎没有设置参数_Python_Numpy_Copy_Scikit Learn - Fatal编程技术网

Python scikit学习:无法克隆对象。。。因为构造函数似乎没有设置参数

Python scikit学习:无法克隆对象。。。因为构造函数似乎没有设置参数,python,numpy,copy,scikit-learn,Python,Numpy,Copy,Scikit Learn,我修改了scikit的类,学习使用softmax可视单元组。在这个过程中,我添加了一个额外的Numpy数组visible\u config作为class属性,该属性在构造函数中初始化,如下所示: self.visible_config = np.cumsum(np.concatenate((np.asarray([0]), visible_config), axis=0)) 其中visible\u config是作为输入传递给构造

我修改了scikit的类,学习使用softmax可视单元组。在这个过程中,我添加了一个额外的Numpy数组
visible\u config
作为class属性,该属性在构造函数中初始化,如下所示:

self.visible_config = np.cumsum(np.concatenate((np.asarray([0]),
                                visible_config), axis=0))
其中
visible\u config
是作为输入传递给构造函数的Numpy数组。当我直接使用
fit()
函数训练模型时,代码运行没有错误。但是,当我使用
GridSearchCV
结构时,我得到以下错误

Cannot clone object SoftmaxRBM(batch_size=100, learning_rate=0.01, n_components=100, n_iter=100,
  random_state=0, verbose=True, visible_config=[ 0 21 42 63]), as the constructor does not seem to set parameter visible_config

这似乎是类实例与其创建的副本之间的相等性检查中的一个问题,因为
visible\u config
没有正确复制。我不知道如何解决这个问题。文档中说,
sklearn.base.clone
使用了
deepcopy()
,所以
visible\u config
不也应该被复制吗?有人能解释一下我可以在这里尝试什么吗?谢谢

如果看不到您的代码,就很难准确判断出哪里出了问题,但您违反了scikit学习API的约定。估计器中的构造函数应该只为用户作为参数传递的值设置属性。所有计算都应在
fit
中进行,如果
fit
需要存储计算结果,则应在带有尾随下划线的属性中进行存储(
)。这种约定使得
clone
GridSearchCV
等元估计器能够工作


(*)如果您在主代码库中看到一个估计器违反此规则:这将是一个bug,欢迎使用补丁。

您是对的。谢谢删除计算步骤并将预先计算的
可见配置
传递给构造函数修复了此问题。其他尝试此操作的人。。。确保没有在init中克隆模型。例如
类NewAlgo(baseestimator,otherestimator):def uu init uu(sefl,model):self.model=clone(model)
我在xgboost和RandomizedSearchCV中遇到了这个问题,我的网格中有一个输入错误/不推荐的参数