bp神经网络数字识别matlab_深度学习与卷积神经网络Pytorch手写数字识别-MINIST识别篇...

上期文章,我们分享了Pytorch手写数字的训练,当pytorch训练完成后,保存了训练的参数,方便本期使用预训练参数,进行手写数字的识别,我们准备一个手写数字的图片,可以自己在画图软件中,直接写个数字

aafc91f4e66c87134903e55e2a4da55f.png

手写数字

1、导入第三方库

1e6a8af8425463db4c926a611e584215.png

导入第三方库

2、建立神经网络

神经网络的建立与上期分享的训练篇完全一致,本期不再介绍代码意思,小伙伴们可以参考上期文章

161fb83d4c930fa58e3af02d16f8a851.png

CNN神经网络建立

534aff82aaa6a344febff267b3ec0325.png

训练CNN神经网络

3、处理输入图片

在数字图像处理中,针对不同的图像格式有其特定的处理算法。

PIL九种不同模式:1,L,P,RGB,RGBA,CMYK,YCbCr,I,F

一、模式“RGB”转换为其他不同模式

1、模式”1”

为二值图像,非黑即白。但是它每个像素用8个bit表示,0表示黑,255表示白。下面我们将lena图像转换为“1”图像。

img=img.convert(“1”)

2、模式“L”

为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度。在PIL中,从模式“RGB”转换为“L”模式是按照下面的公式转换:

img=img.convert(“L”)

L = R * 299/1000 + G * 587/1000+ B * 114/1000

9905d9b37458c47b97533760773f416c.png

图片处理

#38 导入自己的图片

#39 转灰度

#41 图片大小设计为28*28 ,因为minist也是28*28

#45 提取每列像素点

#46 提取每个像素点

# 这里的0 代表的是黑,1 代表白,但是minist数据0代表白,1代表黑

# pix = 1.0 - pix # 格式化成minist数据

#50 整形成28*28数据

# 52转换为pytorch tensor数据

b77730d3b795d78b1d5294a270b5945d.png

MINIST数据

4、使用神经网络预测手写数字

6ed0d7f64c0e27033869896ee3be13df.png

预测代码

# 56 使用一张图片,利用第三步的函数,把图片转换为pytorch能够使用的数据

# 57 新建一个CNN神经网络,我们采用CUDA来进行加速

# 58 pytorch使用load函数提取先前训练的神经网络(提取参数):可参考python一点通教程

# 59 使用eval函数展开model

# 60 把图片数据传入神经网络来进行预测

# 61 提取预测结果

5、查看运行预测结果

c7e4ba5621c46bc55dadec080344ef32.png

运行结果

我们输入的是5的图片,神经网络预测也是5

09c6ce71b6b1233e51c8182c0c418c95.png

神经网络

微@信搜索:启示AI科技,

体验不一样的AI工具

新增垃圾分类功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值