python打卡day38

Dataset和Dataloader类

  1. Dataset类的__getitem__和__len__方法(本质是python的特殊方法)
  2. Dataloader类
  3. minist手写数据集的了解

**作业:**了解下cifar数据集,尝试获取其中一张图片

python 复制代码
import torch
import torchvision
from torch.utils.data import DataLoader , Dataset # DataLoader 是 PyTorch 中用于加载数据的工具
import torchvision.transforms as transforms
import matplotlib.pyplot as plt
import numpy as np

# 设置随机种子以确保结果可重复
torch.manual_seed(42)

transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2470, 0.2435, 0.2616))  # CIFAR的标准化参数
])
train_dataset = torchvision.datasets.CIFAR10(
    root='./dataCIFAR',  # 数据存放的路径
    train=True,     # 使用训练集
    download=True,  # 如果没有数据,就下载
    transform=transform
)

# 定义类别
classes = ('plane', 'car', 'bird', 'cat', 'deer',
           'dog', 'frog', 'horse', 'ship', 'truck')

# 随机选择一张图片
idx = torch.randint(0, len(train_dataset), size=(1,))
img, label = train_dataset[idx]

# 反标准化函数
def denormalize(x):
    mean = torch.tensor([0.4914, 0.4822, 0.4465])
    std = torch.tensor([0.2470, 0.2435, 0.2616])
    # CIFAR-10是彩色图像,需要对所有通道进行反标准化
    return x * std[:, None, None] + mean[:, None, None]

# 显示图片
plt.figure()
plt.imshow(denormalize(img).permute(1, 2, 0))  # 调整通道顺序以正确显示彩色图像
plt.title(f'Label: {classes[label]}')
plt.axis('off')
plt.show()


# 3. 创建数据加载器
train_loader = DataLoader(
    train_dataset,
    batch_size=64, # 每个批次64张图片,一般是2的幂次方,这与GPU的计算效率有关
    shuffle=True # 随机打乱数据
)

@浙大疏锦行

相关推荐
大模型铲屎官11 分钟前
【深度学习-Day 31】CNN基石:彻底搞懂卷积层 (Convolutional Layer) 的工作原理
人工智能·pytorch·python·深度学习·机器学习·cnn·llm
struggle20251 小时前
DeepForest开源程序是用于 Airborne RGB 机器学习的 Python 软件包
开发语言·python
杜大哥1 小时前
Python:.py文件如何变成双击可执行的windows程序?(版本1)
开发语言·windows·python
四川兔兔2 小时前
Pytorch 实战四 VGG 网络训练
人工智能·pytorch·python·深度学习·机器学习·回归·vgg网络
猫头虎2 小时前
2025最新Python 100个常用函数在线体验项目
android·java·python·pycharm·django·pandas·pip
微信公众号:AI创造财富2 小时前
构建 docket uable to prepar context: path “.“ not found
python·plotly·flask·pillow·ipython·tornado
烛阴2 小时前
Python多进程开发实战:轻松突破GIL瓶颈
前端·python
Sim time3 小时前
用AI从0开始量化交易-Anaconda环境(env)和缓存(pkg)更改储存位置
人工智能·python·conda
struggle20253 小时前
torchmd-net开源程序是训练神经网络潜力
c++·人工智能·python·深度学习·神经网络
软件开发技术深度爱好者3 小时前
python中学物理实验模拟:凸透镜成像和凹透镜成像
开发语言·python