pytorch通过不同的维度提高cifar10准确率

news/2024/5/3 6:39:13/文章来源:https://blog.csdn.net/qq_36551453/article/details/130123908

这里写自定义目录标题

    • 通过模型
    • 通过优化器
    • 通过batchsize
    • 通过数据增强
    • 总结

当前网络的博客上都是普遍采用某个迁移学习训练cifar10,无论是vgg,resnet还是其他变种模型,最后通过实例代码,将cifar的acc达到95以上,本篇博客将采用不同的维度去训练cifar10,研究各个维度对cifar10准确率的影响,当然,此篇博客,可能尚不完全准确,如有不对,欢迎指正修改,此篇博客只作为本人实验参考的一部分

通过模型

首先,数据集上不变的情况(注意,图片size均为224,loss为交叉熵),第一种考虑的情况自然是模型,现在市场上的分类模型无非就是那么几种,从最小的mobile net到最后的resnet,resnext,desnet等(注意:此处模型不考虑transformer,只考虑cv模型,但是根据排行榜的情况看来,transformer的模型精度效果更高,https://paperswithcode.com/sota/image-classification-on-cifar-10),对于传统模型而言,肯定是模型越大,精度越高,下面我采用torchvision中,最大的两个resnet模型及变体进行了测试,在常规训练20轮后得到以下效果:

resnet152
在这里插入图片描述
resnext101_32x8d
在这里插入图片描述
这两个大模型精度确实高,但是模型本身参数量也很大,大概都在3,40g左右,对于像传统分类数据集而言,如果只追求精度,可以考虑这种情况,下面来试一下小型的模型的精度,以下是测试

vgg16
在这里插入图片描述
resnet18
在这里插入图片描述
moblienetv3
在这里插入图片描述
越小的模型同样精度也会稍差一点,如果是一般实验,resnet18看起来就够了

通过优化器

对于优化器而言,这里不采用过多的优化器测试,仅仅使用sgd和adam做测试,所以随便采用一种模型去常规训练即可得到结果

adam

在这里插入图片描述
sgd
在这里插入图片描述
对于cifar10而言,sgd优化器和adam优化器差异并不大,此次训练中,sgd略优于adam,但是不代表,其他超参数的调整,sgd一直略胜于adam

通过batchsize

由于训练时长原因,这里采用较为简单的resnet18作为测试,通过不同的batchsize,来反应平均loss和acc

batchsizelossacc
160.794.1
320.0994.8
640.0395.6
1280.0795.4

最后batchsize为64,当然,其他模型可能反应出不同的效果,上份数据不代表普遍性

通过数据增强

与batchsize一样,下面通过常规的几种数据增强方式,用resnet18作为测试,来反应平均loss和acc(注意:以下数据增强,将采用数据增强后,size统一转为244后,在进行归一化后的操作,也就是T.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]))

batchsizelossacc
T.Resize(256),T.CenterCrop(224),0.395.2
T.RandomGrayscale(p=0.25),0.0794.6
T.ColorJitter(hue=.05, saturation=.05),0.1193.8
T.RandomResizedCrop((64,64), scale=(0.8, 1)),0.0794.5

通过表格数据得知,通过放大后,在进行中心裁剪的操作,可以使模型更容易泛化,本人感觉,应该是图形放大后,图像的特征更适合resnet18了,当然了,上份数据不代表普遍性

总结

大模型的参数量高精度更高,对于一般的实验项目而言,想要获得最好的精度,我总结了一下,使用如下配置

backbone:resnet18(在不进行魔改的情况下)
batch_size: 64
数据增强:T.Compose(
[
T.Resize(256),
T.CenterCrop(224),
T.ToTensor(),
T.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])
优化器:sgd

经过50轮迭代训练后,达到如下准确率
在这里插入图片描述
96的准确率,如果将模型换成resnet50或者更大的模型,准确率将会进一步提升

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_285774.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

资本/车企持续加码的新赛道,谁将成为本土赢家?

随着汽车行业逐渐复苏,汽车厂商开始规划未来5年能促进销量的新技术,而AR-HUD就是被看好的技术之一。 Envisics创始人兼CEO Jamieson Christmas博士表示:我们几乎在与所有人合作,除了捷豹路虎、松下汽车系统外还有其他合作伙伴。此…

Vue3中readonly 与 shallowReadonly的使用区别?

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言readonly强行修改readonly:前言 readonly: 让一个响应式数据变为只读的(深只读)。 shallowReadonly: 让一个响应…

Docker Registry 本地镜像发布到私有库

本地镜像发布到私有库流程 是什么1 官方Docker Hub地址:https://hub.docker.com/,中国大陆访问太慢了且准备被阿里云取代的趋势,不太主流。2 Dockerhub、阿里云这样的公共镜像仓库可能不太方便,涉及机密的公司不可能提供镜像给公…

Java实现打印杨辉三角形,向左、右偏的平行四边形这三个图形代码程序

目录 前言 一、打印杨辉三角形 1.1运行流程(思想) 1.2代码段 1.3运行截图 二、向左偏的平行四边形 1.1运行流程(思想) 1.2代码段 1.3运行截图 三、向右偏的平行四边形 1.1运行流程(思想) 1.2代…

WebServer项目->计网知识补充

c大项目[WebServer项目]->计网知识补充1.网络结构模式C/S结构B/S结构2.MAC 地址3.IP 地址1)IP 地址编址方式2)A类IP地址3)B类IP地址4)C类IP地址5)D类IP地址(了解)6)特殊的网址7)子网掩码4.端口5.网络模型1)OSI 七层参考模型(Open System Interconnection&#xf…

HTML5 <img> 标签

HTML5 <img> 标签 实例 HTML5 <img>标签用于向网页中添加相关图片。 如何插入图像&#xff1a; <img src"smiley-2.gif" alt"Smiley face" width"42" height"42">尝试一下 &#xff08;更多实例见页面底部&…

CUDA编程基础与Triton模型部署实践

作者&#xff1a;王辉 阿里智能互联工程技术团队 近年来人工智能发展迅速&#xff0c;模型参数量随着模型功能的增长而快速增加&#xff0c;对模型推理的计算性能提出了更高的要求&#xff0c;GPU作为一种可以执行高度并行任务的处理器&#xff0c;非常适用于神经网络的推理计算…

RISC-V Linux 编译设备树

RISC-V Linux 编译设备树 flyfish 设备树是一种描述硬件资源的数据结构 引入设备树的主要目的 曾经 Linux内核中夹杂着大量的设备信息&#xff0c;影响Linux驱动开发效率&#xff0c;因为外部设备发生任何改动&#xff0c;需要重新编写和编译驱动代码。 现在 设备驱动程…

九龙证券|300亿空袭,港股吓懵了!

港股再度大幅回调&#xff0c;腾讯成了“导火索”。 当地时刻4月11日&#xff0c;腾讯大股东Prosus发布公告称拟再度进行回购&#xff0c;作为回购方案的一部分&#xff0c;Prosus本周将采纳行动&#xff0c;把9600万股腾讯股票以凭据方式移入香港中心结算系统&#xff0c;以便…

PyQt5学习笔记一、安装PyQt5和在PyCharm中配置工具

一、安装PyQt5 1. 可以在cmd窗口安装PyQt5和工具 可以在cmd窗口使用命令 pip install PyQt5 安装PyQt5&#xff0c;若指定版本使用命令 pip install PyQt5version&#xff0c;此时同时安装了PyQt5和sip。参考链接 在cmd命令窗口安装Python模块_Mr. 李大白的博客-CSDN博客htt…

【《C Primer Plus》读书笔记】第17章:高级数据表示

【《C Primer Plus》读书笔记】第17章&#xff1a;高级数据表示17.1 研究数据表示17.2 从数组到链表17.3 抽象数据类型&#xff08;ADT&#xff09;17.4 队列ADT17.5 用队列进行模拟17.6 链表和数组17.7 二叉查找树17.8 其他说明17.1 研究数据表示 在开始编写代码之前&#xf…

【Android入门到项目实战-- 5.1】—— 广播(一):接收系统广播

目录 一、什么是广播&#xff1f; 二、广播的类型 标准广播 有序广播 三、接收系统广播 1、动态注册监听网络变化 如何注册广播接收器&#xff1f; 2、静态注册实现开机启动 使用快捷方式创建广播接收器 实现开机广播 一、什么是广播&#xff1f; android广播机制就是…

Java高级特性 - 多线程基础(1)使用线程第1关:创建线程第2关:使用 Callable 和 Future 创建线程

目录 第1关&#xff1a;创建线程 头歌知识点总结&#xff1a; 第2关&#xff1a;使用 Callable 和 Future 创建线程 本题头歌知识点 本题详解&#xff1a; 第1关&#xff1a;创建线程 package step1; //请在此添加实现代码 //使用继承Thread类的方式创建一个名为 Thread…

【C++项目】高并发内存池

前言&#xff1a; 本篇博客大致记录基于tcmalloc实现高并发内存池的思想与实现方案。 使用语言&#xff1a;C&#xff0c;编译器&#xff1a;vs2022&#xff0c;开始时间&#xff1a;2023/4/3&#xff0c;结束时间&#xff1a;2023/4/12。 项目源码地址&#xff1a;Cproject: 我…

苹果智能戒指专利曝光,Find My技术加持不易丢

根据美国商标和专利局&#xff08;USPTO&#xff09;公示的清单&#xff0c;苹果近日获得了一项“智能戒指”相关的设计专利&#xff0c;编号为“US 11625098 B2”。 这款智能戒指专利主要服务于增强现实&#xff08;AR&#xff09;或者虚拟现实&#xff08;VR&#xff09;场…

C语言CRC-16 MAXIM格式校验函数

C语言CRC-16 MAXIM格式校验函数 CRC-16校验产生2个字节长度的数据校验码&#xff0c;通过计算得到的校验码和获得的校验码比较&#xff0c;用于验证获得的数据的正确性。基本的CRC-16校验算法实现&#xff0c;参考&#xff1a; C语言标准CRC-16校验函数。 不同厂家通过对输入…

基于ESP32和blinker的红外小夜灯控制

一. 系统设计及框图&#xff1a; 本设计可以实现通过手机APP使用蓝牙或WIFI远程控制红外设备&#xff0c;也可以通过离线语音模块语音控制红外设备。可以控制市面上常见的NEC格式的红外设备, 这里是控制小夜灯&#xff0c;其它红外设备在控制原理上是相通的。本设计可用作课程…

如何免费使用ChatGPT 4?

自从ChatGPT发布以来&#xff0c;它就取得了巨大的成功。无论是常春藤法学考试还是商学院作业&#xff0c;ChatGPT都被用于各种试验。统计数据显示&#xff0c;ChatGPT每月吸引约9600万用户。随着ChatGPT的巨大成功&#xff0c;Open AI最近推出了它的最新版本&#xff0c;名为“…

Docker本地推送到hub,以及上传时遇到的问题解决

1.在本地创建一个 Dockerfile FROM ubuntu:latest RUN apt-get update && apt-get install -y curl CMD ["curl", "https://www.baidu.com"]2.在本地构建 Docker 镜像 在创建本地docker镜像的时候[TAG] .和[TAG] /PATH/TO 需要注意dockerfile文件…

Rust China Conf 2023 筹备启动:议题征集开始

大会介绍Rust China Conf 2023 由 Rust 中文社区发起主办、知名企业和开源组织联合协办&#xff0c;是年度国内规模最大并唯一的 Rust 线下大型会议&#xff0c;深受 Rust 中文社区开发者与相关企业的喜爱与推崇。本次大会为线下会议&#xff0c;将于6月17日-18日在上海举办&am…