微软开源项目NeuronBlocks - 像搭积木一样构建NLP深度学习模型

NeuronBlocks将常用的神经网络层封装为标准模块,通过配置简单的配置文件,就可以轻松构建复杂的深度神经网络模型,与此同时,工具包还提供了一些列针对常见NLP任务的经典模型

项目地址:https://github.com/Microsoft/NeuronBlocks

1、安装

NeuronBlocks 目前支持:Python 3.6, PyTorch 0.4.1,Linux/Windows,GPU/CPU

在windows安装过程如下所示:

从github将项目clone下来,进入到NeuronBlocks文件夹下面

 

输入安装命令:pip install -r requirements.txt

如下所示

上述的命令时将requirements.txt中的python包进行安装,requirements.txt具体内容如下所示:

matplotlib==2.1.0

six==1.11.0

nltk==3.4

gensim==3.2.0

tqdm==4.19.5

numpy==1.13.3

scikit_learn==0.19.2

PyYAML==3.13

ftfy==5.5.0

 

pip install torch==0.4.1

会出现下面的错误:

即错误(方便看清楚):

 Could not find a version that satisfies the requirement torch==0.4.1 (from versions: 0.1.2, 0.1.2.post1)

No matching distribution found for torch==0.4.1

将安装命令修改成:

pip3 install http://download.pytorch.org/whl/cu90/torch-0.4.1-cp36-cp36m-win_amd64.whl  

安装成功显示如下所示:

2、例子

用户可以选择Model Zoo中的示例模型(JSON配置文件)开启模型训练,或者利用Block Zoo中的神经网络模块构建新的模型,就像玩乐高积木一样。

(1)训练:

python train.py --conf_path=model_zoo/demo/conf.json

训练的过程显示如下所示:

卡在下面的位置:

(2)测试:

python test.py --conf_path=model_zoo/demo/conf.json

在测试的过程中,需要输入yes的过程

最终的测试结果如下所示:

(3)预测:

python predict.py --conf_path=model_zoo/demo/conf.json

预测需要输入两次yes

最终的预测结果如下所示:

将预测出的文件写入到./models/demo/predict.tsv文件下面

经过上述步骤之后,新生成的文件models/demo中的具体内容如下所示:

NeuronBlocks提供了一个模型可视化工具,可以将JSON配置文件转化为模型框图,如下图所示:

 

3、简单介绍

NeuronBlocks是基于pytorch的NLP深度学习建模工具,可以帮助研究员或者工程师快速构建自然语言理解任务的深度神经网络模型。该工具包的主要目标是将 NLP 深度神经网络模型构建的开发成本降到最低,包括模型训练阶段和推断阶段。

NeuronBlocks的整体框架如下所示,包括两部分:Block Zoo 和Model Zoo

Block Zoo:包括词嵌入、CNN、LSTM/GRU、Transformer和各种Attention,主要是将常用的神经网咯层抽象并封装为可重用的标准模块,这些模块将被用于构建各种针对不同自然语言处理任务的深度学习模型

Model Zoo:提供大量预构建好的深度神经网络模型,涵盖了常见的NLP任务,这些模型以JSON配置文件的形式呈现,用户可以通过简单修改Model Zoo中的示例模型配置,即可将其应用于自己的任务中

4、NeuronBlocks优势

(1) 模型构建:用户只需要配置简单的 JSON 文件,就能够构建模型和调整参数,大大减少了模型实现的工作量;

(2)模型分享:可以通过分享 JSON 配置文件来分享模型,使模型共享变得非常容易。对于不同的任务或模型,用户只需维护一个通用的源码库;

(3)代码重用:可以在各任务与模型间共享神经网络模块,减少重复的编程工作;

(4)平台灵活性:可以在 Linux 和 Windows 机器上运行,支持 CPU 和 GPU,也支持像 Open PAI 这样的 GPU 管理平台;

(5)模型可视化:提供了一个模型可视化工具,用于观察模型结构及检查 JSON 配置的正确性;

(6)可扩展性:支持用户贡献新的神经网络模块或者新的模型。

上述的优势的分析来源网络

 

后续会继续进行更新,换一个任务进行训练测试一下,欢迎同道者进行交流

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杨算法屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值