pyqt5手写板+pytorch卷积神经网络,实现手写数字识别软件
卷积神经网络的结构
#定义网络结构
#不是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延迟,预测结果非常的快!
pyqt5手写板+pytorch卷积神经网络,实现手写数字识别软件相关推荐
- 基于卷积神经网络的手写数字识别(附数据集+完整代码+操作说明)
基于卷积神经网络的手写数字识别(附数据集+完整代码+操作说明) 配置环境 1.前言 2.问题描述 3.解决方案 4.实现步骤 4.1数据集选择 4.2构建网络 4.3训练网络 4.4测试网络 4.5图 ...
- 读书笔记-深度学习入门之pytorch-第四章(含卷积神经网络实现手写数字识别)(详解)
1.卷积神经网络在图片识别上的应用 (1)局部性:对一张照片而言,需要检测图片中的局部特征来决定图片的类别 (2)相同性:可以用同样的模式去检测不同照片的相同特征,只不过这些特征处于图片中不同的位置, ...
- 卷积神经网络CNN 手写数字识别
1. 知识点准备 在了解 CNN 网络神经之前有两个概念要理解,第一是二维图像上卷积的概念,第二是 pooling 的概念. a. 卷积 关于卷积的概念和细节可以参考这里,卷积运算有两个非常重要特性, ...
- keras从入门到放弃(十三)卷积神经网络处理手写数字识别
今天来一个cnn例子 手写数字识别,因为是图像数据 import keras from keras import layers import numpy as np import matplotlib ...
- 【图像识别】基于卷积神经网络CNN手写数字识别matlab代码
1 简介 针对传统手写数字的随机性,无规律性等问题,为了提高手写数字识别的检测准确性,本文在研究手写数字区域特点的基础上,提出了一种新的手写数字识别检测方法.首先,对采集的手写数字图像进行预处理,由于 ...
- 卷积神经网络mnist手写数字识别代码_搭建经典LeNet5 CNN卷积神经网络对Mnist手写数字数据识别实例与注释讲解,准确率达到97%...
LeNet-5卷积神经网络是最经典的卷积网络之一,这篇文章就在LeNet-5的基础上加入了一些tensorflow的有趣函数,对LeNet-5做了改动,也是对一些tf函数的实例化笔记吧. 环境 Pyc ...
- 【FPGA教程案例100】深度学习1——基于CNN卷积神经网络的手写数字识别纯Verilog实现,使用mnist手写数字数据库
FPGA教程目录 MATLAB教程目录 ---------------------------------------- 目录 1.软件版本 2.CNN卷积神经网络的原理 2.1 mnist手写数字数 ...
- CNN卷积神经网络实现手写数字识别(基于tensorflow)
1.1卷积神经网络简介 文章目录 1.1卷积神经网络简介 1.2 神经网络 1.2.1 神经元模型 1.2.2 神经网络模型 1.3 卷积神经网络 1.3.1卷积的概念 1.3.2 卷积的计算过程 1 ...
- 基于卷积神经网络的手写数字识别、python实现
一.CNN网络结构与构建 参数: 输入数据的维数,通道,高,长 input_dim=(1, 28, 28) 卷积层的超参数,filter_num:滤波器数量,filter_size:滤波器大小,str ...
- 卷积神经网络与循环神经网络实战 --- 手写数字识别及诗词创作
卷积神经网络与循环神经网络实战 - 手写数字识别及诗词创作 文章目录 卷积神经网络与循环神经网络实战 --- 手写数字识别及诗词创作 一.神经网络相关知识 1. 深度学习 2. 人工神经网络回顾 3. ...
最新文章
- 牛!何恺明包揽2项ICCV 2017最佳论文奖!这位高考状元告诉你什么是开挂的人生
- vmware linux系统 ip,修改虚拟机上Linux系统的IP地址
- PHP文件打开读取操作
- 修改表字段类型长度_PG修改字段
- Python学习笔记(十三)
- 百度地图gif图标_华为手机误删照片怎么找回?手机怎么快速制作GIF动图
- 数据可视化组件Grafana详细解读--在Docker上安装Grafana管理平台
- ssis 列转换_SSIS包中的行采样转换和百分比采样转换
- vc6.0 debug 比 release 快??_全网稀缺的快应用开源项目熊宝儿歌故事QuickApp
- [Python] itertools.islice(iterable, start, stop[, step]) 创建迭代器并返回所选元素
- CICD详解(六)——SVN+Jenkins项目控制实战
- 爬取自己的csdn访问排名信息
- 《浪潮之巅》读书笔记(上)
- [高通MSM8909][Android7.1]电信卡信号优化
- winform直接控制云台_手持云台(稳定器)推荐,2020年双十一热销手机/相机手持云台(稳定器)推荐...
- Project免费视频教程来了
- pentaho java代码_将Pentaho移植到Eclipse_ee里运行
- linux下多节点之间免密钥访问
- 解决svn小乌龟没有绿勾
- 如何安装Eclipse WTP插件
热门文章
- 仿微信消息根据长按位置显示置顶删除功能菜单栏
- mysql phpmyadmin 文件夹_PHPMyadmin 配置文件详解(配置)
- AR/VR中使用Overlay提升清晰度
- mysql 关联删除_mysql如何删除关联表
- 3DMax插件安装方法介绍
- 11种防雷器电路原理详解!
- Vue使用指南(一)
- 后台找gridview里面的控件id_Windows系统有此缺陷:没设ID的,就是1001?+Windows编程如何解决...
- 电子台账:教程目录及软件下载
- 单招计算机主板图解,磐正系列主板刷bios图解新.pdf