书接上回,上篇文章介绍了 7 种学习率的调整策略,PyTorch 1.11 版本中共有 14 种,本篇文章接着介绍剩下的 7 种学习率调整策略。 lr_scheduler.Cosi...
torch.optim.lr_scheduler 提供了动态调整学习率的方法。在使用的时, Learning Rate Scheduler 一般在优化器的更新参数之后调用。另外,我...
当看到 weight decay 时,从字面意思指的是权重参数衰减,会觉得其和 L2 正则化是等价,因为 L2 正则化也能够达到权重衰减的作用,其实概念是不同的。L2 一般作为正则...
AdaGrad、RMSProp 针对学习率进行了优化,不同的参数分量在更新时能够使用各自更适合的学习率。Momentum 则是对梯度进行了优化,可以避免碰到鞍点、局部最小值时参数无...
我们在使用梯度下降法时应该发现了不同参数分量在更新时使用相同的学习率。注意:不同分量使用的梯度可能是不同的。例如:我们现在有参数向量,它有 3 个分量,使用梯度下降法更新参数时都使...
我们接下来编写训练函数、评估函数、预测函数。 1. 训练函数 由于我们希望批次输入训练数据,在使用 RNN、GRU、LSTM 时,可以使用 pad_sequence、packed_...
模型构建主要包括了 CRF 层的实现,以及 BiLSTM 层的实现。其中 CRF 层相对复杂一些,主要有两个较难的难点:一、要计算所有路径的损失,二、要根据发射矩阵回溯最优路径。 ...
数据处理主要是加在语料、构建词典、以及将数据集转换为索引表示。我们这里会删除句子长度超过 505 的句子。由于构建词典时,是根据训练集数据构建的,所以在对测试集进行编码时,可能会出...
模型评估主要做的事情,提取测试集所有的实体名称,并划分为 ORG、PER、LOC 类别。分别统计每个类别的精度、召回率,以及准确率。 1. 提取实体名称 我编写了 extract_...
我们使用 Bert 的 bert-base-chinese 为基础模型,在我们自己的数据集上进行微调来实现 NER 任务。我们这里使用的是 transformers 库中提供的 B...
我们使用的是 MSRA 中文 NER 数据集,该数据集共包含三个目录:test、valid、train,分别对应了测试集、验证集、训练集。训练集有:42000 条数据,验证集有 3...
对于命名实体识别任务,基于神经网络的方法应用非常常见。其中的 CRF 层对于刚刚接触学习的同学可能不是特别容易理解,下联链接的文章的作者对 CRF 做了非常好的讲解。我认真学习了作...
分词算法的目的就是将输入的整个序列分割为 token 序列。对于英文来说,最简单的分词方法就是以空格来分割出每一个单词(token)。对于中文而言,虽然没有像英文那样天然的分隔符,...
我们在使用 transformers 时,需要使用自己的数据来构建 tokenizer。这里我们使用 tokenizer 库,该库可以帮我们更加轻松的构建不同类型的 Tokeniz...
在 Character-Level Language Modeling with Deeper Self-Attention 中,作者提到 LSTM 和 RNN 变体能够在对字符级...