PaddlePaddle:百度分布式深度学习平台开源了
han840129
8年前
<p>百度分布式深度学习平台Paddle宣布开源,支持Python、C++和SWIG,支持多机数据并行的深度学习模型训练,并提供了Sequence to Sequence模型的Demo。</p> <p>还记得百度内部使用的分布式深度学习平台Paddle吗?在此前 <a href="/misc/goto?guid=4959713480283663772" rel="nofollow,noindex">《程序员》</a> 文章《 <a href="/misc/goto?guid=4959713480379036110" rel="nofollow,noindex">基于Spark的异构分布式深度学习平台</a> 》一文的介绍中,Paddle开发者提到了“在平台更成熟后,我们打算把Spark on PADDLE以及异构计算平台开源”。现在看来,Paddle已经开始成熟,因为在 <a href="/misc/goto?guid=4959713480470022987" rel="nofollow,noindex">Github已经可以看到Paddle</a> 了(不过介绍里叫做“PaddlePaddle”),支持Python接口、C++以及SWIG,支持多机数据并行的深度学习模型训练,支持 <a href="/misc/goto?guid=4959713480553182758" rel="nofollow,noindex">Apache-2.0 license</a> ,并提供了Sequence to Sequence模型的Demo。</p> <p><img src="https://simg.open-open.com/show/c8c4d739e88bf35c79240494a115d359.png"></p> <h2>特性</h2> <p>PaddlePaddle的四个特性简介如下:</p> <ul> <li> <p>灵活性:PaddlePaddle支持广泛的神经网络结构和优化算法,很容易配置复杂的模型,如基于注意力(Attention)机制或复杂的内存(Memory)连接的神经机器翻译模型。(Attention和Memory参考阅读: <a href="/misc/goto?guid=4959713480638915906" rel="nofollow,noindex">深度学习和自然语言处理中的attention和memory机制</a> 、 <a href="/misc/goto?guid=4959713480721103637" rel="nofollow,noindex">深度学习:推动NLP领域发展的新引擎</a> )</p> </li> <li> <p>高效:在PaddlePaddle的不同层面进行优化,以发挥异构计算资源的效率,包括计算、内存、架构和通信等。例如:</p> <ul> <li>通过SSE/AVX内部函数,BLAS库(例如MKL,ATLAS,CUBLAS)或定制CPU/GPU内核优化的数学运算。</li> <li>高度优化循环网络,以处理可变长度序列,无需填充(Padding)。</li> <li>优化高维稀疏数据模型的本地和分布式训练。</li> </ul> </li> <li> <p>可扩展性:PaddlePaddle很容易使用多个CPU/GPU和机器来加快你的训练,通过优化通信实现高吞吐量、高性能。</p> </li> <li> <p>连接产品:PaddlePaddle易于部署。在百度,PaddlePaddle已经被部署到广大用户使用的产品或服务,包括广告点击率(CTR)的预测,大型图像分类,光学字符识别(OCR),搜索排名,计算机病毒检测,推荐等。</p> </li> </ul> <p>PaddlePaddle支持使用Python接口或C++来构建系统,可以使用SWIG为开发者喜爱的编程语言创建接口。</p> <p>Github上目前提供了图像分类、情绪分析、Sequence to Sequence模型、推荐和语义角色标注(SRL)等五个 <a href="/misc/goto?guid=4959713480807031483" rel="nofollow,noindex">Demo</a> 。</p> <h2>使用</h2> <p><a href="/misc/goto?guid=4959713480899971902" rel="nofollow,noindex">Quick Start Tutorial看这里</a> 。涵盖深度学习应用的五个环节。</p> <p><img src="https://simg.open-open.com/show/11d1d26faad601f82b0bb5303ef2c501.png"></p> <p>Logistic Regression、Word Embedding、CNN、RNN等不同网络架构如下:</p> <p><img src="https://simg.open-open.com/show/ff118820ce1ebbd98fc2ca3c3b6e8dee.png"></p> <p>↑↑↑ Logistic Regression</p> <p><img src="https://simg.open-open.com/show/8210037abc5e17f635d8c8ece5723d02.png"></p> <p>↑↑↑ Word Embedding Model</p> <p>↑↑↑ Convolutional Neural Network Model</p> <p>↑↑↑ Recurrent Model</p> <p>算法优化包括 Momentum, RMSProp, AdaDelta, AdaGrad, Adam 和 Adamax。这里可以使用极为适合循环神经网络的Adam优化方法及L2正则化和gradient clipping。</p> <pre> settings(batch_size=128, learning_rate=2e-3, learning_method=AdamOptimizer(), regularization=L2Regularization(8e-4), gradient_clipping_threshold=25)</pre> <p> </p> <p>来自:http://www.lupaworld.com/article-260097-1.html</p> <p> </p>