\u200E
强烈推荐 | 飞桨工具组件详解
发布日期:2019-06-08T16:00:00.000+0000 浏览量:3167次

深度学习技术已经具备了很强的通用性,正在推动人工智能进入工业大生产阶段。飞桨(PaddlePaddle)是百度自研的开源深度学习平台,有全面的官方支持的工业级应用模型,涵盖自然语言处理、计算机视觉、推荐引擎等多个领域,并开放多个领先的预训练中文模型。并为开发者开放 PaddleHub、PARL、AutoDL Design、VisualDL 等一系列深度学习工具组件,帮助开发者快速落地AI应用。接下来,小编带你一一了解。

 

十余行代码完成迁移学习PaddleHub

 

迁移学习(Transfer Learning) 是属于深度学习的一个子研究领域,该研究领域的目标在于利用数据、任务、或模型之间的相似性,将在旧领域学习过的知识,迁移应用于新领域中。迁移学习吸引了很多研究者投身其中,因为它能够很好的解决深度学习中的以下几个问题:

 

  • 一些研究领域只有少量标注数据,且数据标注成本较高,不足以训练一个足够鲁棒的神经网络;

  • 大规模神经网络的训练依赖于大量的计算资源,这对于一般用户而言难以实现;

  • 应对于普适化需求的模型,在特定应用上表现不尽如人意。

 

PaddleHub 是基于飞桨(PaddlePaddle)开发的预训练模型管理工具,目前预训练模型覆盖了图像分类、目标检测、词法分析、Transformer、情感分析五大类别。PaddleHub通过命令行工具,可以方便快捷的完成模型的搜索、下载、安装、预测等功能。PaddleHub提供了基于飞桨( PaddlePaddle )实现的 Fine-tune API, 重点针对大规模预训练模型的 Fine-tune 任务做了高阶的抽象,让预训练模型能更好服务于用户特定场景的应用。通过大规模预训练模型结合 Fine-tune,可以在更短的时间完成模型的收敛,同时具备更好的泛化能力。

 

 

项目地址:

https://github.com/PaddlePaddle/PaddleHub

 

一个修饰符实现并行强化学习算法PARL1.1

 

强化学习作为AI技术发展的重要分支,除了应用于模拟器和游戏领域,在工业领域也正取得长足的进步强化学习的主要思想是基于机器人(agent)和环境(environment)的交互学习,其中agent通过action影响environment,environment返回reward和state,整个交互过程是一个马尔可夫决策过程。在交互学习的过程中,没有人的示范,而是让机器自主去做一个动作,让机器拥有自我学习和自我思考的能力。强化学习能够解决很多有监督学习方法无法解决的问题。

 

PARL是一款基于百度飞桨(PaddlePaddle)打造的深度强化学习框架,继1.0版本开源了NeurIPS 2018假肢挑战赛冠军训练代码以及主流强化学习模型后,发布了聚焦于并行的1.1版本。PARL1.1通过一个简单的修饰符(@parl.remote_class)即可实现并行化,并新增支持高质量的并行算法,包括IMPALA、GA3C、A2C,并提供了高性能的并行开发接口。以通过PARL实现的IMPALA算法的评估结果为例,在雅达利这个经典评测环境中 ,pong 游戏最快可在7分钟内达到20分,breakout游戏在25分钟达到400分(1个P40GPU +32CPU)。

 

项目地址:

https://github.com/PaddlePaddle/PARL

 

自动化网络结构设计AutoDL Design

 

基于飞桨(PaddlePaddle)及PARL强化学习框架,百度进行了自动化网络结构设计的探索和尝试,并且开源了其中关于自动化网络结构设计的源代码和对应的预训练模型,将AutoDL这一前沿技术以更低的成本展示给业界和各位开发者,大幅降低了该类技术的上手门槛。

 

百度的研究员和工程师们所使用的自动网络结构搜索的方法,目标是找到合适的“局部结构”。即,首先搜索得到一些合适的局部结构作为零件,然后类似流行的Inception结构那样,按照一定的整体框架堆叠成为一个较深的神经网络。整个搜索过程,是基于增强学习思想设计出来的。因此很自然地包括了以下两个部分:第一个部分是生成器,对应增强学习中的智能体(agent),用于采样(sample),生成网络结构;第二个部分是评估器,用于计算奖励(reward),即用新生成的网络结构去训练模型,以模型的准确率(accuracy)或者是损失函数(loss function)返回给生成器。

 

 

目前已发布用AutoDL Design方法生成的一系列神经网络,以及使用CIFAR10数据在其上训练出来的一共6个模型,包括了网络结构以及对应的权重,开发者可以在这6个模型上进行推理(inference)以及模型融合,获得超过98%的准确率。以及,大家可以下载、安装和运行,尝试生成属于自己的、全新的神经网络结构。

 

项目地址:

https://github.com/PaddlePaddle/AutoDL/tree/master/AutoDL%20Design

 

深度学习可视化工具库VisualDL

 

VisualDL是一个面向深度学习任务设计的可视化工具,VisualDL原生支持Python的使用, 只需要在模型中增加少量的代码,对VisualDL接口进行调用,便可以为训练过程提供丰富的可视化支持。除了Python SDK之外,VisualDL底层采用C++编写,其暴露的C++ SDK也可以集成到其他框架中使用, 实现原生的性能和定制效果。用户也可以通过对C++ SDK进行封装,提供其他脚本语言的SDK。VisualDL 目前支持scalar、histogram、image、audio、text、graphhigh dimensional七种可视化组件。

 

项目地址:

https://github.com/PaddlePaddle/VisualDL

 

模型转换工具X2Paddle

 

深度学习的应用主要包括两个部分,一是通过深度学习框架训练出模型,二是利用训练出来的模型进行预测。开发者基于不同的深度学习框架能够得到不同的训练模型,如果想要基于一种框架进行预测,就必须要解决不同框架的模型之间的匹配问题。基于这种考虑,也为了帮助用户快速从其他框架迁移,飞桨(PaddlePaddle)开源了模型转换工具X2Paddle。

 

它可以将TensorFlow、Caffe 的模型转换为飞桨(PaddlePaddle)的核心框架Paddle Fluid可加载的格式。同时X2Paddle还支持ONNX格式的模型转换,这样也相当于支持了众多可以转换为ONNX格式的框架,比如PyTorch、MXNet、CNTK等。

 

项目地址:

https://github.com/PaddlePaddle/X2Paddle