Neuraxle 中的默认超参数值

Posted

技术标签:

【中文标题】Neuraxle 中的默认超参数值【英文标题】:Default hyperparameter values in Neuraxle 【发布时间】:2021-07-25 20:54:51 【问题描述】:

在 Neuraxle 中实现管道组件,我想知道是否可以和/或建议为超参数设置默认值。查看代码和文档,我的猜测是它不受支持,但我在文档中找不到任何提及。我注意到here 在设置阶段之前设置了超参数,这让我怀疑在代码中设置默认值是不可能的。

使用默认值会很好,因为它允许更多的超参数选项,而无需在训练时明确定义它们。它还允许在不破坏现有训练代码的情况下添加超参数。默认值的一个缺点是增加了复杂性,并且如果默认值更改,可能会出现重现性问题。

我们将不胜感激。

【问题讨论】:

【参考方案1】:

如果我很好地理解了您的问题,则完全有可能为超参数设置默认值。您可以使用 step 类构造函数来执行此操作。为此,您的参数只需要在超参数空间中有一个对应的 FixedHyperparameter 实例条目。

例如

class MyStep(BaseStep):
    def __init__(self, default_hyperparam_value):
        BaseStep.__init__(self, hyperparams = "my_hyperparam_name":default_hyperparam_value,
                          hyperparams_space="my_hyperparam_name":FixedHyperparameter(default_hyperparam_value))

或者,您可以将其完全从超参数字典中排除,并简单地将其设置为 step 属性。当然,它们是实现类似行为的许多其他方式。

如果我误解了您的问题,请告诉我,我很乐意提供任何进一步需要的见解:)

【讨论】:

感谢您的回答。使用构造函数是我没有考虑过的一个选项,它可以工作。使用 step 属性效果不佳,因为它不会成为任何优化的一部分。我会试试你的解决方案。 很高兴我能帮上忙。如果这对您来说并不过分,并且您同意,如果您能将我的答案标记为已接受,我将不胜感激,因为这将使我能够更好地使用我的 *** 帐户。干杯!

以上是关于Neuraxle 中的默认超参数值的主要内容,如果未能解决你的问题,请参考以下文章

golang函数中的参数为啥不支持默认值

golang函数中的参数为啥不支持默认值

使用 Gridsearch 进行超参数搜索,给出不起作用的参数值

38 py改变函数参数的值关键字参数和参数默认值函数中可变参数将序列中的元素值作为函数对应的参数值传

Pyspark交叉验证后如何获得最佳超参数值?

如何在 Python 中的一个函数调用中使用默认值和任意参数?