19行关键代码,带你轻松入门PaddlePaddle单机训练
刚接触深度学习框架的同学可能会说
新入手一个框架是不是会很难?
NO,NO,NO
?
PaddlePaddle的宗旨就是“easy to use!”
?
PaddlePaddle是百度自研的集深度学习框架、工具组件和服务平台为一体的技术领先、功能完备的开源深度学习平台,有全面的官方支持的工业级应用模型,涵盖自然语言处理、计算机视觉、推荐引擎等多个领域,并开放多个领先的预训练中文模型。
?
下面,就让作者带你
打开一扇深度学习的新大门
19行代码入门PaddlePaddle单机训练!
?
第1行
在Python环境下安装PaddlePaddle框架,万里征程开头难,输完这行指令,你已经成功了一大半!
pip install paddlepaddle
第2-3行
进入代码环境,导入数据包,没啥可说的
import paddle as paddleimport paddle.fluid as fluid
第4-7行
定义模型,定义输入输出,轻松搞定
image = fluid.layers.data(name='image', shape=[1, 28, 28], dtype='float32')label = fluid.layers.data(name='label', shape=[1], dtype='int64')hidden = fluid.layers.fc(input=image, size=100, act='relu')prediction = fluid.layers.fc(input=hidden, size=10, act='softmax')
第8-10行
定义损失函数(交叉熵)和准确率函数
cost = fluid.layers.cross_entropy(input=prediction, label=label)avgcost = fluid.layers.mean(cost)acc = fluid.layers.accuracy(input=prediction, label=label)
第11-12行
定义优化方法,使用Adam算法进行优化,其实随便什么优化方法都可以,随你喜欢啦
optimizer = fluid.optimizer.AdamOptimizer(learning_rate=0.001)opts = optimizer.minimize(avg_cost)
第13-14行
在模型结构搭建完之后,我们需要对参数进行初始化。
注:我们这里采用CPU单机单卡训练,如果使用多GPU训练,参数需要先在GPU0上初始化,再经由fluid.ParallelExecutor?分发到多张显卡(详细内容可以参考文末链接)
exe = fluid.Executor(fluid.CPUPlace())exe.run(fluid.default_startup_program())
第15-16行
准备输入训练数据,使用框架自带MNIST数据集
train_reader = paddle.batch(paddle.dataset.mnist.train(), batch_size=128)feeder = fluid.DataFeeder(place=fluid.CPUPlace(), feed_list=[image, label])
第17-18行
啦啦啦,开始训练,2行代码轻松搞定
for batch_id, data in enumerate(train_reader()):train_cost,train_acc = exe.run(program=fluid.default_main_program(), feed=feeder.feed(data), fetch_list=[avg_cost, acc])
有兴趣的同学也可以通过增加代码print('Batch:%d, Cost:%0.5f, Accuracy:%0.5f' %(batch_id, train_cost[0], train_acc[0]))自行把训练过程打印出来看一下
Batch:0, Cost:3.17834, Accuracy:0.04688Batch:50, Cost:0.53703, Accuracy:0.82031Batch:100, Cost:0.47778, Accuracy:0.83594Batch:150, Cost:0.34092, Accuracy:0.90625Batch:200, Cost:0.25703, Accuracy:0.92188Batch:250, Cost:0.37539, Accuracy:0.86719Batch:300, Cost:0.24384, Accuracy:0.94531Batch:350, Cost:0.51838, Accuracy:0.84375Batch:400, Cost:0.40187, Accuracy:0.85938Batch:450, Cost:0.36615, Accuracy:0.89062
第19行
训练完成,保存模型,任务完成!
fluid.io.save_inference_model("model", ['image'], [prediction], exe)
好吧,看到这里你说,
是19行代码就完成单机训练
没错,
但是完全没感觉啊,
训练好了该怎么用呢?
不着急,我们试试拿一个实例
来测试一下!
预测实例
继续导入2个基础数据包,备用
import numpy as npimport pickle
加载预测数据,需要下载源项目文件
链接:https://pan.baidu.com/s/1axSjJ9XVTI7MYY25WpqZtg?
提取码:rkhg?
对,我们需要对付的,
就是这样歪歪扭扭的家伙!

源项目中已经把图片处理好了保存在bin文件里面,可以直接读取
load_file=open("save.bin","rb")img=pickle.load(load_file)act_label=pickle.load(load_file)load_file.close()
导入训练好的模型,开始预测
with fluid.scope_guard(fluid.core.Scope()):[infer_prog,feed_names,targets]=fluid.io.load_inference_model("model", exe)results = exe.run(program=infer_prog, feed={feed_names[0]: img}, fetch_list=targets)
打印输出,搞定!
print("实际数字为: %d" % act_label)print("预测结果为: %d" % np.argsort(results)[0][0][-1])
最终结果
实际数字为: 3
预测结果为: 3
DuangDuangDuang!!
除去数据准备和打印输出,
真正的核心预测代码也只有3行而已,
惊不惊喜,意不意外?
是的,没错
PaddlePaddle就是这样
一个易学易用的深度学习框架
你学会了么?
?
想了解更多内容,请点击阅读原文查看
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- 1 《求是》发表习近平总书记重要文章 7904709
- 2 勇敢夺枪老人与妻子相拥倒在现场 7809275
- 3 中美卫星惊险“擦肩”距离仅200米 7712242
- 4 明年经济工作政策取向确立这八个字 7618654
- 5 “中国最冷小镇”最低温降至-39℃ 7521514
- 6 男子陪女友逛街买刮刮乐中80万元 7426115
- 7 30万级的玛莎拉蒂两天被一抢而空 7330211
- 8 上海商场悬空挂数十件大衣被指吓人 7237961
- 9 MLXG成老赖 7136083
- 10 如何让你我的钱袋子鼓起来 7046727



![Rita小雨桑 今天是辣妹小塔!(。ì _ í。) [我来了].](https://imgs.knowsafe.com:8087/img/aideep/2023/7/18/37dd010409675b1a1cadc326929ca96f.jpg?w=250)



AI100
