各位关注PaddlePaddle的深度学习开发者, Fluid v1.2 版本于今日正式闪亮登场!本次版本咱们作了超多重磅更新!python
本次版本的主要更新简介:android
1. 新增支持Windows下CPU环境执行,并提供windows版PIP安装包算法
2. 新增300个API Reference中文文档,13篇API使用指南 ,优化77个API Reference英文文档编程
3. 新增对python3.六、python3.7的支持。windows
4. CV图像分类任务发布MobileNet V1, ResNet101, ResNet152,VGG11预训练模型。服务器
5. 分布式训练下增长稀疏通讯机制,参数的总量能够压缩到1%如下,在搜索真实场景的数据下,总体训练吞吐能够提高50倍。网络
6. 服务器端GPU环境下支持图融合技术,且支持与TensorRT引擎混合改图,在Resnet50和Googlenet等图像通用模型上bs=1下性能提高 50%~100%,GoogleNet 8bit加速14%。多线程
下面是更新细节,文章会从基础框架、预测引擎、移动端预测、模型建设、分布式训练、文档6个方面给你们介绍,约1500字,会花费4分钟阅读时间。并发
【基础框架】框架
l 安装
² 提供新pip安装包,支持Windows下CPU执行。
l 编程语言
² 新增对python3.六、python3.7的支持。
l 重构内存分配模块Allocator,提高CPU下内存分配策略,提高显存利用率(默认关闭,须要使用FLAGS_allocator_strategy)。
l 限制SelectedRows的使用。修复了稀疏正则和稀疏优化器的bug。
l Tensor支持DLPack,方便被其余框架集成和集成其余训练框架。
l OP
² 修复 expand op shape 推理错误的bug。
² 支持 Selu 激活函数。
【预测引擎】
l 服务器预测
² GPU 支持图融合,且支持和 TensorRT引擎混合改图,在Resnet50和Googlenet等图像通用模型上bs=1下性能提高 50%~100%。
² GPU支持DDPG Deep Explore预测。
² Paddle-TRT对更多模型的支持,其中包括Resnet, SE-Resnet, DPN,GoogleNet。
² CPU, GPU, TensorRT 等加速引擎合并入 AnalysisPredictor,统一由 AnalysisConfig 控制。
² 增长调用多线程数学库的接口。
² 新增TensorRT plugin的支持,包括split operator, prelu operator, avg_pool operator, elementwise_mul operator。
² 增长了JIT CPU Kernel,支持基本的向量操做,以及常见的算法包括ReLU,LSTM和GRU的部分实现,能够实如今AVX和AVX2指令集之间自动runtime切换。
² 优化CRF decoding和LayerNorm在AVX以及AVX2指令集上的实现。
² 修复了 AnalysisPredictor 在GPU,在CPU 到 GPU 的 transfer data 不删除的问题。
² 修复了 Variable 中包含 container 内存持续增加的问题。
² 修复fc_op不支持3-D Tensor的问题。
² 修复了Analysis predictor 在GPU下执行pass时的问题。
² 修复了TensorRT下运行GoogleNet的问题。
² 预测性能提高
Ø Max Sequence pool optimization,单op提升10%。
Ø Softmax operator 优化,单op提高14%。
Ø Layer Norm operator优化,支持avx2指令集,单op提高5倍。
Ø Stack operator 优化,单op提高3.6倍。
Ø 增长depthwise_conv_mkldnn_pass,加速MobileNet预测。
Ø 加速analysis模式的图分析时间,提高70倍。
Ø DAM开源模型,提高118.8%。
l 移动端预测
² 实现winograd算法, GoogleNet v1性能大幅提高35%。
² GoogleNet 8bit优化,相比float加速14%。
² MobileNet v1 8bit支持,相比float加速20%。
² MobileNet v2 8bit支持,相比float加速19%。
² FPGA V1 开发了Deconv算子。
² android gpu支持MobileNet、MobileNetSSD、GoogleNet、SqueezeNet、YOLO、ResNet等主流的网络模型。
【模型建设】
l CV图像分类任务发布MobileNet V1, ResNet101, ResNet152,VGG11预训练模型。
l CV Metric Learning模型新增arcmargin损失,并调整训练方式,采用element-wise做为预训练模型,pair-wise继续微调的训练方式提高精度。
l NLP语言模型任务新增基于cudnn的LSTM实现,对比PaddingRNN的实现方式,在不一样参数配置下速度提高3~5倍。
l 增长分布式word2vec模型,包括新增的tree-based softmax operator,negative sampling等,与经典word2vec算法对齐。
l 新增GRU4Rec、Tag-Space算法的分布式配置。
l 完善Multi-view Simnet模型,并增长inference配置。
l 支持强化学习算法 DQN。
l 现已支持python3.5及以上的模型:语义匹配DAM,阅读理解BiDAF,机器翻译Transformer,语言模型,强化学习DQN、DoubleDQN模型、DuelingDQN模型,视频分类TSN,度量学习Metric Learning,场景文字识别CRNN-CTC 、OCR Attention,生成式对抗网络ConditionalGAN 、DCGAN、CycleGAN,语义分割ICNET、DeepLab v3+,目标检测Faster-RCNN、MobileNet-SSD 、PyramidBox ,图像分类SE-ResNeXt、ResNet等,个性化推荐TagSpace、GRU4Rec、SequenceSemanticRetrieval、DeepCTR、Multiview-Simnet。
【分布式训练】
l CPU多机异步训练
² worker异步并发:增长AsyncExecutor,以训练文件做为执行粒度,支持分布式训练中的worker端计算异步无锁计算,同时支持单机训练。以CTR任务为例,单机训练速度,在充分利用单机线程的状况下,总体吞吐提高14倍。
² IO优化:增长支持AsyncExecutor的DataFeed,支持可定制化的通用分类任务格式。面向CTR任务,增长CTRReader,使数据读取速度线性提高,在PaddleRec/ctr任务中,总体吞吐提高1倍。
² 通讯优化:针对稀疏访问的Dense参数例如Embedding,增长稀疏通讯机制,以语义匹配任务为例,获取参数的总量能够压缩到1%如下,在搜索真实场景的数据下,总体训练吞吐能够提高50倍。
l GPU多机同步训练
² 修复Transformer、Bert模型下P2P训练模式会Hang住的问题。
【文档】
l API
² 新增13篇API使用指南。
² 新增300个API Reference中文文档。
² 优化77个API Reference英文文档:包括代码示例、参数说明等。
l 安装文档
² 新增python3.六、python3.7安装说明。
² 新增windows pip install安装说明。
l Book文档
² Book文档中的代码示例更改成Low level API。
l 使用文档
² 新增《Operator相关注意事项》,更新《保存与载入模型变量》、《C++预测API介绍》、《使用TensorRT库预测》、《如何贡献代码》等多篇使用文档。