搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 百度校园 > 一文教你用paddlepaddle实现猫狗分类

一文教你用paddlepaddle实现猫狗分类

百度校园 2020-06-18
点击菜单栏“粉丝福利”
拿小度,兑手机!


猫狗识别:

一文教你用paddlepaddle实现猫狗分类

相关代码已经上传到aistudio

http://futuretimeline.net/21stcentury/2020-2029.htm

fork一下就可以运行了


这里环境如下:

一文教你用paddlepaddle实现猫狗分类

1

数据集的准备



一文教你用paddlepaddle实现猫狗分类


2

导入必要的包



一文教你用paddlepaddle实现猫狗分类


3

网络配置



网络搭建

在CNN模型中,卷积神经网络能够更好的利用图像的结构信息。下面定义了一个较简单的卷积神经网络。显示了其结构:输入的二维图像,先经过两次卷积层到池化层,再经过全连接层,最后使用softmax分类作为输出层。

池化是非线性下采样的一种形式,主要作用是通过减少网络的参数来减小计算量,并且能够在一定程度上控制过拟合。通常在卷积层的后面会加上一个池化层。paddlepaddle池化默认为最大池化。是用不重叠的矩形框将输入层分成不同的区域,对于每个矩形框的数取最大值作为输出

一文教你用paddlepaddle实现猫狗分类

在上述模型配置完毕后,得到两个fluid.Program:fluid.default_startup_program() 与fluid.default_main_program() 配置完毕了。

参数初始化操作会被写入fluid.default_startup_program()

fluid.default_main_program()用于获取默认或全局main program(主程序)。该主程序用于训练和测试模型。fluid.layers 中的所有layer函数可以向 default_main_program 中添加算子和变量。default_main_program 是fluid的许多编程接口(API)的Program参数的缺省值。例如,当用户program没有传入的时候, Executor.run() 会默认执行 default_main_program 。


4

模型训练与模型评估



(1)创建Executor

首先定义运算场所 fluid.CPUPlace()和 fluid.CUDAPlace(0)分别表示运算场所为CPU和GPU

Executor:接收传入的program,通过run()方法运行program。

(2)定义数据映射器

DataFeeder 负责将reader(读取器)返回的数据转成一种特殊的数据结构,使它们可以输入到 Executor

3)定义绘制训练过程的损失值和准确率变化趋势的方法draw_train_process

一文教你用paddlepaddle实现猫狗分类

4)训练并保存模型

Executor接收传入的program,并根据feed map(输入映射表)和fetch_list(结果获取表) 向program中添加feed operators(数据输入算子)和fetch operators(结果获取算子)。feed map为该program提供输入数据。fetch_list提供program训练结束后用户预期的变量。

每一个Pass训练结束之后,再使用验证集进行验证,并打印出相应的损失值cost和准确率acc。

一文教你用paddlepaddle实现猫狗分类

得到如下:

一文教你用paddlepaddle实现猫狗分类

模型训练了9次

将要预测的图片上传至文件夹

一文教你用paddlepaddle实现猫狗分类

代码并不是很完整,具体代码已经上传至aistudio

http://futuretimeline.net/21stcentury/2020-2029.htm

最后的预测结果展示

一文教你用paddlepaddle实现猫狗分类

一文教你用paddlepaddle实现猫狗分类

一文教你用paddlepaddle实现猫狗分类

一文教你用paddlepaddle实现猫狗分类

一文教你用paddlepaddle实现猫狗分类



原文链接:https://zhuanlan.zhihu.com/p/144297448

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《一文教你用paddlepaddle实现猫狗分类》的版权归原作者「百度校园」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注百度校园微信公众号

百度校园微信公众号:BaiduCampus001

百度校园

手机扫描上方二维码即可关注百度校园微信公众号

百度校园最新文章

精品公众号随机推荐