深度学习入门:pytorch实战CIFAR10图片分类

这篇博客介绍了使用PyTorch进行CIFAR10图像分类的实践过程,包括数据预处理、网络构建、损失函数和优化器的选择,以及训练和测试步骤。在数据预处理中,提到了将PIL图像转换为Tensor以及归一化的选择。网络结构未详细展开,但提到使用了交叉熵损失和带动量的SGD优化器。训练过程中,建议迭代次数适中以防止过拟合。
摘要由CSDN通过智能技术生成

本篇博客站在复现的角度,讲解每一步可能遇到的问题。但并不会逐一对每句代码进行讲解,因此至少需要理解pytorch训练神经网络的过程(如何求梯度并更新参数)。
你可以狠狠的戳这里,直接查看pytorch官网原项目:

我使用的环境:

  • pytorch 1.4+cpu
  • python 3.7‘

CIFAR10数据样式
在这里插入图片描述
我们跳过一些展示图片的过程,直入主题。

首先,要下载CIFAR10数据库。注意:
1、torchvision数据集输出的是PIL类,且值取值范围是[0,1]。因此首先要将PIL转换为Tensor类。pytorch官网上又将其值归一化到[-1,1],这一步跳过也可以。
推荐阅读:
知乎:什么时候对数据进行[0,1]归一化,什么时候[-1,1]归一化,二者分别在什么场景?
博客:为什么一些机器学习模型需要对数据进行归一化?

2、要是运行出错就把num_workers 这个选项设为0。关于num_wokers作用:

num_workers:使用多进程加载的进程数,0代表不使用多进程

import torch
import torchvision
import torchvision.transforms as transforms
transform = transforms.Compose(
    [transforms.ToTensor(),
     transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])

trainset = torchvision.datasets.CIFAR10(root='./data', train=True,
                                        download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,
                                          shuffle=True, num_workers=2)

testset = torchvision
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值