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 中的默认超参数值的主要内容,如果未能解决你的问题,请参考以下文章
使用 Gridsearch 进行超参数搜索,给出不起作用的参数值