窝牛号

PaddlePaddle飞桨深度学习实现手写数字识别任务——模型识别篇

上期文章我们使用PaddlePaddle进行了手写数字的神经网络训练,我们就使用预训练好的模型进行手写数字识别,不用猜,效果估计也不太好,这个我们后期进行优化

百度深度学习平台PaddlePaddle——飞桨基础知识介绍

PaddlePaddle——飞桨深度学习实现手写数字识别任务

step 1:神经网络的搭建

首先我们还按照上期的代码进行神经网络的搭建

定义mnist数据识别网络结构 class MNIST(paddle.nn.Layer): def __init__(self): super(MNIST, self).__init__() 定义网络结构的前向计算过程 def forward(self, inputs): outputs = self.fc(inputs) return outputsstep 2:图片预处理 从img_path中读取图像,并转为灰度图 im = Image.open(img_path).convert(&39;) plt.imshow(im,cmap=&39;) plt.show() 图像归一化,保持和数据集的数据范围一致 im = 1 - im / 255 plt.imshow(im) plt.show() return im

这里我们加载一张照片,并转换到灰度空间,这里需要提醒一下,前期有小伙伴私信问为啥自己显示的图片是黄底的,代码里面plt.imshow(im,cmap=&39;)若不补充cmap=&39;参数就会显示黄底的

step 3:图片中数字的识别39;model/mnist.pdparams&39;image/minist.jpg& 加载模型参数 param_dict = paddle.load(params_file_path) model.load_dict(param_dict) 39;result& 预测输出取整,即为预测的数字,打印结果 print(&34;, result.numpy().astype(&39;))

这里我们初始化模型,并加载预训练的模型与需要识别的图片,并使用param_dict = paddle.load(params_file_path),model.load_dict(param_dict)加载模型识别,使用result = model(paddle.to_tensor(tensor_img))函数进行图片的识别

result Tensor(shape=[1, 1], dtype=float32, place=CPUPlace, stop_gradient=False, [[2.51147366]]) 本次预测的数字是 [[2]]

这里我们输入一个0的图片,模型识别出2,这个也对应了我们的猜想,毕竟单层的神经网络并不能完全识别出数字的特征,后期我们将进行一步一步的优化

往期文章精选:

利用pytorch CNN手写字母识别神经网络模型识别多手写字母(A-Z)

Pytorch利用CNN卷积神经网络进行多数字(0-9)识别

使用EMNIST数据集训练第一个pytorch CNN手写字母识别神经网络

使用MNIST数据集训练第一个pytorch CNN手写数字识别神经网络

本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除

窝牛号 wwww.93ysy.com   沪ICP备2021036305号-1