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

Python 训练营打卡 Day 38

了解下CIFAR数据集,尝试获取其中一张图片

CIFAR数据集是计算机视觉领域常用的基准数据集,主要有两个版本:

1. CIFAR-10
- 包含10个类别的6万张32x32彩色图像
- 每个类别有6000张图像(5000训练+1000测试)
- 类别包括:飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船、卡车
2. CIFAR-100
- 包含100个细粒度类别的6万张32x32彩色图像
- 每个类别有600张图像(500训练+100测试)
- 100个类别又分为20个超类(如"鱼"超类包含"鲑鱼"、"鲨鱼"等子类)
这两个数据集常用于:

- 图像分类任务基准测试
- 深度学习模型性能评估
- 计算机视觉算法研究
在PyTorch中可以通过torchvision.datasets.CIFAR10/CIFAR100加载:
 

from torchvision import datasets# 加载CIFAR-10
train_data = datasets.CIFAR10(root='./data', train=True, download=True)
test_data = datasets.CIFAR10(root='./data', train=False, download=True)# 加载CIFAR-100
train_data = datasets.CIFAR100(root='./data', train=True, download=True)

从CIFAR-10中获取一张图片的代码如下:

import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader , Dataset # DataLoader 是 PyTorch 中用于加载数据的工具
from torchvision import datasets, transforms # torchvision 是一个用于计算机视觉的库,datasets 和 transforms 是其中的模块
import matplotlib.pyplot as plt# 数据预处理先归一化,再标准化
transform = transforms.Compose([transforms.ToTensor(),  # 转换为张量并归一化到[0,1]transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2470, 0.2435, 0.2616))  # cifar10的均值和标准差,用于标准化
])
# 加载cifar-10数据集,如果没有会自动下载
train_dataset = datasets.CIFAR10(root='./data',train=True,download=True,transform=transform
)test_dataset = datasets.CIFAR10(root='./data',train=False,transform=transform
)# 随机选择一张图片,可以重复运行,每次都会随机选择
sample_idx = torch.randint(0, len(train_dataset), size=(1,)).item() # 随机选择一张图片的索引
# len(train_dataset) 表示训练集的图片数量;size=(1,)表示返回一个索引;torch.randint() 函数用于生成一个指定范围内的随机数,item() 方法将张量转换为 Python 数字
image, label = train_dataset[sample_idx] # 获取图片和标签# 显示图片(需要先反标准化)
def imshow(img):img = img * torch.tensor([0.2470, 0.2435, 0.2616]).view(3,1,1) + torch.tensor([0.4914, 0.4822, 0.4465]).view(3,1,1)  # 反标准化img = img.numpy().transpose((1, 2, 0))  # 从(C,H,W)转换为(H,W,C)plt.imshow(img)plt.show()# 显示图片和标签
print(f"随机索引: {sample_idx}")
print(f"标签: {train_dataset.classes[label]}")
imshow(image)

相关文章:

  • 浅谈国企数字化转型
  • Jenkins-Pipeline:学习笔记
  • 什么是软件的生命周期,以及常见的开发测试模型
  • 电脑软件管家 免安装便携 四十多种功能系统优化”“磁盘清理”“隐私保护
  • 【行动指南】大一如何高效备考java
  • 密钥管理系统在存储加密场景中的深度实践:以TDE透明加密守护文件服务器安全
  • 十六进制数据转换为对应的字符串
  • 2025.5.23 【ZR NOI模拟赛 T3】高速公路 题解(容斥,高维前缀和,性质)
  • 精准耐用的工业流量管家 格恩朗金属管浮子流量计
  • MySQL OCP 与 Oracle OCP 认证,怎么选?
  • 生物化学:药品药物 营养和补充剂信息 第三方认证信息 常见误区 汇总
  • 零滑点期货跟单软件在小恒指交易中的作用。
  • 【PhysUnits】15 类型整数基本结构体补充P1(basic.rs)
  • 【第2章 绘制】2.13 坐标变换
  • HA-820A程控高压放大器详解
  • vue2指令方式防抖功能
  • CEH Practical 实战考试真题与答案
  • 【第2章 绘制】2.7 路径、描边与填充
  • 企业信息管理系统的设计与实现(代码+数据库+LW)
  • 开源架构在移动端开发中的卓越应用与深度解析
  • 金华网站建设工程网站建设/seo关键词是怎么优化的
  • 在线教育网站开发时长/百度关键词搜索广告的优缺点
  • 扬州有什么做网站的公司/seo点石论坛
  • 网站怎样做seo推广/站长友情链接
  • 用asp制作一个简单的网站/seo技术教学视频
  • 域名注册以后怎样做网站/怎么在百度上面打广告