PaddleNLP 库提供了非常简便的文本数据增强实现,主要包括: 并且 WordSubstitute 和 WordInsert 还支持 4 种替换和插入方法: 其中自定词典简单示例如下: 使用示例代码:
模型架构来自论文:https://arxiv.org/pdf/1905.08284.pdf,文章内容主要来自对这篇 Paper 的学习。Relation Classification 是一个重要的 NLP 任务,它主要用...
Ignite 是一个可以帮助我们在 PyTorch 中训练和评估神经网络的高级库。简单来讲,使用该训练库可以让我们的训练代码更加简洁,灵活。工具的安装命令如下: Ignite 中主要有以下 4 个重要概念: Engine...
书接上回,上篇文章介绍了 7 种学习率的调整策略,PyTorch 1.11 版本中共有 14 种,本篇文章接着介绍剩下的 7 种学习率调整策略。 lr_scheduler.CosineAnnealingLR lr_sch...
torch.optim.lr_scheduler 提供了动态调整学习率的方法。在使用的时, Learning Rate Scheduler 一般在优化器的更新参数之后调用。另外,我们也可以在程序中使用多个 schedul...
当看到 weight decay 时,从字面意思指的是权重参数衰减,会觉得其和 L2 正则化是等价,因为 L2 正则化也能够达到权重衰减的作用,其实概念是不同的。L2 一般作为正则化项是添加到损失函数中,作为损失计算的一...
AdaGrad、RMSProp 针对学习率进行了优化,不同的参数分量在更新时能够使用各自更适合的学习率。Momentum 则是对梯度进行了优化,可以避免碰到鞍点、局部最小值时参数无法更新的情况。 我们经常把 Adam 理...
我们在使用梯度下降法时应该发现了不同参数分量在更新时使用相同的学习率。注意:不同分量使用的梯度可能是不同的。例如:我们现在有参数向量,它有 3 个分量,使用梯度下降法更新参数时都使用相同的学习率 lr。 AdaGrad ...
我们接下来编写训练函数、评估函数、预测函数。 1. 训练函数 由于我们希望批次输入训练数据,在使用 RNN、GRU、LSTM 时,可以使用 pad_sequence、packed_pad_sequence、pad_pac...
模型构建主要包括了 CRF 层的实现,以及 BiLSTM 层的实现。其中 CRF 层相对复杂一些,主要有两个较难的难点:一、要计算所有路径的损失,二、要根据发射矩阵回溯最优路径。 1. CRF 层实现 CRF 层实现时计...
数据处理主要是加在语料、构建词典、以及将数据集转换为索引表示。我们这里会删除句子长度超过 505 的句子。由于构建词典时,是根据训练集数据构建的,所以在对测试集进行编码时,可能会出现 oov 问题,我们直接用 UNK 来...