热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

make编译程序指定glibc版本_AllenNLP1.0版本变化

2020年6月17日一大早就看到了github推送的1.0版本更新的通知消息,在历经数个月的版本迭代中,1.0版本终于面世了。相比之前的0.x版本&#x

2020年6月17日一大早就看到了github推送的1.0版本更新的通知消息,在历经数个月的版本迭代中,1.0版本终于面世了。相比之前的0.x版本,此次allennlp在很多方面进行了改动,这里从我个人的使用角度出发,讲解一下版本变动。

https://github.com/allenai/allennlp/releases​github.com

1、将旧库拆分为两个辛苦,allennlp只负责核心逻辑,模型的定义、测试部分拆分到了下述连接

https://github.com/allenai/allennlp-models​github.com

2、Iterators 部分从自定义,转换为兼容Pytorch中的DataLoaders。

好处:效率更高,兼容更好(例如与fastai的兼容)

3、多GPU使用更加高效。旧版本是一个进程,多个GPU,由于GIL的存在会使效率不高。新版本使每个GPU一个进程,这样速度会提升很多。

1547a65ca6f19d26d8eb5db7ef2c013e.png
使用spawn的方式进行多GPU训练

这里有个小问题,N个GPU时如何让每个GPU只分配到 数据/N 那么多的数据呢?

AllenNLP在1.0 prerelease中提到

In addition, if it is important that your dataset is correctly sharded such that one epoch strictly corresponds to one pass over the data, your dataset reader should contain the following logic to read instances on a per-worker basis:

rank = torch.distributed.get_rank()
world_size = torch.distributed.get_world_size()
for idx, inputs in enumerate(data_file):if idx % world_size == rank:yield self.text_to_instance(inputs)

4、SingleIdTokenIndexer使用feature_name参数来使用Token中的相应字段。

好处:之前我们想使用Token中的词性字段,需要单独配置PosTokenIndexer,这些其实都是冗余的,此版本将其简化为

feature_name : `str`, optional (default=`"text"`)We will use the :class:`Token` attribute with this name as input. This is potentiallyuseful, e.g., for using NER tags instead of (or in addition to) surface forms as your inputs(passing `ent_type_` here would do that). If you use a non-default value here, you almostcertainly want to also change the `namespace` parameter, and you might want to give a`default_value`.

5、make_vocab命令没了,相同的功能由train中的dry-run参数来实现。

fintuning命令也没了。。。

subparser.add_argument("--dry-run",action="store_true",help="do not train a model, but create a vocabulary, show dataset statistics and ""other training information",)

6、新增BatchCallback与EpochCallback。顾名思义,在每个batch结束或epoch结束后,会调用相应的回调函数做一些事情。

class BatchCallback(Registrable):"""An optional callback that you can pass to the `GradientDescentTrainer` that will be called atthe end of every batch, during both training and validation. The default implementationdoes nothing. You can implement your own callback and do whatever you want, such as savingpredictions to disk or extra logging."""def __call__(self,trainer: "GradientDescentTrainer",batch_inputs: List[List[TensorDict]],batch_outputs: List[Dict[str, Any]],epoch: int,batch_number: int,is_training: bool,is_master: bool,) -> None:passclass EpochCallback(Registrable):"""An optional callback that you can pass to the `GradientDescentTrainer` that will be called atthe end of every epoch (and before the start of training, with `epoch=-1`). The defaultimplementation does nothing. You can implement your own callback and do whatever you want, suchas additional modifications of the trainer's state in between epochs."""def __call__(self,trainer: "GradientDescentTrainer",metrics: Dict[str, Any],epoch: int,is_master: bool,) -> None:pass

7、旧版本的模型保存是保存20个epoch的模型,而现在只保存2个。

. Also, the default for that setting is now2, so AllenNLP will no longer fill up your hard drive!

8、dataloader里不用指定字段了,allennlp会自动推测tokens等预设的字段进行排序

"data_loader": {"batch_sampler" :{"type": "bucket","batch_size": 8,"padding_noise": 0.0}},

除此之外,此次版本发布了一些新的模型、新的交互式的guide、支持通过apex进行16位运算、与transformer库结合更加紧密等等。此外一些jsonnet的配置方式也发生了更新,例如

The way Vocabulary options are specified in config files has changed. See#3550. If you want to load a vocabulary from files, you should specify"type": "from_files", and use the key"directory"instead of"directory_path".

这些都能在github的最新版release中找到,同时相应的配置可以参考

9facb82d3267cba8cf352c1cd44b457d.png
测试配置文件夹下有很多jsonnet配置项。



推荐阅读
  • 本文提供了PyTorch框架中常用的预训练模型的下载链接及详细使用指南,涵盖ResNet、Inception、DenseNet、AlexNet、VGGNet等六大分类模型。每种模型的预训练参数均经过精心调优,适用于多种计算机视觉任务。文章不仅介绍了模型的下载方式,还详细说明了如何在实际项目中高效地加载和使用这些模型,为开发者提供全面的技术支持。 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • TensorFlow基础知识深化讲解
    批标准化批标准化(batchnormalization,BN)是为了克服神经网络层数加深导致难以训练而诞生的。深度神经网络随着深度加深,收 ... [详细]
  • 目录预备知识导包构建数据集神经网络结构训练测试精度可视化计算模型精度损失可视化输出网络结构信息训练神经网络定义参数载入数据载入神经网络结构、损失及优化训练及测试损失、精度可视化qu ... [详细]
  • 本文探讨了BERT模型在自然语言处理领域的应用与实践。详细介绍了Transformers库(曾用名pytorch-transformers和pytorch-pretrained-bert)的使用方法,涵盖了从模型加载到微调的各个环节。此外,还分析了BERT在文本分类、情感分析和命名实体识别等任务中的性能表现,并讨论了其在实际项目中的优势和局限性。 ... [详细]
  • 1.如何进行迁移 使用Pytorch写的模型: 对模型和相应的数据使用.cuda()处理。通过这种方式,我们就可以将内存中的数据复制到GPU的显存中去。 ... [详细]
  • 本文详细介绍了 Pentaho Kettle 中 RowMetaInterface.writeMeta 方法的使用,并提供了多个代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 字节流(InputStream和OutputStream),字节流读写文件,字节流的缓冲区,字节缓冲流
    字节流抽象类InputStream和OutputStream是字节流的顶级父类所有的字节输入流都继承自InputStream,所有的输出流都继承子OutputStreamInput ... [详细]
  • 在 PyTorch 的 `CrossEntropyLoss` 函数中,当目标标签 `target` 为类别 ID 时,实际上会进行 one-hot 编码处理。例如,假设总共有三个类别,其中一个类别的 ID 为 2,则该标签会被转换为 `[0, 0, 1]`。这一过程简化了多分类任务中的损失计算,使得模型能够更高效地进行训练和评估。此外,`CrossEntropyLoss` 还结合了 softmax 激活函数和负对数似然损失,进一步提高了模型的性能和稳定性。 ... [详细]
  • 利用PaddleSharp模块在C#中实现图像文字识别功能测试
    PaddleSharp 是 PaddleInferenceCAPI 的 C# 封装库,适用于 Windows (x64)、NVIDIA GPU 和 Linux (Ubuntu 20.04) 等平台。本文详细介绍了如何使用 PaddleSharp 在 C# 环境中实现图像文字识别功能,并进行了全面的功能测试,验证了其在多种硬件配置下的稳定性和准确性。 ... [详细]
  • python教程分享Pytorchmlu 实现添加逐层算子方法详解
    目录1、注册算子2、算子分发3、修改opmethods基类4、下发算子5、添加wrapper6、添加wrapper7、算子测试本教程分享了在寒武纪设备上pytorch-mlu中添加 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有