课程链接:Python人工智能20个小时玩转NLP自然语言处理【黑马程序员】_哔哩哔哩_bilibili
目的:对不同的输入图像进行识别并分类。采用CIFAR10数据集,进行单分类任务
目录
总体步骤:
1、使用torchvision下载CIFAR10数据集
2、定义卷积神经网络
3、定义损失函数
4、在训练集上训练模型
5、在测试集上测试模型
一、数据集处理
1.1 下载数据集
import torch
import torchvision
import torchvision.transforms as transforms
#transforms包要将torchvision中[0,1]数据格式转化为[-1,1]的标准张量格式
#首先创建数据转换器,将参数转化为tensor需要的格式并且将数据变为[-1,1]中
transform=transforms.Compose([transforms.ToTensor(),transforms.Normalize(0.5,0.5,0.5),(0.5,0.5,0.5)])
#数据的load与提取,数据位置放在当前代码目录下的data中,下载的是训练集train=True,并且下载好的数据用transform进行转换
trainset=torchvision.datasets.CIFAR10(root="./data",train=True,download=True,transform=transform)
#数据要DataLoader封装,便于pytorch后续操作,迭代器设置后续一次性访问四条数据,suffle=True表示数据打乱,并且多个线程加速数据读取
trainloader=torch.utils.data.DataLoader(trainset,batch_size=4,suffle=True,num_workers=2)
#测试集train=False,测试数据不需要打乱所以suffle=False
testset=torchvision.datasets.CIFAR10(root="./data",train=False,download=True,transform=transform)
testloader=torch.utils.data.DataLoader(testset,batch_size=4,suffle=False,num_workers=2)
#10个标签
classes=("plane","car","bird","cat","deer","dog","frog","horse","ship","truck")
#课程中一直使用Linux ls 命令用于显示指定工作目录下的内容。如果Windows下载报错可以将num_workers设置为0