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

news2024/11/25 18:40:07

各个维度

    • 通过模型
    • 通过优化器
    • 通过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.coloradmin.cn/o/417573.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

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

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

八、市场活动-创建

需求分析 用户在市场活动主页面,点击"创建"按钮,弹出创建市场活动的模态窗口; 用户在创建市场活动的模态窗口填写表单,点击"保存"按钮,完成创建市场活动的功能. *所有者是动态的(//在现实市场活动主页面时,就从数据库中查询出所有用户并且…

基于ChatGLM-6b+Streamlit+QDrant+DuckDuckGo搭建本地问答机器人及缓解时效性问题方案

本地部署chatglm及缓解时效性问题的思路: 模型使用chatglm-6b 4bit,推理使用hugging face,前端应用使用streamlit或者gradio。 微调对显存要求较高,还没试验。可以结合LoRA进行微调。 缓解时效性问题:通过本地数据库…

word页码从指定页开始,具体设置步骤

word页码从指定页开始,具体设置步骤1、在文档页面,以目录后第一页为页码开始页为例,也就是正文第一页,首先将鼠标光标定位到目录页最后的位置2、在【布局】选项下点击【分隔符】选项。3、在分隔符中选择【分节符】下的【下一页】。…

深度学习-第T4周——猴痘病识别

深度学习-第T4周——猴痘病识别深度学习-第T4周——猴痘病识别一、前言二、我的环境三、前期工作1、导入数据集2、查看图片数目3、查看数据四、数据预处理1、 加载数据1、设置图片格式2、划分训练集3、划分验证集4、查看标签2、数据可视化3、检查数据4、配置数据集五、搭建CNN网…

Day943.持续集成流水线 -系统重构实战

持续集成流水线 Hi,我是阿昌,今天学习记录的是关于持续集成流水线的内容。 从团队协作的角度上来看,在版本发布过程中,经常出现测试依赖开发手工生成制品、版本发布也从开发本地出版本的问题。而且项目架构如果从单体演进至组件…

MySQL-双主高可用

目录 🍁拓扑环境 🍁配置两台MySQL主主同步 🍃修改MySQL配置文件 🍃配置主从关系 🍃测试主主同步 🍁keepalived高可用 🍃keepalived的安装配置 🍃master配置 🍃slave配置 …

R -- 用psych包做因子分析

因子分析 因子分析又称为EFA,是一系列用来发现一组变量的潜在结构的办法。它通过寻找一组更小的,潜在的结构来解释已观测到的显式的变量间的关系。这些虚拟的、无法观测的变量称为因子(每个因子被认为可以解释多个观测变量间共有的方差&…

【回眸】ChatGPT Plus(GPT4体验卡)

前言 没忍住诱惑,开了个GPT4.0的会员,给大家表演一波 开通成功 开始问问题 写一个CNN疲劳驾驶监测代码,要求{使用Python语言,使用包,能成功运行,需要调用电脑摄像头,要求GUI界面有一些参数…

Python爬虫框架的介绍

爬虫框架的介绍Scrapy框架Crawley框架Portia框架Newspaper框架Python-goose框架随着网络爬虫的应用越来越多,一些爬虫框架逐渐涌现,这些框架将爬虫的一些常用功能和业务逻辑进行封装。这些框架的基础上,根据自己的需求添加少量的代码&#xf…

【操作系统 os学习笔记】

操作系统一、第一章:操作系统概述Ⅰ. 操作系统的基本概念1.操作系统的概念1.1 什么是操作系统?1.2 计算机系统的构成1.3 OS是一种系统软件1.4 OS作为系统软件,做了哪些事情2.操作系统的目标和功能2.1 目标2.2 功能3.操作系统的特征3.1 并发3.…

C#基础学习--接口

目录 什么是接口 ​编辑声明接口 实现接口 接口是引用类型 接口和as运算符 实现多个接口 实现具有重复成员的接口 多个接口的引用 派生成员作为实现 ​编辑显式接口成员实现 接口可以继承接口 什么是接口 接口是指定一组函数成员而不实现它们的引用类型 要实现一个接口…

DevOps实践分享:4个实施步骤与6个关键设计

本文介绍了普元DevOps平台在金融行业实施落地的常用方法,以及在项目管理,代码管理,构建管理,制品管理,部署管理等模块针对一些典型客户场景的关键设计。目 录01 平台简介‍‍02 实施方法‍‍‍‍‍‍03 关键设计01平…

项目管理的误区之追着别人做监工

有的项目经理拿到一个项目,上来就开始各种努力,恨不得把十八般武艺都套上去。 有的项目经理急于推进项目:“活都分出去了,我要监督大家把事情做好吧。 我先在心里设定一个目标,然后费尽心力地把大家往一处赶&#xff…

( “树” 之 DFS) 617. 合并二叉树 ——【Leetcode每日一题】

617. 合并二叉树 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两…

css实现缺角功能、渐变、旋转、clip-path属性、矩形、边框、折角

文章目录1、缺角矩形2、缺角边框3、折角矩形4、clip-path属性1、缺角矩形 使用css3渐变实现缺角矩形&#xff0c;关于linear-gradient属性的介绍请移步至MDN。 ☺☺☺html部分☺☺☺ <div class"rectangle_box"><div class"left_top"></d…

【数据库】索引必知必会

什么是索引索引的好处索引的坏处创建索引的三种方式索引类型索引数据结构Hash表B树B树B树和B树的区别B树的最大优点面试题为什么索引结构默认使用B树&#xff0c;而不是B-Tree&#xff0c;Hash哈希&#xff0c;二叉树&#xff0c;红黑树?聚簇索引非聚簇索引聚簇索引和非聚簇索…

亚马逊云科技云创计划,打造创新创业生态系统

在充满着不确定性的2022年&#xff0c;电子消费市场一片哀鸿遍野&#xff0c;智能家居行业却如同逆水行舟&#xff0c;显示出稳健的发展之势&#xff0c;宣告着智能家居时代已来。在2023年3月24日举办的“智能家居&#xff0c;出海闭门会”上&#xff0c;为进一步发挥产业带潜力…

C#基础学习--转换

目录 什么是转换 隐式转换 显式转换和强制转换 ​编辑 转换的类型 数字的转换 ​编辑 隐式数字转换 溢出检测上下文 显式数字转换 引用转换 隐式引用转换 显式引用转换 有效显式引用转换 装箱转换 装箱是创建副本 装箱转换 拆箱转换 用户自定义转换 用户自定义…

学习/cmake-cookbook/chapter-01/recipe-07/example

代码链接&#xff1a;cmake-cookbook/chapter-01/recipe-07/example at master dev-cafe/cmake-cookbook GitHub BUG 是告诉如G之类的编译器在每个translation unit中定义macro NDEBUG&#xff0c;进而导致所有assert()都被关闭&#xff01;合法取值是Debug&#xff0c;Rele…