Python 在SpaCy和x27中更改默认学习速率;s优化器

Python 在SpaCy和x27中更改默认学习速率;s优化器,python,spacy,Python,Spacy,如果我想更改优化器的learn\u rate,正确的方法是什么 根据的定义和我猜我必须提供一个组件\u cfg param,如下所示 optimizer = nlp.begin_training(component_cfg={'learn_rate': 0.01})? 但我不知道这是不是正确的方法,因为如果我像这样调用开始培训 optimizer = nlp.begin_training(component_cfg={'dummy_param': 0.01})? 没有给出任何警告或错误。我怀

如果我想更改优化器的
learn\u rate
,正确的方法是什么

根据的定义和我猜我必须提供一个
组件\u cfg param
,如下所示

optimizer = nlp.begin_training(component_cfg={'learn_rate': 0.01})?
但我不知道这是不是正确的方法,因为如果我像这样调用
开始培训

optimizer = nlp.begin_training(component_cfg={'dummy_param': 0.01})?
没有给出任何警告或错误。

我怀疑这是一个“正确”的答案,但这对我来说是有效的(因此这更像是给self的提示:p):

  • 我没有使用
    begin\u training()
    返回优化器,因为它 只会创建一个默认值。我想你可能会骗它 使用环境变量,但我没有尝试
  • 相反,我最终生成了自己的优化器。因此,我的代码如下所示:
正如您可能已经猜到的,上面的大部分内容都是从最初生成默认优化器的代码中复制粘贴的:


这似乎是从这里的
begin_training()
方法调用的:这就是我的想法,
ops
应该是
thinc.neural.Model.ops

基于在的优化器创建,spacy从环境变量中提取学习率、beta1、beta2等值。您始终可以使用

learn_rate=0.005 python script.py
对于spacy,使用0.005的学习率,依此类推


参考:

要更改空间默认设置,需要覆盖默认参数值

在您的情况下,要更改学习速率,您可以执行以下操作:

optimizer.learn_rate = 0.01
optimizer.learn_rate = 0.01