10分钟快速上手飞桨(PaddlePaddle)

Paddle版本:2.0.0rc
Python版本:python3
运行方式:python3命令行界面,非分布式方式
原文地址:https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0-rc/guides/02_paddle2.0_develop/01_quick_start_cn.html

1. 安装飞桨

如果您已经安装好飞桨那么可以跳过此步骤。我们针对用户提供了一个方便易用的安装引导页面,您可以通过选择自己的系统和软件版本来获取对应的安装命令,具体可以点击快速安装查看。

具体步骤

在CentOS的linux机器上,安装python3,安装paddle

yum install python3
pip3 install --upgrade pip
python3 -m pip install paddlepaddle==2.0.0rc0 -i https://mirror.baidu.com/pypi/simple

2. 导入飞桨

安装好飞桨后我们就可以在Python程序中进行飞桨的导入。

在命令行中执行python3,开启命令行界面

import paddle
print(paddle.__version__)
2.0.0-rc0

3. 实践一个手写数字识别任务

对于深度学习任务如果简单来看,其实分为几个核心步骤:

  1. 数据集的准备和加载;

  2. 模型的构建;

  3. 模型训练;

  4. 模型评估。

那么接下来我们就一步一步带您通过飞桨的少量API快速实现。

3.1 数据加载

加载我们框架为您准备好的一个手写数字识别数据集。这里我们使用两个数据集,一个用来做模型的训练,一个用来做模型的评估。

train_dataset = paddle.vision.datasets.MNIST(mode='train')
val_dataset =  paddle.vision.datasets.MNIST(mode='test')

3.2 模型搭建

通过Sequential将一层一层的网络结构组建起来。需要先对数据进行Flatten操作,将[1,28, 28]形状的图片数据改变形状为[1,784]。

mnist = paddle.nn.Sequential(
    paddle.nn.Flatten(),
    paddle.nn.Linear(784, 512),
    paddle.nn.ReLU(),
    paddle.nn.Dropout(0.2),
    paddle.nn.Linear(512, 10)
)

3.3 模型训练

配置好我们模型训练需要的损失计算方法和优化方法后就可以使用fit接口来开启我们的模型训练过程。

# 预计模型结构生成模型实例,便于进行后续的配置、训练和验证
model = paddle.Model(mnist)
# 模型训练相关配置,准备损失计算方法,优化器和精度计算方法
model.prepare(paddle.optimizer.Adam(parameters=mnist.parameters()),
              paddle.nn.CrossEntropyLoss(),
              paddle.metric.Accuracy())
# 开始模型训练
model.fit(train_dataset,
          epochs=5,
          batch_size=32,
          verbose=1)
Epoch 1/5
step 1875/1875 [==============================] - loss: 0.2250 - acc: 0.9025 - 9ms/step
Epoch 2/5
step 1875/1875 [==============================] - loss: 0.0969 - acc: 0.9462 - 13ms/step
Epoch 3/5
step 1875/1875 [==============================] - loss: 0.1035 - acc: 0.9550 - 12ms/step
Epoch 4/5
step 1875/1875 [==============================] - loss: 0.0316 - acc: 0.9603 - 12ms/step
Epoch 5/5
step 1875/1875 [==============================] - loss: 0.1771 - acc: 0.9637 - 12ms/step

3.4 模型评估

使用我们刚才训练得到的模型参数进行模型的评估操作,看看我们的模型精度如何。

model.evaluate(val_dataset, verbose=0)
{'loss': [3.576278e-07], 'acc': 0.9666}

那么初步训练得到的模型效果在97%附近,我们可以进一步通过调整其中的训练参数来提升我们的模型精度。
至此我们可以知道如何通过飞桨的几个简单API来快速完成一个深度学习任务,大家可以针对自己的需求来更换其中的代码,如果需要使用自己的数据集,那么可以更换数据集加载部分程序,如果需要替换模型,那么可以更改模型代码实现等等。后文会具体描述深度学习每个环节。

完整的代码,可以在PyCharm中运行(如果本机安装了Paddle环境)

# -*- coding: UTF-8 -*-
"""
"# -*- coding: UTF-8 -*-",第一行用来解决" Non-ASCII character"
written in
more than just one line
"""

import paddle
print(paddle.__version__)
train_dataset = paddle.vision.datasets.MNIST(mode='train')
val_dataset = paddle.vision.datasets.MNIST(mode='test')
mnist = paddle.nn.Sequential(
    paddle.nn.Flatten(),
    paddle.nn.Linear(784, 512),
    paddle.nn.ReLU(),
    paddle.nn.Dropout(0.2),
    paddle.nn.Linear(512, 10)
)
# 预计模型结构生成模型实例,便于进行后续的配置、训练和验证
model = paddle.Model(mnist)
# 模型训练相关配置,准备损失计算方法,优化器和精度计算方法
model.prepare(paddle.optimizer.Adam(parameters=mnist.parameters()),
              paddle.nn.CrossEntropyLoss(),
              paddle.metric.Accuracy())
# 开始模型训练
model.fit(train_dataset,
          epochs=1,
          batch_size=32,
          verbose=1)
print model.evaluate(val_dataset, verbose=0)
print("Finish")
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值