做网站什么最重要,iis 网站打不开,广州网络推广营销公司,深圳网域官网说明
本篇博客主要是跟着B站中国计量大学杨老师的视频实战深度学习手写字符识别。 第一个深度学习实例手写字符识别
深度学习环境配置
可以参考下篇博客#xff0c;网上也有很多教程#xff0c;很容易搭建好深度学习的环境。 Windows11搭建GPU版本PyTorch环境详细过程
数…说明
本篇博客主要是跟着B站中国计量大学杨老师的视频实战深度学习手写字符识别。 第一个深度学习实例手写字符识别
深度学习环境配置
可以参考下篇博客网上也有很多教程很容易搭建好深度学习的环境。 Windows11搭建GPU版本PyTorch环境详细过程
数据集
手写字符识别用到的数据集是MNIST数据集Mixed National Institute of Standards and Technology databaseMNIST是一个用来训练各种图像处理系统二进制图像数据集广泛应用到机器学习中的训练和测试。 作为一个入门级的计算机视觉数据集发布20多年来它已经被无数机器学习入门者应用无数遍是最受欢迎的深度学习数据集之一。
序号说明发布方National Institute of Standards and Technology(美国国家标准技术研究所简称NIST)发布时间1998背景该数据集的论文想要证明在模式识别问题上基于CNN的方法可以取代之前的基于手工特征的方法所以作者创建了一个手写数字的数据集以手写数字识别作为例子证明CNN在模式识别问题上的优越性。简介MNIST数据集是从NIST的两个手写数字数据集Special Database 3 和Special Database 1中分别取出部分图像并经过一些图像处理后得到的。MNIST数据集共有70000张图像其中训练集60000张测试集10000张。所有图像都是28×28的灰度图像每张图像包含一个手写数字。
手写字符识别模型训练
可以参考下篇博客 深度学习手写字符识别训练模型
手写字符识别推理过程 选用训练好的模型output/params_yl.pth Pycharm运行AI_course/classify_pytorch/test_mnist.py文件输入的手写字符图片里的数字是“4”。 推理源码如下
import torch
import cv2
from torch.autograd import Variable
from torchvision import transforms
from models.cnn import Net
from toonnx import to_onnxuse_cuda False
model Net(10)
# 注意此处应把pth文件改为你训练出来的params_x.pthx为epoch编号
# 一般来讲编号越大且训练集train和验证集val上准确率差别越小的避免过拟合效果越好。
model.load_state_dict(torch.load(output/params_yl.pth))
# model torch.load(output/model.pth)
model.eval()
if use_cuda and torch.cuda.is_available():model.cuda()#to_onnx(model, 3, 28, 28, output/params.onnx)img cv2.imread(4_00440.jpg)
img cv2.resize(img, (28, 28))
img_tensor transforms.ToTensor()(img)
img_tensor img_tensor.unsqueeze(0)
if use_cuda and torch.cuda.is_available():prediction model(Variable(img_tensor.cuda()))
else:prediction model(Variable(img_tensor))
pred torch.max(prediction, 1)[1]
print(prediction)
print(pred)
cv2.imshow(image, img)
cv2.waitKey(0)
运行结果打印其张量可以看到用训练模型output/params_yl.pth的推理后结果输入一张手下字4最终推理结果是4打印出0-9数字的概率可以看到“4”的概率最高。 验证推理有效性为了验证其推理的真实性重新手写一个手写字符。注意得和训练集里的字符一样黑底白字形式。
手写“0”识别出来的是“0” 手写“3”识别出来的是“3” 手写“5”识别出来的是“7”可以看到识别错了。
验证推理结果额外手写了3个字符未使用测试集里的手写字符验证对了2个错了1个识别率有待提高可能需要更多次的epoch。
后续
下一篇章跟着视频进行手写字符识别的代码解析。