专栏首页PaddlePaddlePaddlePaddle发布v0.10.0版

PaddlePaddle发布v0.10.0版

我们非常高兴发布了PaddlePaddle V0.10.0版,并开放了新的Python API。

之前在v0.9.0版,完成一个训练或预测任务至少需要两份python文件,分别是定义数据生成器和定义网络拓扑结构的文件。用户通过运行paddle_trainer的C++程序来启动PaddlePaddle任务,该程序调用Python解释器来运行定义网络拓扑结构的文件,然后通过迭代加载数据生成器提供的小批量数据启动训练循环。这与Python的现代编辑方式不符,比如Jupyter Notebook。

新版的API被称为V2 API,允许我们在单个.py文件中,通过编辑更短的Python程序来定义网络结构和数据。此外,该Python程序也可以在Jupyter Notebook中运行,因为PaddlePaddle可以作为共享库来被Python程序加载和使用。下图对比展示了一个卷积神经网络在旧API(图左半边)和新API(图右半边)的效果。

基于新的API,我们提供了一个在线的学习文档 Deep Learning 101 及其中文版本,可访问book.paddlepaddle.org来学习。下图是目前课程的八章内容。

我们还致力于迭代更新新版API的在线文档,并将新版API引入分布式集群(包括MPI和Kubernetes)训练中。我们将在下一个版本中发布更多的内容。

新特点

  • 发布新版Python API。
  • 发布深度学习系列课程 Deep Learning 101 及其中文版本。
  • 支持矩形输入的CNN。
  • 为seqlastin和seqfirstin提供stride pooling。
  • 添加公共数据集包:CIFAR,MNIST,IMDB,WMT14,CONLL05,movielens,imikolov。
  • 针对Single Shot Multibox Detection增加 Prior box layer。
  • 增加光滑的L1损失。
  • 在V2 API中增加 data reader 创建器和修饰器。
  • 增加cmrnorm投影的CPU实现。

改进

  • 提供paddle_trainer的Python virtualenv支持。
  • 增加代码自动格式化的pre-commit hooks。
  • 升级protobuf到3.x版本。
  • 在Python数据生成器中提供一个检测数据类型的选项。
  • 加速GPU中average层的后向反馈计算。
  • 细化文档。
  • 使用Travis-CI检查文档中的死链接。
  • 增加解释sparse_vector的示例。
  • 在layer_math.py中添加ReLU。
  • 简化Quick Start示例中的数据处理流程。
  • 支持CUDNN Deconv。
  • 在v2 API中增加数据feeder。
  • 在情感分析示例的演示中增加对标准输入流中样本的预测。
  • 提供图像预处理的多进程接口。
  • 增加V1 API的基准文档。
  • 提供公共数据集的自动下载包。
  • 将Argument::sumCost重新命名为Argument::sum,并暴露给python。
  • 为矩阵相关的表达式评估增加一个新的TensorExpression实现。
  • 增加延迟分配来优化批处理多表达式计算。
  • 增加抽象的类函数及其实现。
  • 增加AutoCompare和FunctionCompare类,使得编写比较gpu和cpu版本函数的单元测试更容易。
  • 生成libpaddle_test_main.a并删除测试文件内的主函数。
  • 支持PyDataProvider2中numpy的稠密向量。
  • 清理代码库,删除一些复制粘贴的代码片段。
  • 增加SparseRowMatrix的抽样类RowBuffer。
  • 清理GradientMachine的接口。
  • 在layer中增加override关键字。
  • 简化Evaluator::create,使用ClassRegister来创建Evaluator。
  • 下载演示的数据集时检查MD5校验。
  • 添加paddle::Error,用于替代Paddle中的LOG(FATAL)。

错误修复

  • 检查recurrent_group的layer输入类型。
  • 不要用.cu源文件运行clang-format。
  • 修复LogActivation的使用错误。
  • 修复运行test_layerHelpers多次的错误。
  • 修复seq2seq示例超出消息大小限制的错误。
  • 修复在GPU模式下dataprovider转换的错误。
  • 修复GatedRecurrentLayer中的错误。
  • 修复在测试多个模型时BatchNorm的错误。
  • 修复paramRelu在单元测试时崩溃的错误。
  • 修复CpuSparseMatrix编译时相关的警告。
  • 修复MultiGradientMachine在trainer_count > batch_size时的错误。
  • 修复PyDataProvider2阻止异步加载数据的错误。

本文分享自微信公众号 - PaddlePaddle(PaddleOpenSource)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-05-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 零基础学编程037:小数据分析

    R语言内置强大的向量运算,是搞数据分析的强大的编程语言,而Python也毫不逊色。今天就试着分析一下考试成绩表中两门科目的相关性。 问题描述: 有一个CSV文件...

    申龙斌
  • 零基础学编程042:画函数图像

    孩子马上就要参加高考了,我以前还能帮着辅导一下数学功课,现在就不行了,一来她很忙,晚上很晚才到家,二来高中的数学题太变态,琢磨一个小时可能也解不出一道。 前几天...

    申龙斌
  • Windows下安装Scikit-Learn

    0. 引言 自从机器学习大火起来以后,做机器学习最热门的语言应该说是非Python莫属,原因大致有以下几个方面:1. Python语言简单易学,语法简单灵活;2...

    机器学习算法工程师
  • 马尔可夫链文本生成的简单应用:不足20行的Python代码生成鸡汤文

    提到自然语言的生成时,人们通常认为要会使用高级数学来思考先进的AI系统,然而,并不一定要这样。在这篇文章中,我将使用马尔可夫链和一个小的语录数据集来产生新的语录...

    AiTechYun
  • 零基础学编程040:在Windows上安装Python库的正确姿势

    Python的优势不仅仅在于优雅的语言、简洁的语法,强大的第三方库是其能够用于各个领域的最重要杀手锏之一,如在数据科学领域的numpy、scipy、pandas...

    申龙斌
  • 【干货】python玩转微信:微信好友统计信息全掌握

    在过去的几个月中,由于在新生群中回答问题费时费力,同时又有许多重复而又有固定答案的回答,我受到一些知乎文章的启发,维护了一个基于itchat的群聊机器人。从刚开...

    钱塘数据
  • 【教程】简单教程:用Python解决简单的水果分类问题

    在这篇文章中,我们将使用Python中最流行的机器学习工具scikit- learn,在Python中实现几种机器学习算法。使用简单的数据集来训练分类器区分不同...

    AiTechYun
  • 零基础学编程036:快速编写一个GUI程序

    在《零基础学编程035:群发邮件并不难》里,我们学会了发邮件,我用于向shenlongbin@sync.omnigroup.com发送一封邮件,就可以实现GTD...

    申龙斌
  • 【学术】独热编码如何在Python中排列数据?

    机器学习算法不能直接处理分类数据,分类数据必须转换为数字。这适用于当你处理一个序列分类类型的问题,并计划使用深度学习方法,比如长短期循环神经网络(RNN)时。 ...

    AiTechYun
  • 零基础学编程041:欧拉公式的几何意义

    欧拉公式号称是最美的出自上帝之手的数学公式,即 ? ,这个公式里 e 和 π 都是无理数,i 是 -1 的平方根,是一个虚数,0和1是最简单的整数,欧拉公式把...

    申龙斌

扫码关注云+社区

领取腾讯云代金券