gpt4 book ai didi

Python scikit-learn : Cannot clone object. .. 因为构造函数似乎没有设置参数

转载 作者:太空狗 更新时间:2023-10-29 17:49:22 24 4
gpt4 key购买 nike

我修改了 BernoulliRBM scikit 类学习使用 softmax 可见单元组。在此过程中,我添加了一个额外的 Numpy 数组 visible_config 作为类属性,它在构造函数中初始化如下:

self.visible_config = np.cumsum(np.concatenate((np.asarray([0]),
visible_config), axis=0))

其中 visible_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

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

最佳答案

在没有看到您的代码的情况下,很难准确判断出了什么问题,但是您在这里违反了 scikit-learn API 约定。估算器中的构造函数应该将属性设置为用户作为参数传递的值。所有计算都应该发生在 fit 中,如果 fit 需要存储计算结果,它应该在一个带有尾随下划线的属性中进行 (_)。这种约定使 cloneGridSearchCV 等元估计器起作用。

(*) 如果您在主代码库中看到违反此规则的估算器:那将是一个错误,欢迎提供补丁。

关于Python scikit-learn : Cannot clone object. .. 因为构造函数似乎没有设置参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24510510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com