pytorch CNN 实现手写板识别

PyTorch--卷积神经网络(CNN)模型实现手写数字识别 今天要介绍的这段代码是一个使用PyTorch框架实现的卷积神经网络(CNN)模型,用于对MNIST数据集进行分类的示例。MNIST数据集是手写数字识别领域的一个标准数据集,包含0到9的灰度图像。导入必要的库:导入PyTorch、PyTorch神经网络模块、torchvision(用于处理图像数据集)和transforms(用于图像预处理)。设备配置:设置模型运行的设备,优先使用GPU(如果可用),否则使用CPU。超参数设置:定义了训练迭代的轮数(num_epochs)、类别数()、批次大小( 阅读详情

pytorch CNN 实现手写板识别

前面介绍了 CNN : 一般 涉及 卷积 ,池化 ,单位化,激活函数

cnn 代码实现

import  torch
import   torch.nn  as  nn
from  torch.autograd  import  Variable

import  torch.utils.data  as  Data

import   torchvision


class  CNN(nn.Module):
    def __init__(self):
        super(CNN,self).__init__()
        #[1,28,28]  ==>[16,28,28]
        #torch 有现成的卷积方法 
        # in_channels一张图片 只有一个通道 一般会将图片转换成 黑白图
        #out_channels  16 个特征 会卷积出 16 个图片出来
        #kernel_size 特征 5*5
        #stride 卷积的时候每次移动一个像素
        self.conv1 = nn.Conv2d(in_channels=1,
                               out_channels=16,
                               kernel_size=5,
                               stride=1,
                               padding=2)
                              
        #激活函数
        self.relu1 = nn.ReLU()

        # [16,28,28]  ==>[16,14,14]
        #池化
        self.maxPool1= nn.MaxPool2d(kernel_size=2)


        #[16,14,14] ==>[32,14,14]
        self.conv2 = nn.Conv2d(in_channels=16,
                               out_channels=32,
                               kernel_size=5,
                               stride=1,
                               padding=2)
        #self.relu2 = nn.ReLU()

        # [32,14,14] ==>[32,7,7]
        self.maxPool2= nn.MaxPool2d(kernel_size=2)
        # 预测出 10 个结果出来的概率
        #比如[ n , 32*7*7 ] * [ 32*7*7 ,10] ===>[n,10] 求出 N 张图片 每个图片从 0--9 个数字概率
        self.full = nn.Linear(32*7*7,10)
        #采用的损失函数
        self.optimizer = torch.optim.Adam(self.parameters(),lr=LR)
        self.lossFunc= nn.CrossEntropyLoss()
    #调用CNN 的时候执行
    def  forward(self,x):
        #卷积  激活 池化
        result= self.conv1(x)
        result = self.relu1(result)
        result = self.maxPool1(result)
        #卷积  激活 池化
        result = self.conv2(result)
        result = self.relu1(result)
        result = self.maxPool2(result)
        #reshape = batchsize ,32*7*7 重新调整 大小
        result= result.view(x.size(0),-1)
        #全链层
        result = self.full(result)

        return   result

    #损失函数  预测值  真实值 
    def  lossFunction(self,predict ,batchY):
        #预测值   和  真实值 差
        loss = self.lossFunc(predict,batchY)
        #先将记录清零
        self.optimizer.zero_grad()
        #向后做残差
        loss.backward()
        print("loss==",loss.data)
        #重新调整参数
        self.optimizer.step()


以后在用到CNN 直接调整里面的参数 就可以了。

用 手写板 验证 CNN


#下载数据  torchvision 里面自带 手写板数据

#一次性传递多少个图片 给CNN
BATCH_SIZE=50
#学习率
LR= 0.001
#是否下载 第一次启动下载  第二次以后 就不用
DOWNLOAD=Ture

#用CNN 来预测还是训练
TRAIN =True

#下载训练数据   每张图片 [28,28]的一个矩阵
tranData =  torchvision.datasets.MNIST(
    root="d:/mnist/",
    train=True,
    transform=torchvision.transforms.ToTensor(),
    download=DOWNLOAD

)

#下载测试数据
testData = torchvision.datasets.MNIST(
    root="d:/mnist/",
    train=False
)

#加载数据到内存
trainLoader =  Data.DataLoader(dataset=tranData,
                               batch_size=BATCH_SIZE,
                               shuffle=True
                               )

# 为了节约时间, 我们测试时只测试前2000个
# shape from (2000, 28, 28) to (2000, 1, 28, 28), value in range(0,1)

test_x = Variable(torch.unsqueeze(testData.test_data, dim=1), volatile=True).type(torch.FloatTensor)[:2000]/255.
test_y = testData.test_labels[:2000]



myCNN= CNN()


if(TRAIN):
   # 数据训练3轮 
    for  epoch in  range(3):
      for  step  ,(x,y) in enumerate(trainLoader):
            #[50, 1, 28, 28]
            trainX = Variable(x)
            tranY = Variable(y)
            #预测数据
            predict= myCNN(trainX)
            #backforward  修正参数
            myCNN.lossFunction(predict,tranY)
    #保存参数到 硬盘
    torch.save(myCNN.state_dict(), "d:/mnist/cnn.pkl")
else:

    #从硬盘加载参数
    myCNN.load_state_dict(torch.load("d:/mnist/cnn.pkl"))




#预测10个结果概率 
testOut = myCNN(test_x[:20])

print(testOut)
#找到一个概率最大的 最为结果
testPredict = torch.max(testOut,1)[1]

print(testPredict,test_y[:20])

输出结果:
tensor([7, 2, 1, 0, 4, 1, 4, 9, 5, 9, 0, 6, 9, 0, 1, 5, 9, 7, 3, 4]) tensor([7, 2, 1, 0, 4, 1, 4, 9, 5, 9, 0, 6, 9, 0, 1, 5, 9, 7, 3, 4])


深度学习之基于Pytorch卷积神经网络手写公式识别计算系统 一、项目背景随着信息技术的快速发展,人们越来越多地利用电子设备来记录和处理信息。手写公式识别计算系统作为智能信息处理领域的一个分支,旨在将用户手写输入的公式转化为计算机可读的格式,并自动进行计算。这一系统在教育、科研、工程等领域具有广泛的应用前景。然而,手写公式的多样性和复杂性给识别计算带来了巨大挑战。因此,本项目采用深度学习技术,特别是基于PyTorch的卷积神经网络(CNN),来开发一个高效、准确的手写公式识别计算系统。二、项目目标。 阅读详情

相关推荐

PyTorch实现手写数字识别:CNN模型与毕业设计实战

卷积神经网络(CNN)是计算机视觉领域的核心算法,通过局部感知和权值共享机制高效提取图像特征。在图像分类任务中,CNN凭借其层次化特征提取能力,在MNIST等基准数据集上能达到99%以上的准确率。PyTorch框架因其动态计算图和Pythonic设计,成为实现CNN模型的理想选择,特别适合深度学习入门和毕业设计开发。本文以手写数字识别系统为例,详解从数据增强、模型调优到PyQt5界面集成的全流程实践,其中数据预处理环节的RandomRotation和RandomAffine等增强策略能显著提升模型泛化能力。

weixin_42571738的博客 304

python pkl是什么类型的文件?怎么来打开它?(使用numpy和pickle都能打开)

什么是pkl文件: 1)python中有一种存储方式,可以存储为.pkl文件。 2)该存储方式,可以将python项目过程中用到的一些暂时变量、或者需要提取、暂存的字符串、列表、字典等数据保存起来。 3)保存方式就是保存到创建的.pkl文件里面。 4)然后需要使用的时候再 open,load。 如何打开? # 两种方法都能打开 import pickle import numpy as np f...

Dontla的博客 8万+

深度学习手写识别实战:CNN、RNN与CTC原理及PyTorch实现

光学字符识别(OCR)是人工智能领域的基础技术,而手写识别因其字形多变、字符粘连和笔画随意性,长期被视为最具挑战性的子问题。传统方法依赖人工特征设计与字符切分,泛化能力有限;深度学习的引入从根本上改变了这一局面。卷积神经网络(CNN)自动提取视觉特征,循环神经网络(RNN)建模序列上下文,CTC损失函数则巧妙解决输入输出长度不对齐的难题,三者结合的CRNN架构成为端到端手写识别的经典范式。该技术广泛应用于票据识别、笔记电子化、古籍数字化等场景。本文以技术演变为线索,梳理核心原理,并基于PyTorch提供从手

weixin_34268843的博客 433

迁移学习(含代码示例)

先安装fasttext 文本分类种类 二分类: 文本被分类两个类别中, 往往这两个类别是对立面, 比如: 判断一句评论是好评还是差评. 单标签多分类: 文本被分入到多个类别中, 且每条文本只能属于某一个类别(即被打上某一个标签), 比如: 输入一个人名, 判断它是来自哪个国家的人名. 多标签多分类: 文本被分人到多个类别中, 但每条文本可以属于多个类别(即被打上多个标签), 比如: 输入一段描述, 判断可能是和哪些兴趣爱好有关, 一段描述中可能即讨论了美食, 又太讨论了游戏爱好.fasttext_data文

GodGump的博客 6589

Python手写数字识别系统:PyTorch+CNN+GUI完整工程实战

手写数字识别是深度学习中经典的图像分类入门任务,也是检验工程落地能力的典型场景。本文基于MNIST数据集,以Python和PyTorch为技术栈,讲解了卷积神经网络(CNN)如何通过卷积、池化与全连接层提取图像特征,并实现高达99%的识别准确率。从模型训练、数据预处理到使用Tkinter构建可视化GUI手写板,完整呈现了一套可运行的工程链路。无论你是深度学习初学者还是需要快速交付课程设计、毕业设计的开发者,都能从中理解数据分布对齐、预处理一致性、模型持久化等关键工程细节,并可直接复现或二次开发。该教程还覆盖

weixin_27256197的博客 347

pythorch mnist手写数字 CNN MLP LSTM 识别

利用pythorch 实现kaggle比赛中mnist的识别,准确率99+%,运用CNN MLP LSTM等多种方法,内含数据和文档,环境配置方法,代码有注释,解压后可直接运行,适合初学者!

【NLP】【七】fasttext源码解析

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34319817的博客 506

基于cnn的手写识别数据集

基于cnn的手写识别,包含对应的数据库,直接在matlab中运行即可!

pytorch手写数字识别(CNN)

数据集是 MNIST手写数字 数据集,自取网络结构为两层卷积两层线性层# 定义数据读取类 ------------------------------------------ class MNISTDataset(Dataset) : def __init__(self , data_type) : self . data_type = data_type if self . data_type not in [ 'train' , 'test' ] : raise Exception('数据集类型有误。

什么都干的派森 1949

Qt+WebAssembly学习笔记(六)win10+Qt6.4.0rc1开发环境搭建

前言:因项目的缘故,笔者有段时间没测试了,官方也修复了很问题,笔者今天记录下最新版本环境搭建。

aggs1990的专栏 3765

Excel VBA+Adobe Acrobat Pro PDF发票识别全流程(附避坑指南)

本文详细介绍了如何利用Excel VBA与Adobe Acrobat Pro的API接口,构建一套企业级PDF发票智能识别与处理系统。内容涵盖从环境配置、核心文本提取原理、数据解析清洗到工程化脚本设计的全流程,并针对密码区干扰、不征税发票等常见问题提供避坑指南,旨在帮助财务人员和开发者实现高效、精准的财务数据处理自动化。

weixin_29207439的博客 347

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:卷

KissTooTrue的博客 1936

opencode 完全指南:终端AI编程助手的安装、模型配置与实战

在AI编程助手快速迭代的当下,开发者对终端环境下的自动化编码需求愈发强烈。以自然语言驱动代码修改、命令执行与测试验证,已成为提升工程效率的重要方向。这类工具普遍遵循模型无关的设计原则,通过兼容OpenAI格式的接口接入多种大模型,并借助多会话管理、Skills、Memory等机制实现可审查、可干预的闭环流程。从安装配置到日常使用,再到apihub网关与免费模型的接入,终端AI助手在代码审查、跨文件重构、浏览器自动化验证等场景中展现出独特价值。本文聚焦opencode这一开源CLI工具,详细拆解其核心定位、模

weixin_33868027的博客 417

深度学习实战 | 卷积神经网络LeNet手写数字识别(带手写板GUI界面)

本文将介绍如何使用LeNet卷积神经网络实现手写数字识别,并使用Pytorch实现LeNet手写数字识别,使用PyQt5实现手写板GUI界面,使用户能够通过手写板输入数字并进行识别。通过本文的实践,你可以学到如何使用LeNet卷积神经网络实现手写数字识别,以及如何结合GUI开发一个手写板界面,更直观地进行数字识别交互。这个例子中,用户可以在手写板上写数字,点击识别按钮后,程序将手写板上的数字送入LeNet模型进行识别,并在界面上显示识别结果。

摘星阁 3535

WorkBuddy 实战:从聊天窗口到 AI 工作台,打造个人自动化助理

大模型时代,对话式 AI 常被当作高级搜索框,难以沉淀为生产力。其根源在于上下文断裂——每次对话都从零开始。AI Agent 的核心原理是通过状态保持、工具调用与流程复用,将临时交互固化为可重复的协作机制。WorkBuddy 作为个人 AI 工作台,以 Agent + Skill + 工作流架构解决该问题:Skill 封装操作手册,工作区沉淀知识上下文,自定义指令约束输出风格。这种设计让周报生成、会议纪要、文档初稿、专利检索辅助等重复劳动实现流程化自动产出。掌握 WorkBuddy 怎么用,关键在于从自己重

weixin_33834910的博客 329

AI代码标注专家Prompt指令的最佳实践

AI代码标注专家 Prompt 可作为项目级别提示词使用,专门负责为 AI 生成的代码添加特定的注释标记,然后基于 Node 脚本可以初步统计出 AI 代码占比。

💻 Code:TypeScript / Engineering 🤖 AI:Prompt Optimization / Context Memory / Coding Agents 614

基于PyTorch的MNIST手写数字识别(配置手写板使用)

本项目实现了一个基于PyTorch的MNIST手写数字识别系统,使用卷积神经网络(CNN)模型进行训练和评估。系统包含完整的训练、评估和可视化界面功能,能够识别0-9的手写数字,并提供了友好的GUI界面进行实时手写识别。

soejjdiwjssundo的博客 1276

Linux系统下奥比中光Astra Pro相机SDK部署与避坑指南

本文详细指导了在Linux系统下部署奥比中光Astra Pro深度相机SDK的全过程,涵盖系统准备、SDK安装、设备权限配置及常见问题排查。重点解析了USB设备规则配置这一关键步骤,并提供了Python与C++项目的集成方法,旨在帮助开发者快速完成相机配置,避免常见陷阱。

weixin_28455801的博客 299

Pytorch 手写数字识别 深度学习基础分享

本篇是一次内部分享,给项目开发的同事分享什么是深度学习。用最简单的手写数字识别做例子,讲解了大概的原理。

金色旭光的博客 1259

蓝牙攻防实战指南:低功耗蓝牙

Bluetooth Low Energy(也称Bluetooth Smart)是经典蓝牙(Bluetooth Classic)的演进版本,设计目标是实现极低功耗,适用于无需频繁更换电池的设备,如智能手环、健康监测器、蓝牙标签等。Bluetooth Low Energy 是一项极具前景的无线通信技术,它以极低的功耗实现了短距离高效通信,广泛应用于智能设备和物联网领域。然而,其简化的协议结构和配对机制也带来了不小的安全挑战。

idlecloud0105的博客 682

2ED2410-EM:12v / 24v智能模拟高侧MOSFET栅极驱动器

12v / 24v智能模拟高侧MOSFET栅极驱动器。2ED2410-EM具有输入CPP和CPN的电压比较器。该比较器可用于基于任何模拟电压触发SAFESTATE模式,甚至是外部电压2ED2410-EM。CPP为比较器的正输入,CPN为负输入。VcPREF可以通过微控制器进行调节,也可以通过板载电源芯片(如英飞凌SBC)或简单的分压器在限制VcP(REF)内进行固定,以保持稳定性。使用此比较器允许2ED2410-EM进入SAFESTATE并独立于微控制器关闭MOSFET。

让学习成为一种习惯 2188

python深度学习手写平台 PyTorch+CNN+手绘板+上传识别 MNIST双输入实时识别 毕业设计源码✅

python深度学习手写平台 PyTorch+CNN+手绘板+上传识别 MNIST双输入实时识别 毕业设计源码✅

q_3375686806的博客 1143

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Python手写数字识别系统毕设实战:PyTorch+CNN+MNIST完整源码,附图形界面手写板与训练可视化,毕业答辩必备

到这里,一个完整的"手写数字识别系统"就从头到尾做完了:MNIST 数据集加载 → CNN 模型定义 → 训练与评估 → 可视化分析 → Tkinter 图形界面实时识别。期间拿到了真实可靠的数据:训练 15 轮、测试集准确率 99.68%、混淆矩阵清晰展示出数据增强后错误被摊薄、4/9 混淆大幅缓解这类有分析价值的现象。model.py:卷积神经网络定义与加载train.py:数据加载、数据增强、训练、评估、可视化gui.py:Tkinter 手写画板(平滑笔画)+ 实时识别 + 输入预览。

weixin_55008315的博客 297

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

python深度学习手写平台 PyTorch+CNN+手绘板+上传识别 MNIST双输入实时识别

本项目基于PyTorch框架和CNN卷积神经网络算法,开发了一个离线手写数字识别系统。技术核心包括:使用MNIST数据集训练30轮,测试准确率达99%以上;支持数据增强提升模型鲁棒性;提供手绘板和图片上传双输入模式,通过Flask实现REST接口,单图推理时间小于100ms。系统具有开源、轻量、部署简单等特点,既可作为深度学习教学案例,也可应用于在线考试、嵌入式终端等商业场景。项目代码结构清晰,包含完整的训练、服务和交互模块,5分钟即可本地运行,适合作为毕业设计或扩展开发。

QQ80213251的博客 436

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

数据集MNIST手写体识别 pyqt5+Pytorch/TensorFlow

以MNIST数据集为基础,旨在通过TensorFlow和PyTorch两个主流深度学习框架,构建并训练能够识别0到9手写数字的神经网络模型。利用TensorFlow的Keras API,自定义了复杂的卷积神经网络结构。通过调整网络层数、卷积核大小和激活函数等参数,不断优化模型性能,以达到更高的识别准确率。PyTorch在构建和训练神经网络模型方面的应用,并比较了两个框架在性能和易用性上的差异。尝试构建VGGnet16的结构,利用pyqt5实现了交互的手写数字体识别。

linghyu的博客 1553
上一篇: CNN原理真是小儿科?
下一篇: 一文看懂RNN
ithinking110
博客等级 码龄14年 54粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值