深度学习P2周:CIFAR10彩色图片识别

P2周:CIFAR10彩色图片识别

环境准备:

Python:3.12
编译器:jupyter notebook
深度学习环境:Pytorch(GPU)

一、前期设置

1、设置GPU

代码实现:

import torch
import torch.nn as nn
import matplotlib.pyplot as plt
import torchvision

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")#使用CPU

device

我的显卡是:Nvdia 4070Ti super
代码输出结果:

device(type=‘cuda’)

2、导入数据

使用torchvision中的dataset下载CIFAR10数据采集,并划分好训练集和测试集。并使用dataloader加载数据,并设置好基本的batch_size。

torchvision 是 PyTorch 深度学习框架的官方视觉工具包,专门为计算机视觉任务设计。它提供了一系列功能,主要包括:
数据集加载器 (torchvision.datasets):支持常用的计算机视觉数据集,如 ImageNet、CIFAR10、MNIST等,方便用户下载和加载数据。

预训练模型 (torchvision.models):包含在大规模数据集上训练的模型,如ResNet、AlexNet、VGG、Inception 等,用户可以直接使用这些模型进行迁移学习或微调。

数据转换和处理(torchvision.transforms):提供了一系列对图像进行预处理和数据增强的操作,如裁剪、缩放、翻转、归一化等,简化了数据预处理流程。

实用工具 (torchvision.utils):包括一些辅助函数,如将一批图像张量保存为图像网格,方便可视化。

代码实现:

train_ds = torchvision.datasets.CIFAR10('.data', 
                                      train=True, 
                                      transform=torchvision.transforms.ToTensor(), # 将数据类型转化为Tensor
                                      download=True)

test_ds  = torchvision.datasets.CIFAR10('.data', 
                                      train=False, 
                                      transform=torchvision.transforms.ToTensor(), # 将数据类型转化为Tensor
                                      download=True)

代码输出:
在这里插入图片描述
接下来设置batch_size。
代码实现:

batch_size = 32

train_dl = torch.utils.data.DataLoader(train_ds, 
                                       batch_size=batch_size, 
                                       shuffle=True)#随机打乱

test_dl  = torch.utils.data.DataLoader(test_ds, 
                                       batch_size=batch_size)#测试集不需要打乱

# 取一个批次查看数据格式
# 数据的shape为:[batch_size, channel, height, weight]
# 其中batch_size为自己设定,channel,height和weight分别是图片的通道数,高度和宽度。
imgs, labels = next(iter(train_dl))
imgs.shape

其中,iter()函数用于创建一个可迭代对象的迭代器,他的作用是将train_dl转换为一个迭代器,使其可以使用next()函数逐个获取批次数据。而next()函数用于从迭代器中获取下一项,在这里会从train_dl的迭代器中获取下一批的数据。

3、数据可视化

和上周一样,我们同样先对一组数据进行可视化。
代码实现:

# 指定图片大小,图像大小为20宽、5高的绘图(单位为英寸inch)
plt.figure(figsize=(20, 5)) 
for i, imgs in enumerate(imgs[:20])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值