import torchvision
import torch
import torch.utils.data.dataloader as dataloader
import torchvision.datasets as datasets
import torchvision.transforms as transforms
import torch.nn as nn
import torch.optim as optim
# 加载数据和处理数据
transform = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
])
train_data = torchvision.datasets.CIFAR10(root="./data", train=True, transform=transform, download=True)
test_data = torchvision.datasets.CIFAR10(root="./data", train=False, transform=transform, download=True)
train_loader = dataloader.DataLoader(dataset=train_data, shuffle=False, batch_size=4, num_workers=2)
test_loader = dataloader.DataLoader(dataset=test_data, shuffle=True, batch_size=4, num_workers=2)
# 定义网络
class CNN(nn.Module):
def __init__(self):
super(CNN, self).__init__(),
self.layer1 = nn.Sequential(
nn.Conv2d(in_channels=3, out_channels=6, kernel_size=3),
nn.ReLU(),
nn.MaxPool2d(2, 2)
)
self.layer2 = nn.Sequential(
nn.Conv2d(in_channels=6, out_channels=16, kernel_size=5),
nn.ReLU(),
nn.MaxPool2d(2, 2)
)
self.layer3 = nn.Sequential(
nn.Linear(5 * 5 * 16, 120),
nn.Linear(120, 84),
nn.Linear(84, 10)
)
def forward(self, x):
x = self.layer1(x)
x = self.layer2(x)
x = x.view(-1, 5 * 5 * 16)
x = self.layer3(x)
return x
# 实例化
cnn = CNN()
# 损失函数和优化
loss_f = nn.CrossEntropyLoss()
optim = optim.SGD(params=cnn.parameters(), lr=0.001, momentum=0.9)
class AverageMeter(object):
"""Computes and stores the average and current value"""
def __init__(self):
self.reset()
def reset(self):
self.val = 0
self.avg = 0
self.sum = 0
self.count = 0
def update(self, val, n=1):
self.val = val
self.sum += val * n
self.count += n
self.avg = self.sum / self.count
# 准确率
def accuracy(output, target, topk=(1,)):
maxk = max(topk) #topk=(1,)取top1准确率,topk=(1,5)取top1和top5准确率
batch_size = target.size(0)
_, pred = output.topk(maxk, 1, True, True) # topk参数中,maxk取得是top1准确率,dim=1是按行取值, largest=1是取最大值
pred = pred.t() # 转置
correct = pred.eq(target.view(1, -1).expand_as(pred)) # 比较是否相等
res = []
for k in topk:
correct_k = correct[:k].view(-1).float().sum(0)
res.append(correct_k.mul_(100.0 / batch_size))
return res
# train
for i in range(2):
losses = AverageMeter()
top1 = AverageMeter()
top5 = AverageMeter()
for j, data in enumerate(train_loader, 0):
inputs, labels = data
optim.zero_grad()
# forward + backward + optimize
outputs = cnn(inputs)
loss = loss_f(outputs, labels)
loss.backward()
optim.step()
# measure accuracy and record loss
prec1 = accuracy(output=outputs, target=labels, topk=(1, 5))
losses.update(loss.item(), labels.size(0))
top1.update(prec1[0], labels.size(0))
top5.update(prec1[1], labels.size(0))
if j % 2000 == 1999:
"""
top1.val是一个batch中的准确率, avg为准确率
"""
print('Loss {loss.val:.4f} ({loss.avg:.4f})\t'
'Prec@1 {top1.val:.3f} ({top1.avg:.3f})\t'
'Prec@5 {top5.val:.3f} ({top5.avg:.3f})'.format(loss=losses, top1=top1, top5=top5))
# 测试
top1 = AverageMeter()
top5 = AverageMeter()
for data in test_loader:
inputs, labels = data
outputs = cnn(inputs)
prec1, prec5 = accuracy(outputs, labels, topk=(1, 5))
top1.update(prec1, labels.size(0))
top5.update(prec5, labels.size(0))
print('Prec@1 {top1.val:.3f} ({top1.avg:.3f})\t'
'Prec@5 {top5.val:.3f} ({top5.avg:.3f})'.format(top1=top1, top5=top5))
相关推荐
few-shot-classification-leaderboard:用于miniImageNet,tieredImageNet,FC100和CIFAR-FS上的几幅图像分类的排行榜
热门分类排行榜 该项目的目标是跟踪少数镜头分类的最新技术(SOTA) 。 小型ImageNet: 分层ImageNet: Fewshot-CIFAR100: 降价 CIFAR-FS: 降价 随时创建并以添加新结果。 接触 刘瑶瑶/ yaoyao.liu(at)mpi-inf.mpg.de 张池/ chi007(at)e.ntu.edu.sg
图像分类 top-5 错误率
什么是图像分类的Top-5错误率? top1就是你预测的label取最后概率向量里面最大的那一个作为预测结果,你的预测结果中概率最大的那个类必须是正确类别才算预测正确。而top5就是最后概率向量最大的前五名中出现了正确概率即为预测正确。 主要是ImageNet数据集Label有一定的误差,很多图片人类看来可以归为好几个类,所以就用top-5当一个重要的评测标准. top-5
第六节 旅烨cms实战练习 -2021.03.11
第六节 旅烨cms实战练习 -2021.03.11 前期使用win10里小皮搭建旅烨cms,以为自己的各项配置有问题,但是小皮能够正常带动DVWA,始终带动不了旅烨cms。 后来与其他安全人员交流,发现win7可以正常运行旅烨cms。 所以目前为何出现问题尚不清楚 1.环境搭建 win7+小皮 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nOSTEFUw-1615475228402)(C:\Users\LuXian\AppData\Roaming\Typora\typora
什么是图像分类的Top-5和Top-1错误率
第一次听到top-5错误率,是在CV课上老师讲的,今天又在ImageNet论文上看到了,所以小记一下。 简述 通俗的讲,所谓Top-1 error-rate就是使用预测结果和正确结果进行对比,如果相同则表示预测正确! 相比而言,Top-5 error-rate 就是使用预测结果的Top-5(分类结果标签的前五个)与正确结果进行对比,如果五个之中有一个正确那么就认为分类器预测结果正确。 ...
从零开始:QNX SDP 8.0开发环境搭建与实战入门
本文详细介绍了如何从零开始搭建QNX SDP 8.0开发环境并进行实战入门。内容涵盖许可证获取、环境安装、命令行与IDE工具使用、BSP构建、系统镜像生成,以及编写、编译和运行第一个QNX程序的全过程。旨在帮助嵌入式开发者,特别是汽车电子和工业控制领域的工程师,快速掌握这一实时操作系统(RTOS)的开发基础。
干法刻蚀工艺进阶:如何通过调节DC自偏压优化刻蚀速率和各向异性
本文深入探讨了干法刻蚀工艺中DC自偏压的精细调控艺术。DC自偏压是影响刻蚀速率和各向异性的关键因素,文章通过实战案例,详细分析了如何通过调节射频功率、频率、腔室压力及气体成分等参数,间接而有效地控制DC自偏压,从而优化高深宽比硅沟槽等复杂结构的刻蚀效果,实现工艺性能的精准提升。
图像分类的top-1 and top-5 error
Top-1 Error:假设模型预测某个对象的类别,模型输出1个预测结果,那么这一个结果能判断正确的概率就是Top-1正确率。判断错误的概率就是Top-1错误率。简言之就是模型判错的概率。 Top-5 Error :假设模型预测某个对象的类别,模型输出5个预测结果,只要其中一个能判断正确类别,这个概率就是Top-5正确率,反之,预测输出的五个结果都错误的概率就是Top-5错误率。 一般来说,Top-1 Error和Top-5 Error越低,模型的性能也就越好。且Top-5 Error 往往小于Top-1
AD21导出gerber文件
文件–>制造输出–>Gerber Files 文件–>制造输出–>Gerber Files 通用、光圈和高级跟第一步一样 3.文件–>制造输出–>NC Drill Files 这个默认就可以了 主要参考视频来自bilibili添加链接描述 此篇博客主要是写给自己好记的,无其他商业用途 ...
TOP1与TOP5指标
TOP1、TOP5
Linux SMP系统多核启动机制详解
对称多处理(SMP)是现代操作系统支持多核并行计算的基础架构。其核心原理是通过引导处理器(BSP)初始化系统环境后,通过处理器间中断(IPI)机制唤醒应用处理器(AP)。在x86架构中,AP启动时处于实模式,需要特殊的trampoline代码完成保护模式切换和分页设置。这种设计既保证了系统初始化的正确性,又实现了多核并行处理的性能优势。理解SMP启动流程对优化系统启动速度和调试多核问题至关重要,特别是在云计算和嵌入式系统中,高效的SMP初始化能显著提升系统响应能力。本文以Linux内核为例,深入解析了从BS
用Python爬取大连商品交易所期货实时行情:从入门到实战
python复制编辑# utils.py"豆粕": "M0","铁矿石": "I0","聚乙烯": "L0","玉米": "C0","聚丙烯": "PP0","棕榈油": "P0"本项目展示了:✅ 如何从新浪财经 API获取主力合约实时数据✅ 使用Python异步爬虫技术) 提升效率✅ 利用pandas和matplotlib进行结构化分析与可视化✅ 具备良好的扩展性,可对接金融、农业、能源等数据需求场景✅ 可作为期货量化策略数据源✅ 可嵌入自动化报告系统。
关于神经网络图像分类中的Top-1和Top-5
Top-1错误率 对一个图片,只判断概率最大的结果是否是正确答案。 Top-5错误率 对一个图片,判断概率排名前五中是否包含正确答案。
13、超声断层乳腺图像融合算法:乳腺癌诊断新突破
本文介绍了一种新型超声断层乳腺图像融合算法,通过结合超声透射(UTTc、UTTα)和反射断层图像(URT),实现对乳腺组织的多参数自动可视化。该算法能有效区分良性与恶性肿瘤,具有高准确性、无辐射、低成本等优势,适用于大规模乳腺癌早期筛查。初步临床测试验证了其可行性,未来有望成为乳腺癌诊断的新标准。
何为Top-1,Top-5
众所周知,神经网络预测类别是以概率的形式给出。 像这样:用一个CNN来预测图像6个类别:香蕉,苹果,大鸭梨,草莓,葡萄,大西瓜。 假设一个batch中有两条数据,batch_1和batch_2,(也就是有两张图像)。它们的label值为2(大鸭梨)和5(大西瓜)。 预测的概率值如下表所示 类别 香蕉 苹果 大鸭梨 草莓 葡萄 大西瓜 label batch_1 0.05 0.2 0.3 0.2 0.2 0.15
【49】软考软件设计师——冲刺复盘:高频易错点与应试策略|复盘清单+应试技巧
本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第49篇,属于**模块六:冲刺与模拟**终篇,聚焦考前最后阶段的“精准复盘+应试提分”。全文围绕“高频易错点清零、答题时间优化、应急处理落地”三大核心,梳理9大知识领域的典型易错点(附避坑技巧)、优化版答题时间分配(含取舍策略)、考中全场景应急方案,配套可直接使用的“复盘清单”和“应试技巧手册”,帮助考生在最后阶段查漏补缺、固化得分逻辑,避免因低级错误丢分,以“稳、准、快”的状态应对考试。下一篇第50篇(终章)将进行全专栏知识体系回顾、考试策略总结
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
top1 top5 概念
top1 top5 概念
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
转:Awesome - Image Classification
A curated list of deep learning image classification papers and codes since 2014, Inspired by awesome-object-detection, deep_learning_object_detection and awesome-deep-learning-papers. Backgr...
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
基于深度卷积神经网络的图像分类
基于深度卷积神经网络的图像分类摘要1 引言3 架构3.1 ReLU非线性3.2 多GPU训练3.4 重叠池化3.5 整体架构4 减少过拟合4.1 数据增强4.2 失活(Dropout)6 结果7 探讨 《ImageNet Classification with Deep Convolutional Neural Networks》 摘要 我们训练了一个大型深度卷积神经网络来将ImageNet LS...
运用CNN对ImageNet进行图像分类
运用CNN对ImageNet进行图像分类 译者注:本篇翻译自Alex Krizhevsky, Ilya Sutskever以及Geoffrey E.Hinton的论文 ImageNet Classification with Deep Convolutional Neural Networks. 该论文在智能单元专栏文章《CS231n课程笔记翻译:神经网络笔记1(上)》中有提到,因此打算翻译一下
GitHub:图像分类最全资料集锦
GitHub:图像分类最全资料集锦 Amusi CVer Summary:GitHub:图像分类最全资料集锦 Author:weiaicunzai 编辑:Amusi Date:2019-02-17 微信公众号:CVer 原文链接:GitHub:图像分类最全资料集锦 前言 之前推了几篇GitHub上awesome系列项目,反响都很好。 Amusi:GitHub:TensorFlow最...
ImageNet Classification with Deep Convolutional Neural Networks全文翻译
ImageNet Classification with Deep Convolutional Neural Networks 摘要 我们训练了一个大型深度卷积神经网络来将ImageNet LSVRC-2010数据集中的120万张高清图片分到1000个不同的类别中。在测试数据中,我们将Top-1错误和Top-5错误分别降到了37.5%和17.0%,这比之前的技术水平要好得多。这个神经网络拥有6千万的参数和65万个神经元,共有五个卷积层,其中一些卷积层后面跟着最大池化层,还有利用softmax函数进行10
卷积神经网络在ImageNet项目中的演进过程
1、ImageNet数据集背景介绍: 如果说Mnist数据集将初学者领进了深度学习领域,那么Imagenet数据集在深度学习中尤其是计算机视觉领域掀起了巨大的浪潮。ImageNet项目于2007年由斯坦福大学华人教授李飞飞创办,目标是收集大量带有标注信息的图片数据供计算机视觉模型训练。ImageNet拥有1500万张标注过的高清图片,总共拥有22000类,其中约有100万张标注了图片中主要物体的...
第四讲_图像识别之图像分类Image Classification
第四讲_图像识别之图像分类Image Classification 目录 图片分类 性能指标:top1,top5 ILSVRC:每种任务数据集不一样 imageNet:根据WorldNet组织的图片集,为每个名词提供平均1000张图片 网络进化 卷积神经网络(CNN) 基础神经网络: 神经元(输入,w,b,sigmoid) 优化:梯度下降,BP反向传播(链式规则),3~5层 ...
GoogLeNet 输出日志中test部分的loss的理解
对GoogLeNet 输出日志中的loss的理解 在GoogLeNet 网络进行训练时,日志文件中输出如下内容,该内容是在训练过程中的测试部分输出的(即test过程) I0423 16:33:20.838305 19680 solver.cpp:404] Test net output #0: loss1/loss1 = 0.870371 (* 0.3 = 0.261111 loss) I...
在 PyTorch 中实现 Vision Transformer 分类器
我决定研究常规变压器的扩展:视觉变压器。顾名思义,这种类型的 transformer 将图像作为输入,而不是单词序列。本博客将概述 Vision Transformer 的架构,并在 CIFAR100 数据集上实现基于 Vision Transformer 的分类器。顾名思义,视觉转换器是应用于图像数据的转换器。它们通常是基于编码器的,这意味着不需要自注意力掩码。每个查询向量都可以使用每个关键向量来生成注意力权重。与文本序列不同,图像天生不适合输入到 transformer 中。
3038



被折叠的 条评论
为什么被折叠?



