pyqt5手写板+pytorch卷积神经网络,实现手写数字识别软件

article/2025/7/19 8:12:25

卷积神经网络的结构

#定义网络结构
#不是le-net5的结构
class Net(nn.Module):def __init__(self):super(Net, self).__init__()# Sequential表示在搭建网络模型中要执行的一系列的步骤# Dropout中,p=0.5表示50%的神经元不工作# layer3:输出层 一般输出层中不需要加Dropout# Conv2d Conv:卷积 2d:表示2维的卷积# nn.Conv2d的几个参数# 1:输入通道数:1表示黑白的图片 彩色的话就是3# 32:输出通道数:表示要生成多少个特征图# 5:是卷积核的大小,(5,5)表示是5*5的窗口。可以只写一个5# 1表示步长。步长默认值就是1# 2表示在padding外面填2圈0 这个相当于samepadding# nn.MaxPool2d的几个参数# 第一个2是池化的窗口的大小是2*2 第二个2表示步长为2self.conv1 = nn.Sequential(nn.Conv2d(1,32,5,1,2),nn.ReLU(),nn.MaxPool2d(2,2))self.conv2 = nn.Sequential(nn.Conv2d(32,64,5,1,2),nn.ReLU(),nn.MaxPool2d(2,2))self.fc1 = nn.Sequential(nn.Linear(64*7*7,1000),nn.Dropout(p=0.5),nn.ReLU())self.fc2 = nn.Sequential(nn.Linear(1000,10),nn.Softmax(dim=1))# dim=1代表对第一个维度,计算概率值# 因为batch = 64# 所以fc1输出的是(64,10)# 所以dim=1,表示对第二个维度进行softmax求值def forward(self,x):# ([64,1,28,28])变成2维的数据->(64,784) 全连接层做计算,必须是2维的数据# x = x.view(x.size()[0],-1)# 但是卷积只能对四维的数据进行计算 ([64,1,28,28])# 64表示批次的数量,1表示通道数 28表示长宽x = self.conv1(x)x = self.conv2(x)#将原来x四维的数据,改变为2维的数据# (64,64,7,7)x = x.view(x.size()[0],-1)x = self.fc1(x)x = self.fc2(x)return x

代价函数是交叉熵,优化器是Adam,基于mnist数据集训练,30轮。

手写板的一部分代码,是借鉴的网络上的,然后我又将其魔改一番,最终形成了一个界面。运行好的效果,如下图所示。

识别结果是自动识别的,点击清空画板,画板就会清空,然后识别结果会变成99999。写下数字之后,便会自动识别。几乎是0延迟,预测结果非常的快! 


http://chatgpt.dhexx.cn/article/U0pIOJNf.shtml

相关文章

使用Dl4j训练的一个手写数字识别软件

DL4J使用之手写数字识别 最近一直在学习深度学习,由于我是Java程序员出身,就选择了一个面向Java的深度学习库—DL4J。为了更加熟练的掌握这个库的使用,我使用该库,以MNIST(http://yann.lecun.com/exdb/mnist/)手写数字数据集作为…

识别数字的软件有哪些?这几款识别数字工具安利给你

嘿,朋友们,你们有没有遇到过需要处理大量数字的情况,要是一个一个手动输入感觉十分麻烦,还会耗费大量时间和精力?别着急,现在数字识别的软件已经非常发达了,只需要一款好用的数字识别软件&#…

这款数字识别软件你知道吗

识别数字技术是指通过计算机自动识别数字的能力,通常采用数字图像处理和模式识别等技术进行实现。你别看这个技术好像很高大上,实际上现在已经有很多软件可以做到识别数字了,你知道识别数字的软件有哪些吗?今天我就为大家科普这项…

基于TensorFlow深度学习框架,运用python搭建LeNet-5卷积神经网络模型和mnist手写数字识别数据集,设计一个手写数字识别软件。

本软件是基于TensorFlow深度学习框架,运用LeNet-5卷积神经网络模型和mnist手写数字识别数据集所设计的手写数字识别软件。 具体实现如下: 1.读入数据:运用TensorFlow深度学习框架,下载并读入mnist手写数字识别数据集。 2.构建模型…

OCR手写数字识别什么软件好用?介绍一种

OCR是指用电子设备检查文本上的资料,然后对图像文件进行分析处理,从而获取文字及版面信息的过程。那OCR手写数字识别有好用的软件吗?当我们需要整理大量手写资料需要整理时,下面这两款软件就派上用场了。 软件一、我们可以使用识别…

识别数字的软件有哪些?自动识别数字的方法并不难

每个月月初时,作为销售助理的同事经常要整理一大堆数据,密密麻麻的数字看得他头晕眼花,特别是有些图片里的数字,一不小心就容易出错,酿成严重的数据错误。像平时我也会处理到一些数据图片,为了准确及时的整…

Unity 渲染YUV数据 ---- 以Unity渲染Android Camera数据为例子

1 背景 一般Unity都是RGB直接渲染的,但是总有特殊情况下,需要渲染YUV数据。比如,Unity读取Android的Camera YUV数据,并渲染。本文就基于这种情况,来展开讨论。 Unity读取Android的byte数组,本身就耗时&am…

图形学之Unity渲染管线流程分析

文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 表格制作excel教程http://www.tpyjn.cn/ 学习通http://www.tsgmyy.cn/ 下图是《Unity Shader 入门精要》一书中的渲染流程图; ApplicationS…

Unity渲染(二):Shader着色器基础入门之渲染Image图片

Unity渲染(二):图片渲染 通过这里,你会学习到怎么将一张图片渲染到UI的Image组件或者SpriteRenderer上,以及透明物体的渲染。 上一章:Unity渲染(一):着色器基础入门之纯色Shader 开发环境:Unity5.0或者更高 透明与不透明的最终效果 概述 1…

unity 渲染性能分析工具

目标 既然要优化,肯定要有个目标: pc上一般要求:一秒渲染60帧 移动端:一秒渲染30帧 这应该是最低的要求,如果游戏运行时,游戏帧率有变化,人眼能够明显的感觉到帧率下降。 优化的首要规则是找到…

unity 渲染环境设置

环境光分为两种,一种是环境光漫反射SH(球谐光照),另一种是环境光的镜面反射IBL(基于图像的渲染)。 光照的配置位置可以在 窗口 -> 渲染 -> 光照 打开。 环境照明对应的就是环境漫反射,环…

【流程向】模型复原与Unity渲染

项目简述 简单记录下学校里的一个项目,涉及到对/何家村遗宝/的模型复原,记录一下模型制作的全流程,同时涉及到Unity中一些优化画面的技术点。项目中渲染效果优先,没有怎么考虑性能。 流程:Blender高低模与展UV ->…

Unity中的物体渲染顺序

big seven 文章目录 前言 一、摄像机渲染 二、划分渲染队列 三、不透明物体的渲染 四、透明物体的渲染 五、UGUI元素的渲染 总结 前言 Unity中物体的渲染顺序 提示:以下是本篇文章正文内容,下面案例可供参考 一、摄像机渲染 Unity中的渲染顺序首先是…

Unity渲染流程概述

本篇的任务是回答:在Untiy的渲染流程中CPU和GPU分别做了什么。 渲染到设备屏幕显示的每一帧的画面,都经历几个阶段的加工过程: 应用程序阶段(CPU):识别出潜在可视的网格实例,并把他们及其材质…

Unity_渲染_灯光_前向渲染

前向渲染路径 前向渲染的作用和意义场景内有多个灯光,如何渲染每个灯光对物体的影响 前向渲染的作用和意义 前向渲染的作用:处理多光源的渲染,多光源渲染在unity 有2中渲染方式 前向渲染和延时渲染 .延时渲染主要用于主机,PC平台,不在本次讨论范围.主要来研究前向渲染前向渲染…

【Unity渲染】前向渲染和延迟渲染的区别及切换

前向渲染和延迟渲染通道的区别,主要在对于光源的处理上。 Unity默认是前向渲染通道,如果光源特别多,可以使用延迟渲染。 前向渲染 使用前向渲染路径时,被照亮的对象将在单独的通道中进行渲染。根据场景中的光源数量以及它们是否…

从FrameDebugger看Unity渲染

从FrameDebugger看Unity渲染(一) Unity如何渲染一个3D2D的游戏画面,今天通过FrameDebugger来看下Unity内置渲染管线的渲染策略, 后续再出一些URP渲染管线相关的文章。 对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白&#xff0c…

UnityShader入门精要——Unity中的渲染优化技术(二)

减少DrawCall数目 最常见的优化技术——批处理。实现原理为减少渲染每一帧所需的drawcall数目。使用同一个材质的物体可以一起处理。 优点缺点动态批处理切处理都是Unity 自动完成的,不需要我们自己做任何操作,而且物体是可以移动的限制很多&#xff0c…

Unity渲染顺序(2)

Camera 除了Screen Space - Overlay(屏幕空间覆盖模式)下的Canvas,场景中的其他物体需要渲染到屏幕中,都需要在指定的相机的绘制下。场景中可以创建多个相机,每个相机所拍摄的内容可能并不相同,在场景中有多相机的情况,不同的相机…

Unity渲染顺序(1)

添加排序层级 在Unity编辑器的右上角选择Layers 按钮,在下拉菜单中点击Edit Layers…选项,将显示当前Unity的Tags, Sorting Layers,和Layers 编辑选项。 Sorting Layers是Unity中对排序的层级的定义块,在面板中越靠后的排序层级越…