19行关键代码,带你轻松入门PaddlePaddle单机训练
刚接触深度学习框架的同学可能会说
新入手一个框架是不是会很难?
NO,NO,NO
PaddlePaddle的宗旨就是“easy to use!”
PaddlePaddle是百度自研的集深度学习框架、工具组件和服务平台为一体的技术领先、功能完备的开源深度学习平台,有全面的官方支持的工业级应用模型,涵盖自然语言处理、计算机视觉、推荐引擎等多个领域,并开放多个领先的预训练中文模型。
下面,就让作者带你
打开一扇深度学习的新大门
19行代码入门PaddlePaddle单机训练!
第1行
在Python环境下安装PaddlePaddle框架,万里征程开头难,输完这行指令,你已经成功了一大半!
pip install paddlepaddle
第2-3行
进入代码环境,导入数据包,没啥可说的
import paddle as paddle
import 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.04688
Batch:50, Cost:0.53703, Accuracy:0.82031
Batch:100, Cost:0.47778, Accuracy:0.83594
Batch:150, Cost:0.34092, Accuracy:0.90625
Batch:200, Cost:0.25703, Accuracy:0.92188
Batch:250, Cost:0.37539, Accuracy:0.86719
Batch:300, Cost:0.24384, Accuracy:0.94531
Batch:350, Cost:0.51838, Accuracy:0.84375
Batch:400, Cost:0.40187, Accuracy:0.85938
Batch:450, Cost:0.36615, Accuracy:0.89062
第19行
训练完成,保存模型,任务完成!
fluid.io.save_inference_model("model", ['image'], [prediction], exe)
好吧,看到这里你说,
是19行代码就完成单机训练
没错,
但是完全没感觉啊,
训练好了该怎么用呢?
不着急,我们试试拿一个实例
来测试一下!
预测实例
继续导入2个基础数据包,备用
import numpy as np
import 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就是这样
一个易学易用的深度学习框架
你学会了么?
想了解更多内容,请点击阅读原文查看
相关文章:

用WinForm/WPF代码来为.NET Core 3.0功能投票
我们在5月报道过微软希望在.NET Core 3.0上运行WinForms和WPF。为了实现这个目标,他们正在构建一个新工具,该工具将允许你投票以决定他们需要把哪些API移植到.NET Core。但是,这不是一次直接进行的投票,而是基于你的应用程序正在使…

【FFmpeg】RTSP、RTMP相关命令及开源项目
一、RTSP转RTMP 海康摄像头:抓取 rtsp 流然后转换成 rtmp 推流出去 主码流 ffmpeg -i “rtsp://[用户名]:[密码]@192.168.1.100/h265/ch1/main/av_stream” -f flv -r 25 -s 1920x1080 -an rtmp://localhost/live/a ffmpeg -i “rtsp://[用户名]:[密码]@192.168.1.100:554/h2…

Day13 python基础---内置函数1
一,内置函数: 1.什么是内置函数 就是python给你提供的,拿来直接用的函数,比如print,input等等,截止到python版本3.6.2,现在pyhton一共为我们提供了69个内置函数。 2.作用域相关 # 作用域相关 ****** # globals() :返回…

百度大脑开放日第三期:四大全新平台、两大场景方案助力开发者逐梦 AI
人工智能正走在从技术攻坚到嵌入大众生活的历史进程中,这离不开千万开发者的助力,但开发者也需要“被赋能”。5 月 30 日,第三期百度大脑开放日在深圳微漾国际创客空间如期举行,再一次向开发者、行业人士展现了百度大脑的 AI 技术…

SQuirreL SQL Client 使用记录
如果您的工作要求您在一天之中连接许多不同的数据库 (oracle、DB2、mysql、postgresql、Sql Server等等),或者你经常需要在多个不同种类的数据库之间进行数导入导出。那么SQuirreL SQL Client 将会是比较理想的数据库客户端链接工具。 简单介…

使用Zabbix通过BMC管理口监控HP服务器
概述 本文的环境:Zabbix版本为3.4,一台Server,一台Porxy,一台agent。Porxy主动抓取agent的状态并sender到Server。 首先需要保证服务器的BMC口能够联网,并且拥有管理用户和密码,Proxy和agent能够保持联网。…

刚刚,百度宣布王海峰升任CTO
作者 | 夕颜、一一出品 | AI科技大本营(ID:rgznai100)导读:5 月 31 日,百度宣布,百度原高级副总裁王海峰升任百度 CTO,成为百度在组织大变革中一批“敢打硬仗”的代表人物得到晋升的典型。在百度人事动荡之…

【FFmpeg】结构体详解(一):AVCodec、AVCodecContext、AVCodecParserContext、AVFrame、AVFormatContext 、AVIOContext
FFmpeg结构体详解 一、FFmpeg中最关键的结构体之间的关系1、解协议(http,rtsp,rtmp,mms)2、解封装(flv,avi,rmvb,mp4)3、解码(h264,mpeg2,aac,mp3)4、存数据二、结构体详解1、AVCodec 是存储编解码器信息的结构体。1.1 enum AVMediaType type1.2 enum AVCodecID id1.3 co…

大一新生,你为何逃课?
昨晚不知在哪看到对现在大学生的描述,说现在的大学生30%的时间在应对无聊的思政课,30%的时间在忙着考英语等级,剩下40%的时间在忙着花前月下,“还忙不过来”,虽然不是全部大学生都这样,但也确实有不少的学生…

【FFmpeg】结构体详解(二):AVStream、AVPacket、AVOutputFormat
FFmpeg结构体详解 7、AVStream8、AVPacket9、AVOutputFormat7、AVStream AVStream 是存储每一个视频/音频流信息的结构体。 重要的变量如下所示: int index: 标识该视频/音频流 AVCodecContext *codec: 指向该视频/音频流的AVCodecContext(它们是一一对应的关系) AVR…

谷歌 Fuchsia 上手体验,将取代Android/win10
2019独角兽企业重金招聘Python工程师标准>>> 在手机市场领域,Google表现很抢眼,毫无疑问,Android 至今在移动操作系统的市场份额占据绝对领先地位,但是 Android 仍然存在不少问题,碎片化问题严重࿰…

美亚Kindle排名第一的Python 3入门书,火遍了整个编程圈
“大多数优秀的程序员从事编程工作,不是因为期望获得报酬或得到公众的称赞,而是因为编程是件有趣的事儿。”——林纳斯托瓦兹(Linus Torvalds)在美国亚马逊,有一本书的影响力超高的Python入门书,Kindle版本…

seo笔记——搜索显示
一、搜索显示的几个列表形式 1、经典搜索结果列表: 用户搜索时,出现的第一行都是网页的标题(title),颜色醒目的部分是用户搜索的相关内容; 使用百度搜索则第二第三行是网页的说明内容(Des…

【FFmpeg】函数详解(一)
FFmpeg函数详解 一、错误码相关1、AVERROR2、av_strerror3、其他错误码解释二、编解码1、获取编解码器2、申请、释放上下文环境3、打开编码器avcodec_open24、分配一个 AVFrame:av_frame_alloc5、av_frame_get_buffer6、avformat_alloc_output_context27、avformat_new_stream…

第5章 图像分类的数据集
第5章图像分类的数据集 在我们实际进入到代码编写阶段来构建分类器之前,我们首先回顾下在本书中用到的数据集。一些数据集可理想的获得大于95%的准确率,另一些则还在开放研究阶段,还有一些是图像分类竞赛的部分数据集。 现在就对这些数据集进…

一根烟上热搜,先让AI看看你的肺
作者 | 李翔,国内某互联网大厂AI民工,前携程酒店图像技术负责人,计算机视觉和深度学习重度爱好者,在ICCV和CVPR等会议上发表论文十余篇;马杰超,任职于某医学图像创业公司,医学图像AI领域资深从业…

mongodb主从设置,capped collections等常用命令集合
############### Mongodb 主 <> 从切换的时候要删除 ############## ############### use local ############################### ############## db.sources.remove() ############################### # 主#/data/mongodb-linux-x86_64-2.0.2/bin/mongod --por…

调侃吴恩达,Diss特斯拉,吐槽OpenAI…《AI寒冬将至》作者点评2019“AI小丑秀”...
作者 | Piekniewski编译 | 夕颜出品 | AI科技大本营(ID: rgznai100)导读:去年,一篇《AI寒冬将至》的文章在AI圈爆红,作者观点鲜明地指出AI领域出现泡沫,并预言AI寒冬将会到来,引起巨大争议。一年…

max_semi_space_size 设置值与实际值不一致的原因分析
问题由来 因为业务的需求,某 Node.js 性能平台用户需要调节新生代大小,Node.js 的启动参数里面的max_semi_space_size可以设置新生代堆空间的大小。 node --v8-options | grep max_semi -A 3 -B 2--min_semi_space_size (min size of a semi-space (in M…

【FFmpeg】函数详解(二)
FFmpeg函数详解 9、av_dump_format10、avio_open11、avformat_write_header12、avcodec_send_frame13、avcodec_receive_packet9、av_dump_format 原型: void av_dump_format(AVFormatContext *ic, int index, const char *url, int is_output);说明: 打印输入输出格式的详…

【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍
游戏开发笔记二十七 Direct3D 11入门级知识介绍作者:毛星云 邮箱: happylifemxy163.com 期待着与志同道合的朋友们相互交流上一节里我们介绍了在迈入DirectX 11的学习旅程之后第一个demo创建的全过程。但由于知识衔接的需要,我们的第一…

英特尔蚕食AMD和NVIDIA?
作者 | Daniel Newman译者 | 苏本如,责编 | 郭芮转载自CSDN(ID:CSDNnews)【编者按】一个鲜为人知的事实是,英特尔凭借其在集成显卡上的领先地位,持续占据着电脑显卡市场的头把交椅。但是随着过去两年中首席…

使用phpStudy运行伊人集项目
1.首次运行时,需要把system/config/install.look.php以及system/config/database.php(后面这个文件可以先不删除,若是安装过程中数据库报错,再来删除它)删除2.若只有一个项目版本需要运行的话,可以把项目拷…

【FFmpeg】函数详解(三)
FFmpeg函数详解 14、av_write_frame15、av_interleaved_write_frame16、av_write_trailer17、avio_close18、av_image_get_buffer_size19、av_image_fill_arrays20、av_rescale_q21、视频格式尺寸转换22、音频重采样:23、将像素格式由索引值转换成字符串24、MD5相关25、avio_h…

php时区问题导致php页面显示不正常
cacti安装成功,但报时区错误,已经做了如下操作,后来发现如上设置还是有此问题 将 /usr/local/php5/php.ini文件内修改如下 date.timezone asia/Chongqing 遂解决之。 转载于:https://blog.51cto.com/itnihao/916148

【FFmpeg】降低转码延迟方法、打印信息详解、refcounted_frames详解
文章目录 1、FFmpeg降低转码延迟方法2、ffmpeg打印信息:源码里打印的这段是这样定义的3、解码时 refcounted_frames 标志的使用3.1 启动该标志3.2 解码后,记得释放3.3 详解1、FFmpeg降低转码延迟方法 关闭sync-lookahead降低rc-lookahead,但别小于10,默认是-1降低threads(比…

速度提升270倍!微软和浙大联合推出全新语音合成系统FastSpeech
作者 | 谭旭转载自微软研究院AI头条(ID: MSRAsia)【编者按】目前,基于神经网络的端到端文本到语音合成技术发展迅速,但仍面临不少问题——合成速度慢、稳定性差、可控性缺乏等。为此,微软亚洲研究院机器学习组和微软&a…

Linux —— 目录(文件夹)及文件相关处理指令
可参考这篇文章:https://mp.weixin.qq.com/s?__bizMzU4MTU3OTI0Mg&mid2247484269&idx1&sn38869a1df48d8cdb6278518b51601ce0&chksmfd443be8ca33b2fe937531e061c406786f0e587d8ab10ff15594442265658d08cd8271ae52c5&mpshare1&scene23&s…

工业级3G路由器
宏电工业级3G路由器的特点,工业级标准设计,适应零上60度的高温,零下30度的低温,存工业级制造工艺,适应交通,环保,矿山,电力等工业级应用,欢迎来电索取解决方案,沈阳宏电办事处 刘冰 15940556464 024-31296279 限东三省地区.转载于:https://blog.51cto.com/lbing/916441

【FFmpeg】AVOutputFormat/AVInputFormat 成员变量 flags 总结
1、分类 AVOutputFormat中flags允许的值: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS, AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_ALLOW_FLUSH, AVFMT_TS_NONSTRICT, AVFMT_TS_NEGATIVEAVInputFormat中flags允许的值…