【卷积神经网络】构建对CIFAR-100数据集中的图像进行分类的CNN

让你的ResNet模型在Cifar100数据库上80%正确识别率(pytorch代码) 有很多小伙伴们在用迁移学习在Cifar100上训练时候,其识别率非常低,有的20%多,有的60%。为什么有那么低的识别率呢?主要是训练策略问题,下面我们用ResNet34来测试Cifar100,看看最后的识别率能达到多少。顺便说一下ResNet的命名,比如ResNet34包括33个Conv2d和1个FC层(FC层就是该网络的输出特征层),共34个可以学习的层,其它的层不具备学习功能占用资源很少;ResNet101就包含100个Conv2d和1个FC层。 第一步、将学习速率设置大一些(初始 lr=0.01) 阅读详情
AI摘要

本文围绕CIFAR-100数据集图像分类展开,指出网上多数网络在该数据集上正确率在40 - 50%。作者构建了适合小白的CPU版本CNN,将准确率从30%提升到60%,介绍了改进方法,如增加网络深度、调整学习率等,还提及可从多方面进一步改进。

参考:

  1. Cifar100 TensorFlow高精度调参记录
  2. cifar算法动物园(各类网络解决cifar分类)
  3. pytorch实现cifar100的 各类网络结构

前言:

 CIFAR-100数据集的网络 网上的版本很多,有些跑起来也还可以,但是大多数都只能到40-50%左右的正确率。
 有大佬做了各种网络,调好了参数,能达到80%左右的正确率。但是这里只是个小作业,希望用不要太复杂,不要太深的网络,最好在一小时内就能看到结果的,所以参照大佬的作品写了简化版本,能在50个epoch内达到60%左右正确率。

结果:

在这里插入图片描述
是CPU版本,适合不会调GPU的小白

cifar100数据集:

 这个数据集有100个分类,每个分类图片数量只有600张对应图片,其中100张还要拿来做检验,所以要保证分类正确,cifar100的复杂度 指数级 高于cifar10(cifar10有10个分类,每个分类6000张照片,达到90%+的正确率不在话下,就算瞎猜,10个里猜对一个的概率也大于100个猜对1个的概率)

主要网络结构:

类VGG模型:
在这里插入图片描述

代码:

Jupyter-notebook:构建对CIFAR-100数据集中的图像进行分类的CNN

点击下载后在对应环境下运行,这里给出的notebook里已经有运行结果,可以直接看。

注意:
cifar100的下载可能很慢,可以自己下好了,改下代码,直接按路径读取。

from __future__ import print_function
from tensorflow import keras
from tensorflow.keras.datasets import cifar100
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten
from tensorflow.keras.layers import Conv2D, MaxPooling2D

import matplotlib.pyplot as plt
%matplotlib inline

# 下面的代码可以加载CIFAR-100数据集
# The data, shuffled and split between train and test sets:
(x_train, y_train), (x_test, y_test) = cifar100.load_data()
print('x_train shape:', x_train.shape)
print(x_train.shape[0], 'train samples')
print(x_test.shape[0], 'test samples')

## Each image is a 32 x 32 x 3 的字符数组,由于在计算机中,每个图片的像素点颜色都是用0-255范围的数字表示的
## 32 x 32 x 3 数组表示 长度为32,高度为32,深度为3,也就是有三个通道,
## RGB就是记录了黄色,绿色,蓝色的三个通道的记录方法中的一种
x_train[444].shape
x_train[444]
## 展示一下训练前的图片
print(y_train[442])
plt.imshow(x_train[442]);
## 数据集分类为100个
num_classes = 100 
## 将整型的类别标签转为onehot编码,onehot编码是一种方便计算机处理的二元编码。
y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical
TensorFlow应用之进阶版卷积神经网络CNN在CIFAR-10数据集上分类 一、概述 1. 数据集简介 本文使用的数据集是CIFAR-10,这是一个经典的数据集,包含了60000张32*32的彩色图像,其中训练集50000张,测试集10000张,如同其名字,CIFAR-10数据集一共标注为10类,每一类6000张图片,这10类分别是airplane、automobile、bird、cat、deer、dog、frog、horse、ship和truck。类别之间没有重 阅读详情

相关推荐

[Pytorch案例实践004]CIFAR-100图像分类

CIFAR-100图像分类

2403_83044722的博客 3810

卷积神经网络实践--猫狗分类

利用卷积神经网络实现猫狗分类

与其在风雨中逃避,不如在雷电中舞蹈 2585

TensorFlow学习记录:用简单卷积神经网络实现Cifar10数据集分类

使用TensorFlow搭建一个简单的卷积神经网络实现Cifar10数据集分类,这个神经网络模型包括两个卷积层,两个池化层,卷积操作后在后面加三个全连层,最后一个全连层用于输出分类。整个神经网络架构图如下: 名词解释 名字 说明 输入层 输入层是整个神经网络的输入。在用于图像分类的卷积神经网络中,它一般代表的是一张图片的像素矩阵。根据通道数的不同,图片像素的矩阵也有着不同的深度数...

weixin_41137655的博客 2613

深度学习100例-卷积神经网络(CNN)彩色图片分类 | 第2天

文章目录前期工作设置GPU导入数据标准化可视化构建CNN网络编译训练模型预测模型评估 前期工作 设置GPU 如果使用的是CPU可以忽略这步 import tensorflow as tf gpus = tf.config.list_physical_devices("GPU") if gpus: gpu0 = gpus[0] #如果有多个GPU,仅使用第0个GPU tf.config.experimental.set_memory_growth(gpu0, True) #设置GPU显存用量

“365天深度学习训练营”报名进行中~ 7853

构建对CIFAR-100数据集中的图像进行分类的CNN

构建对CIFAR-100数据集中的图像进行分类的CNN CIFAR-100 数据集与 CIFAR-10 类,但是它包含了 100 个分类,每个分类 600 张图片,其中 500 张用于训练,100 张用于测试。CIFAR-100 中的100 个分类被群组成了 20 个超类。每张图片都有一个“细粒度”的标签,即表示它属于哪个类,以及一个“粗粒度”标签,即表示它属于哪个超类。 下面是 CIFAR-100 中的各个分类:

cifar100(20个任务)测试结果

cifar100(20个任务)测试结果

卷积神经网络ResNet50训练CIFAR-100图像分类Pytorch实现

# 卷积神经网络ResNet50训练CIFAR-100图像分类Pytorch实现 1. 使用pytorch调用CIFAR-100数据集,首次训练自动下载; 2. 包含训练代码,调用resnet50模型进行训练,使用交叉熵损失和SGD优化器; 3. 包含训练了50 epochs的模型,在CIFAR-100测试集上准确率62%; 4. 包含两版可视化推理代码:通过matplotlib可视化图片、真值标签和预测结果,以及通过tkinter窗口显示可视化图片、真值标签和预测结果。

UE5.3与Colosseum配置实战:从编译到问题解决的全流程指南

本文提供了在Windows系统下配置UE5.3与Colosseum仿真环境的全流程实战指南。详细介绍了从软件版本选择、源代码获取、编译脚本执行到解决常见编译错误和引擎崩溃问题的具体步骤,旨在帮助开发者高效搭建无人机、机器人等仿真平台,并顺利运行外部API控制。

weixin_29002595的博客 555

攻克TypeError: Cannot read properties of undefined (reading ‘NormalModule‘)的四种实战策略

本文详细解析了`TypeError: Cannot read properties of undefined (reading 'NormalModule')`错误的四种实战解决策略。从版本一致性检查、包管理器优化到依赖替换和构建环境配置,帮助开发者快速定位和解决Webpack构建过程中的常见问题,提升开发效率。

weixin_42523670的博客 242

FPGA中的CMAC硬核与Interlaken硬核

CMAC硬核和Interlaken硬核是FPGA中两种重要的内置功能模块,它们分别在CNN推理和高带宽芯片到芯片接口方面发挥着关键作用。FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)中的CMAC硬核与Interlaken硬核是两种重要的内置功能模块,它们在FPGA设计中扮演着关键角色。需要注意的是,FPGA设计中的硬核选择不仅取决于硬核本身的性能,还需要考虑硬核与FPGA芯片其他部分的兼容性、功耗、成本等因素。Interlaken硬核。

weixin_41230430的博客 1479

高速窄脉冲峰值保持设计

一、目的 在激光探测领域,探测器发出的高速窄脉冲,单片机AD进行采样,很难捕捉到窄脉冲的幅值,即使使用高速AD进行采样,也存在一定的难度。因此,本方案设计了一种高速窄脉冲峰值保持电路,有助于单片机AD采样能很好的捕捉到脉冲幅值。 二、方案分析与比较 峰值保持器一般分为两种:电压型和跨导型。 方案一:电压型峰值保持器,由电压型运放、二极管、保持电容、缓冲器组成,优点是元件成本低,缺点是峰值保持存在过...

weixin_43184208的博客 9282

ArcGISPro小白必看:5分钟搞定3D地形图制作(附免费数据源)

本文为ArcGISPro初学者提供5步制作专业3D地形图的完整指南,涵盖免费数据获取、项目初始化、数据预处理、3D场景构建和成果输出等关键步骤。特别推荐使用NASA的SRTM高程数据和吉林一号卫星影像,帮助用户快速掌握3D地形图制作技巧,适用于教学演示和科研分析。

weixin_28314575的博客 238

【模型实战】MiMo-VL-7B讲解与实战

维度成绩MMMU70.6(图像理解最难测试之一)VideoMME70.8(视频理解标杆)59.4(超越78B参数模型)56.1(超过专用GUI模型)Elo评分开源VLM排名第一(7B~72B)社区热度过去一个月下载超1,600次(RL+SFT)📌一句话概括MiMo-VL 是目前性能最强、推理最稳、体验最佳、生态最全的7B级开源视觉语言模型。

m0_47867638的博客 1194

UltraScale系列底层结构(3)——URAM概述

在UltraScale+™ 器件中,除了我们在常规熟悉的BRAM资源以外,还额外提供了URAM(UltraRAM)资源。 UltraRAM 是一种单时钟同步操作的高密度存储器,每个 UltraRAM 块可存储 288 Kb 数据,配置为 4K x 72 位的存储单元,其容量是 Block RAM 的八倍。虽然 UltraRAM 内部使用单端口存储单元,但通过在一个时钟周期内顺序执行端口 A 和端口 B 的操作,实现了双端口功能。

apple_53311083的博客 2828

Vue3 - 手机移动端H5网页强力解决弹起软键盘后页面被挤压变形或页面整体上移问题,点击input输入框键盘弹出底部被上推往上顶遮挡及各种问题(兼容安卓苹果ios手机,微信公众号网页微信内置浏览器)

vue3,h5网页,input输入框组件,vue3 h5软键盘弹出,vue3输入框,键盘弹起时页面整体上移问题,uni,H5页面,解决软键盘弹起页面被挤压、被往顶的问题,解决vue3输入框,键盘弹起时页面整体上移问题,vue3调用手机系统软键盘,页面窗口被顶起,布局定位失效,解决VUE3软键盘弹起导致页面fixed定位元素被顶上去,输入法软键盘弹起,窗口顶起,变形解决办法,Vue中input组件在IOS设备上弹出软键盘时页面整体上移问题的解决方案,以及input组件聚焦后弹出软键盘固定在,Vue3软键盘把界

🏆 前端领域优质创作者 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: 【Unity】代码动态加载Prefab预设体
下一篇: 【上海房价预测】代码实现——利用BP神经网络进行上海二手房价预测
舔甜歌姬的EGUMI LEGACY
博客等级 码龄10年 744粉丝 287原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值