当前位置: 首页 > article >正文

ResNet18在MNIST手写数字数据库上的深度学习网络识别及Matlab仿真实验研究

ResNet18深度学习网络的mnist手写数字数据库识别matlab仿真MNIST手写数字识别算是深度学习界的Hello World了不过这次咱们用ResNet18来整点不一样的。别看ResNet本来是给ImageNet设计的拿来折腾下28x28的小图片还挺有意思。先说说数据准备这块Matlab处理起来比Python其实更省心digitDatasetPath fullfile(matlabroot,toolbox,nnet,nndemos,nndatasets,DigitDataset); imds imageDatastore(digitDatasetPath,... IncludeSubfolders,true,LabelSource,foldernames); [imdsTrain,imdsTest] splitEachLabel(imds,0.8,randomized);这里要注意个坑原始ResNet输入是224x224的RGB图。咱们得给灰度图加个戏——用augmentedImageDatastore强行拉伸尺寸虽然有点暴力但效果还行inputSize [224 224 3]; augImdsTrain augmentedImageDatastore(inputSize,imdsTrain,ColorPreprocessing,rgb); augImdsTest augmentedImageDatastore(inputSize,imdsTest,ColorPreprocessing,rgb);接下来构建网络骨架。Matlab自带的resnet18其实可以直接魔改但为了展示原理咱们手搓一个残差块function lgraph addBasicBlock(lgraph, blockName, numFilters, stride, inputLayerName) conv1_name [blockName _conv1]; bn1_name [blockName _bn1]; conv2_name [blockName _conv2]; bn2_name [blockName _bn2]; add_name [blockName _add]; % 残差路径 lgraph addLayers(lgraph, [ convolution2dLayer(3,numFilters,Stride,stride,Padding,same,Name,conv1_name) batchNormalizationLayer(Name,bn1_name) reluLayer(Name,[blockName _relu1]) convolution2dLayer(3,numFilters,Padding,same,Name,conv2_name) batchNormalizationLayer(Name,bn2_name) ]); % shortcut连接 if stride ~ 1 shortcut [ convolution2dLayer(1,numFilters,Stride,stride,Name,[blockName _shortcut_conv]) batchNormalizationLayer(Name,[blockName _shortcut_bn]) ]; lgraph addLayers(lgraph, shortcut); lgraph connectLayers(lgraph, inputLayerName, [blockName _shortcut_conv]); else lgraph connectLayers(lgraph, inputLayerName, add_name/in2); end % 合并残差 lgraph addLayers(lgraph, additionLayer(2,Name,add_name)); lgraph connectLayers(lgraph, bn2_name, [add_name /in1]); end这个残差块实现有几个精妙之处当stride不为1时需要1x1卷积调整维度否则直接相加。注意Matlab的加法层要处理两个输入源的连接这里用connectLayers手动指定连接关系比自动构建更靠谱。ResNet18深度学习网络的mnist手写数字数据库识别matlab仿真训练配置这块别照搬ImageNet那套学习率得调小点options trainingOptions(sgdm,... InitialLearnRate,0.1,... LearnRateSchedule,piecewise,... LearnRateDropPeriod,5,... MaxEpochs,15,... Shuffle,every-epoch,... Plots,training-progress,... ValidationData,augImdsTest);跑完15个epoch基本能到99.2%左右的准确率。测试时有个小技巧用classify函数直接输出预测结果[YPred,probs] classify(net,augImdsTest); YTest imdsTest.Labels; accuracy sum(YPred YTest)/numel(YTest)最后画混淆矩阵的时候建议用自定义颜色更直观cm confusionchart(YTest, YPred); cm.Title ResNet18在MNIST上的混淆矩阵; cm.ColumnSummary column-normalized; cm.RowSummary row-normalized; cm.FontSize 12;整个过程跑下来发现虽然用ResNet18处理MNIST有点杀鸡用牛刀但残差连接确实能加速训练收敛。有意思的是把图片强行拉伸到224x224后网络前几层的特征图会保留更多细节这对识别边缘尖锐的手写数字反而有帮助。不过要注意全连接层最后别用默认的1000输出记得改成10分类哦

相关文章:

ResNet18在MNIST手写数字数据库上的深度学习网络识别及Matlab仿真实验研究

ResNet18深度学习网络的mnist手写数字数据库识别matlab仿真MNIST手写数字识别算是深度学习界的"Hello World"了,不过这次咱们用ResNet18来整点不一样的。别看ResNet本来是给ImageNet设计的,拿来折腾下28x28的小图片还挺有意思。先说说数据准备…...

第十五届蓝桥杯c++B组:宝石组合

蓝桥杯真题&#xff1a;宝石组合#include<bits/stdc.h> // 万能头文件&#xff0c;包含了C所有标准库 using namespace std; // 自定义函数&#xff1a;求三个数的最小公倍数&#xff08;LCM&#xff09; int LCM(int x, int y, int z) {int maxx max(…...

香橙派 5 的 Ubuntu 22.04 安装中文输入法

在 Orange Pi 5 (RK3588S) 的 Ubuntu 22.04 (ARM64) 系统上安装中文输入法&#xff0c;推荐使用 Fcitx5 框架 拼音输入法&#xff08;对 ARM64 支持完善、资源占用低、社区维护活跃&#xff09;。以下是完整步骤&#xff1a;&#x1f527; 安装步骤&#xff08;终端执行&#…...

探索相场锂枝晶:形状、形核与生长的奇妙旅程

相场锂枝晶—形状形核生长枝晶在锂电领域&#xff0c;相场锂枝晶的研究可是个热门话题。锂枝晶的形状、形核与生长&#xff0c;直接关系到锂电池的性能与安全&#xff0c;就像建筑物的基石&#xff0c;影响着整个“锂电大厦”的稳固。 相场法简述 相场法是研究这类问题的得力工…...

《创业之路》-904- 人间清醒:故事在开始时,结局就已注定——从“党指挥枪”到华为“力出一孔”,破解组织分裂的千年宿命

我党成功的关键&#xff1a;在组织架构上&#xff0c;实现了党、政、军领导的分离的情况下&#xff0c;开创性的创造了"党"指挥军、"党"领导政&#xff0c;当党"到连部等制度&#xff0c;用“党”、思想和愿景协同军、政&#xff1b;在利益上&#xf…...

动态规划DP经典例题

一、定义 动态规划&#xff08;Dynamic Programming&#xff0c;简称 DP&#xff09;&#xff0c;一种将答案过程性存储的优化算法。核心就是“空间换时间”&#xff0c;通常可以理解为将算过一遍的答案存起来&#xff0c;下次计算时直接调用&#xff0c;省再次计算的时间。 二…...

交错并联BUCK变换器仿真之旅

交错并联BUCK变换器仿真 输入电压范围&#xff1a;36~70V&#xff1b;输出电压&#xff1a;28.5V&#xff1b;电压电流双闭环PI控制 可 单片机芯片型号&#xff1a;dsPIC33FJ32MC204 仿真平台&#xff1a;proteus8.9&#xff1b;编译软件&#xff1a;MPLAB X IDE在电源管理领域…...

【3GPP LTE】【Release 16】基于R16的eMTC GWUS(Group Wake-Up Signal)简要方案解析

摘要 LTE Cat-M(eMTC)作为物联网主流技术之一,其终端功耗是核心性能指标。3GPP在Rel-15/16中引入了唤醒信号(WUS)及其增强方案——组唤醒信号(GWUS),以进一步降低UE在空闲态下的功耗。本文将从背景原理、协议定义、实现方案到参数配置,系统阐述GWUS的简要技术方案,并…...

高频注入Simulink模型在50r/min工况下的电角度观测对比

此为高频注入simulink模型用于电角度观测。 模型为在d轴注入正弦波电压信号&#xff0c;经过低通&#xff0c;带通滤波器之后得到角度信息。 图一为高频注入观测电角度与实际电角度的对比在50r/min时的工况&#xff0c;图像表明观测电角度与实际电角度几乎重合。高频注入这玩意…...

MySql自用

一、语法 1.左连接 left join ...on... left左边的表的行全保留 2.子嵌套需要给别名 3.基础函数框架 Create Function 函数名(N INT) Returns Int 函数返回值类型 BeginReturn(--函数体); End N INT&#xff1a;入参&#xff0c;参数名为 N&#xff0c;类型为整数 INT&a…...

50个 filter相关的公共函数

这里给你50 个纯 JS、Vue3 通用、可直接复制使用的 filter 过滤工具函数&#xff0c;覆盖业务 99% 场景&#xff0c;包含&#xff1a;基础过滤、搜索、数组、对象、时间、真假值、去重、区间、正则、树形、空值、多条件等。 全部即拿即用&#xff0c;不依赖任何库&#xff01;5…...

ABAQUS有限元分析软件在隧道开挖模型中的应用:从CD法到CRD法、台阶法、双侧壁导坑法、环...

abaqus隧道CD法开挖&#xff0c;CD法开挖模型&#xff0c;step by step&#xff0c;过程演示&#xff1b;abaqus隧道CRD法开挖模型&#xff0c;abaqus隧道台阶法开挖&#xff0c;abaqus隧道双侧壁导坑法开挖&#xff0c;abaqus隧道环形开挖预留核心土法开挖&#xff0c;模型&am…...

Spring全局异常处理拦截器JWT令牌使用

一、全局异常处理使用步骤step1&#xff1a;创建异常处理器类注意&#xff1a;要确保能扫描到异常处理器类| RestControllerAdvice用于标识当前类为REST风格对应的异常处理器 ExceptionHandler(Exception.class)标识处理哪些异常RestControllerAdvice public class ProjectExce…...

手把手教你学Simulink——基于Simulink的滞环电压控制(Bang-Bang)Buck仿真

目录 手把手教你学Simulink ——基于Simulink的滞环电压控制(Bang-Bang)Buck仿真 一、问题背景 二、Buck 电路与滞环控制原理 1. Buck 主电路 2. 滞环控制逻辑 三、Simulink 建模步骤 第一步:搭建 Buck 主电路(使用 Simscape Electrical) 第二步:实现滞环控制器 …...

聊聊 GitHub CLI,以及我为什么不再手动配 SSH 了

传统认证方式到底哪里难受&#xff1f; 说实话&#xff0c;在接触 gh 之前&#xff0c;我一直觉得 GitHub 的认证这块挺烦的。不是说它不能用&#xff0c;而是用起来总有点别扭。 先说用 HTTPS 加令牌这条路。GitHub 要求你去网页端生成一串很长的字符串&#xff0c;复制下来&a…...

RHEL9.7虚拟机部署及后续优化

一、搭建环境前的准备工作首先在搭建环境前将安装包提前解压到电脑D:\RHCSA文件夹(一定不要下载到C盘&#xff01;&#xff01;&#xff01;&#xff09;二、创建新的虚拟机二、RHEL后续优化从阅读模式进入编辑者模式从编辑模式退回阅读模式按ESC键并按住shift&#xff1a;输入…...

前沿科技一——5G/6G

一、概念 1、5G&#xff1a;万物互联的基石 &#xff08;1&#xff09;定义与特点&#xff1a; 5G&#xff0c;即第五代移动通信技术&#xff0c;具有高速率、低时延和大连接的特点。它实现了多种新型无线接入的状态&#xff0c;是真正意义上的通信技术与互联网的融合。 &a…...

手把手教你学Simulink——基于Simulink的主从式多机器人协同搬运控制仿真

目录 手把手教你学Simulink ——基于Simulink的主从式多机器人协同搬运控制仿真 一、问题背景 二、系统建模基础 1. 协同搬运系统结构 2. 运动学约束 3. 动力学耦合 三、主从式控制架构设计 1. 主机器人控制律(阻抗控制) 2. 从机器人控制律(导纳控制) 四、Simuli…...

南北阁Nanbeige 4.1-3B行业方案:数据库课程设计智能辅导系统

南北阁Nanbeige 4.1-3B行业方案&#xff1a;数据库课程设计智能辅导系统 1. 引言&#xff1a;当课程设计遇上AI&#xff0c;会发生什么&#xff1f; 如果你是计算机专业的学生&#xff0c;大概率逃不过“数据库课程设计”这门课。我还记得当年自己做的那个“学生信息管理系统…...

乐高兼容ESP32对讲机:模块化嵌入式音频通信设计

1. 项目概述乐高兼容积木对讲机是一个面向教育与趣味交互场景的嵌入式音频通信系统&#xff0c;其核心设计目标是将专业级无线语音通信能力封装为可拼搭、可扩展、可定制的模块化硬件平台。该项目并非传统意义上的消费级对讲设备&#xff0c;而是一种融合了硬件工程实践、音频信…...

霜儿-汉服-造相Z-Turbo开发环境配置:从零开始搭建Python与PyTorch环境

霜儿-汉服-造相Z-Turbo开发环境配置&#xff1a;从零开始搭建Python与PyTorch环境 想自己动手研究“霜儿-汉服-造相Z-Turbo”这类AI模型的源码&#xff0c;或者想基于它做些二次开发&#xff0c;第一步也是最关键的一步&#xff0c;就是搭建一个稳定、兼容的开发环境。很多朋友…...

springboot基于网络爬虫的热门图书推荐系统

&#x1f345; 作者主页&#xff1a;Selina .a &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作。 主要内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据…...

springboot基于人脸识别的互联网课堂考勤系统

&#x1f345; 作者主页&#xff1a;Selina .a &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作。 主要内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据…...

Qwen2.5-VL-7B-Instruct新手入门:从安装到第一个图文对话

Qwen2.5-VL-7B-Instruct新手入门&#xff1a;从安装到第一个图文对话 1. 环境准备与快速部署 1.1 硬件要求 Qwen2.5-VL-7B-Instruct是专为RTX 4090显卡优化的多模态大模型&#xff0c;需要满足以下硬件条件&#xff1a; 显卡&#xff1a;NVIDIA RTX 4090&#xff08;24GB显…...

AudioSeal Pixel Studio代码实例:Python调用PyTorch实现水印生成与识别

AudioSeal Pixel Studio代码实例&#xff1a;Python调用PyTorch实现水印生成与识别 1. 音频水印技术概述 音频数字水印技术是一种将特定信息嵌入到音频信号中的技术&#xff0c;这些信息对人类听觉系统几乎不可感知&#xff0c;但可以通过专用算法检测提取。AudioSeal是Meta(…...

MT5 Zero-Shot参数组合实验报告:Temperature×Top-P对中文长句改写成功率影响

MT5 Zero-Shot参数组合实验报告&#xff1a;TemperatureTop-P对中文长句改写成功率影响 1. 引言 你有没有遇到过这种情况&#xff1a;手里有一批中文文本数据&#xff0c;想用来训练一个模型&#xff0c;但数据量太少&#xff0c;模型总是学不好&#xff1f;或者&#xff0c;…...

Pi0 Web界面效果实测:并发用户数压力测试(1/5/10用户响应性能曲线)

Pi0 Web界面效果实测&#xff1a;并发用户数压力测试&#xff08;1/5/10用户响应性能曲线&#xff09; 1. 引言&#xff1a;为什么需要关注Web界面的并发性能&#xff1f; 如果你正在评估或使用Pi0机器人控制模型的Web演示界面&#xff0c;一个很实际的问题可能会浮现在脑海&…...

Qwen2.5-72B部署教程:基于vLLM的GPU算力优化与显存压缩技巧

Qwen2.5-72B部署教程&#xff1a;基于vLLM的GPU算力优化与显存压缩技巧 1. 模型简介 Qwen2.5-72B-Instruct-GPTQ-Int4是通义千问大模型系列的最新版本&#xff0c;作为72B参数规模的指令调优模型&#xff0c;它在多个方面实现了显著提升&#xff1a; 知识量与能力增强&#…...

YOLO11新手实战:跟着步骤完成第一个目标检测项目

YOLO11新手实战&#xff1a;跟着步骤完成第一个目标检测项目 1. 项目介绍与环境准备 1.1 YOLO11简介 YOLO11是当前最先进的目标检测算法之一&#xff0c;以其快速、准确的特点在计算机视觉领域广受欢迎。这个镜像提供了完整的YOLO11运行环境&#xff0c;包含所有必要的依赖项…...

Wan2.1-umt5在创意写作中的突破:生成连贯长篇故事与复杂人物对话

Wan2.1-umt5在创意写作中的突破&#xff1a;生成连贯长篇故事与复杂人物对话 你有没有想过&#xff0c;让AI帮你写一个完整的故事&#xff1f;不是那种几百字的片段&#xff0c;而是有开头、有发展、有高潮、有结局&#xff0c;人物还会自己对话的长篇故事。听起来像是科幻小说…...