Neural network “是什么意思?”;删除“;及;新加坡元;在使用spacy训练自定义ner模型时?

Neural network “是什么意思?”;删除“;及;新加坡元;在使用spacy训练自定义ner模型时?,neural-network,nlp,nltk,spacy,ner,Neural Network,Nlp,Nltk,Spacy,Ner,我正在培训一个自定义的ner模型,以识别地址中的组织名称。 我的训练循环如下所示:- for itn in range(100): random.shuffle(TRAIN_DATA) losses = {} batches = minibatch(TRAIN_DATA, size=compounding(15., 32., 1.001)) for batch in batches texts, an

我正在培训一个自定义的ner模型,以识别地址中的组织名称。 我的训练循环如下所示:-

    for itn in range(100):
        random.shuffle(TRAIN_DATA)
        losses = {}
        batches = minibatch(TRAIN_DATA, size=compounding(15., 32., 1.001))
        for batch in batches
            texts, annotations = zip(*batch)
            nlp.update(texts, annotations, sgd=optimizer,
                       drop=0.25, losses=losses)

        print('Losses', losses)

有人能解释一下参数“drop”、“sgd”、“size”,并给出一些想法,说明我应该如何更改这些值,以使我的模型性能更好

您可以在spaCy文档中找到详细信息和提示:

:

增加批量的技巧开始变得非常流行。。。在训练各种spaCy模型时,我们没有发现降低学习率有什么好处,但从低批量开始肯定会有所帮助

batch\u size=配料(1,最大批次,1.001)

这会将批次大小设置为从1开始,并增加每个批次,直到其达到最大大小

:

对于小数据集,首先设置一个高的辍学率,然后将其衰减到一个更合理的值是很有用的。这有助于避免网络立即过度拟合,同时仍然鼓励它从数据中学习一些更有趣的东西。spaCy附带了一个衰减的效用函数来促进这一点。您可以尝试设置:

dropout=衰减(0.6,0.2,1e-4)

:

sgd
:一个优化器,即可调用以更新模型权重的优化器。如果未设置,spaCy将创建一个新的,并将其保存以供进一步使用


您可以在spaCy文档中找到详细信息和提示:

:

增加批量的技巧开始变得非常流行。。。在训练各种spaCy模型时,我们没有发现降低学习率有什么好处,但从低批量开始肯定会有所帮助

batch\u size=配料(1,最大批次,1.001)

这会将批次大小设置为从1开始,并增加每个批次,直到其达到最大大小

:

对于小数据集,首先设置一个高的辍学率,然后将其衰减到一个更合理的值是很有用的。这有助于避免网络立即过度拟合,同时仍然鼓励它从数据中学习一些更有趣的东西。spaCy附带了一个衰减的效用函数来促进这一点。您可以尝试设置:

dropout=衰减(0.6,0.2,1e-4)

:

sgd
:一个优化器,即可调用以更新模型权重的优化器。如果未设置,spaCy将创建一个新的,并将其保存以供进一步使用


落差、sgd和尺寸是您可以自定义的一些参数,以优化您的培训

drop用于更改dropout的值

大小用于更改批次的大小

sgd用于改变各种超参数,如学习速率、Adam beta1和beta2参数、梯度剪裁和L2正则化

我认为SGD是一个非常重要的实验参数。
为了帮助您,我写了一篇简短的博客文章,展示了如何从python解释器(例如jupyter笔记本)定制任何spaCy参数。不需要命令行界面。

下拉、sgd和大小是您可以自定义的一些参数,以优化培训

drop用于更改dropout的值

大小用于更改批次的大小

sgd用于改变各种超参数,如学习速率、Adam beta1和beta2参数、梯度剪裁和L2正则化

我认为SGD是一个非常重要的实验参数。 为了帮助您,我写了一篇简短的博客文章,展示了如何从python解释器(例如jupyter笔记本)定制任何spaCy参数。不需要命令行界面