版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
9.4任务实施9.4.1任务书AlexNet的CIFAR-100分类实战。CIFAR-100分类实战,主是包含以下内容:(1)导入需要的库和数据;(2)读取数据并对数据进行处理;(3)从官网中获取到AlexNet;(4)设置误差,优化函数,进行训练,且输出loss;(5)训练完后,进行通过测试数据进行测试,输出准确率。掌握AlexNet的一些基础知识; 掌握如何使用AlexNet实现CIFAR-100分类,及其一些数据的处理方式,以及优化算法的设置;9.4.2任务分组表9-3学生任务分配表班级组号指导老师组长学号成员数量组长任务组员姓名学号任务分工2.4.3获取信息引导问题1:查询相关资料,分析实验中需要用到哪些资料,描述CIFAR-100分类实战的实验操作顺序。准备资料:上网搜集CIFAR-100数据集的使用方法,如前往/~kriz/cifar.html了解CIFAR-100、获取数据集资源,学习其使用方法。通过网络和本书知识准备章节学习AlexNet的定义和使用方法。实验操作顺序:安装实验环境,安装alexnet。导入依赖,在test环境中展开实验。查找资料,编写获取数据、建立模型、训练和测试的相关代码。完成训练和测试,输出最终结果。引导问题2:自主学习,完成实验前的准备工作,创建实验检测路径及文件,数据下载地址为:/file/2743/cifar-100-python.tar.gz。创建“test10”文件夹,并将需要的数据放在"/home/techuser/Desktop/test10/data"路径下。简述创建实验检测路径及文件的步骤:在实验环境的桌面右键点击【创建文件夹(F)...】,输入文件夹名称为【test10】。打开【test10】文件夹,会显示其路径为"/home/techuser/Desktop/test10",并在该路径下新建一个名为【data】的文件夹,并且将需要的数据放在"/home/techuser/Desktop/test10/data"路径下,其下载地址为:"/file/2743/cifar-100-python.tar.gz"。之后,在压缩包上【右键】,点击【在此解压】,完成解压。2.4.4工作实施引导问题3:安装实验环境,安装alexnet。1)输入代码condaactivateCourse,激活实验环境。2)输入代码pipinstall--upgradealexnet_pytorch,安装alexnet。图9-12安装alexnet引导问题4:导入依赖,在test环境中展开实验。注意点:在接下来的实验中,我们需要在/home/techuser/Desktop/test10下新建文件并在该文件中完成实验,如文件名为“10test.py”。该实验使用之前实验所使用的course环境,实验前需要选择course环境。1)输入代码importos,导入标准库os。os库提供通用的,基本的操作系统交互功能(windows,macos,linux);是python标准库,包含几百个函数;与操作系统相关的,包括常用路径操作,进程管理,环境参数等。2)输入代码fromtorchvisionimportdatasets,transforms,从torchvision中引入_datasets,transforms。他们中包含了以下数据集MNIST,COCO,LSUNClassification,ImageFolder,Imagenet-12,CIFAR10andCIFAR100,STL10,SVHN,PhotoTour。它们具有getitem和len实现方法。因此,它们都可以传递给torch.utils.data.DataLoader可以使用torch.multiprocessing工作人员并行加载多个样本的数据。3)输入代码:请说明代码中部分参数。dset.CIFAR10(root,train=True,transform=None,target_transform=None,download=False)dset.CIFAR100(root,train=True,transform=None,target_transform=None,download=False)参数说明root:cifar-10-batches-py的根目录train:True=训练集,False=测试集download:True=从互联上下载数据,并将其放在root目录下。如果数据集已经下载,什么都不干transform:接收PIL映像并返回转换版本的函数/变换。例如,transforms.RandomCroptarget_transform:一个接收目标并转换它的函数/变换4)输入代码importtorch,引入torch。torch包含了多维张量的数据结构以及基于其上的多种数学操作。另外,它也提供了多种工具,其中一些可以更有效地对张量和任意类型进行序列化。它有CUDA的对应实现,可以在NVIDIAGPU上进行张量运算(计算能力>=2.0)。5)输入代码fromtorchimportnn,optim,从torch中引入nn,optim。torch.optim是一个实现了各种优化算法的库。大部分常用的方法得到支持,并且接口具备足够的通用性,使得未来能够集成更加复杂的方法。torch.nn的核心数据结构是Module,这是一个抽象概念,既可以表示神经网络中的某个层,也可以表示含多个层的神经网络。6)输入代码fromtorch.utils.dataimportDataLoader,从torch.utils.data中引入DataLoader,DataLoader的函数定义如下:DataLoader(dataset,batch_size=1,shuffle=False,sampler=None,num_workers=0,collate_fn=default_collate,pin_memory=False,drop_last=False),请说明函数定义中部分参数:参数说明dataset:加载的数据集(Dataset对象)batch_size:batchsizeshuffle::是否将数据打乱sampler:样本抽样num_workers:使用多进程加载的进程数,0代表不使用多进程collate_fn:如何将多个样本数据拼接成一个batch,一般使用默认的拼接方式即可pin_memory:是否将数据保存在pinmemory区,pinmemory中的数据转到GPU会快一些drop_last:dataset中的数据个数可能不是batch_size的整数倍,drop_last为True会将多出来不足一个batch的数据丢弃引导问题5:查看相关资料,设置数据处理方法。如果服务器有多个GPU,默认会全部使用。如果只想使用部分GPU,可以通过参数C#UDA_VISIBLE_DEVICES来设置GPU的可见性。请详述设置数据方法的代码,并记录训练过程中出现的问题及解决的方法。设置数据方法过程:步骤1:一次训练所选取的样本数。输入代码:batch_size=50步骤2:设置数据变换,输入代码:transform_train=transforms.Compose([transforms.Resize(224),#重置图像分辨率transforms.RandomHorizontalFlip(),#依据概率p对PIL图片进行水平翻转,默认0.5transforms.ToTensor(),#将PILImage或者ndarray转换为tensortransforms.Normalize((0.4914,0.4822,0.4465),(0.2023,0.1994,0.2010)),#对数据按通道进行标准化,即先减均值,再除以标准差])#设置测试数据变换transform_test=transforms.Compose([transforms.Resize(224),#重置图像分辨率transforms.ToTensor(),#将PILImage或者ndarray转换为tensortransforms.Normalize((0.4914,0.4822,0.4465),(0.2023,0.1994,0.2010)),#对数据按通道进行标准化,即先减均值,再除以标准差])出现的问题及解决的方法:引导问题6:查看相关资料,完成获取数据。请详述获取数据过程的代码,并记录获取过程中出现的问题及解决的方法。获取数据过程:步骤1:使用内置的函数导入数据集。输入代码:train_dataset=datasets.CIFAR100(root='./data',train=True,transform=transform_train,download=False)#root设置根路径,设置要进行训练,设置数据变换类型,是否下载数据test_dataset=datasets.CIFAR100(root='./data',train=False,transform=transform_test)#root设置根路径,设置不需要训练,设置数据变换类型步骤2:将读取出来的训练测试数据转化为dataloader。输入代码:train_loader=DataLoader(train_dataset,batch_size=batch_size,shuffle=True)test_loader=DataLoader(test_dataset,batch_size=batch_size,shuffle=False)出现的问题及解决的方法:引导问题7:查看相关资料,完成AlexNet建立。请详述建立过程的代码,并记录建立过程中出现的问题及解决的方法。AlexNet建立过程:步骤1:从alexnet_pytorch中引入AlexNet。输入代码:fromalexnet_pytorchimportAlexNet步骤2:从AlexNet中导入alexnet网络模型。输入代码:model=AlexNet.from_name('alexnet')AlexNet是在LeNet的基础上加深了网络的结构,学习更丰富更高维的图像特征,其特点有6点,请写出来:AlexNet的特点:
1.更深的网络结构
2.使用层叠的卷积层,即卷积层+卷积层+池化层来提取图像的特征
3.使用Dropout抑制过拟合
4.使用数据增强DataAugmentation抑制过拟合
5.使用Relu替换之前的sigmoid的作为激活函数
6.多GPU训练出现的问题及解决的方法:引导问题8:查看相关资料,完成训练模型。请详述训练模型的代码,并记录训练模型过程中出现的问题及解决的方法。训练模型过程:步骤1:设置是否使用cuda加速。设置训练中会用到的参数和函数:#训练次数epoches=50#学习率lr=0.001#交叉熵criterion=nn.CrossEntropyLoss()#优化optimizer=torch.optim.Adam(model.parameters(),lr=lr)#Adam(AdaptiveMomentEstimation)本质上是带有动量项的RMSprop,它利用梯度#的一阶矩估计和二阶矩估计动态调整每个参数的学习率。输入代码:device=torch.device("cuda"iftorch.cuda.is_available()else"cpu")#张量的device属性为所有张量提供了torch.device设备model.to(device)#to方法Tensors和Modules可用于容易地将对象移动到不同的设备(代替以前的cpu()或cuda()方法)步骤2:训练模型,输入代码:forepochinrange(epoches):#enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列fori,(images,labels)inenumerate(train_loader):images=images.to(device)labels=labels.to(device)#通过model预测images得到outputoutput=model(images)#通过交叉熵函数,获取到output于labels的lossloss=criterion(output,labels)#清空过往梯度optimizer.zero_grad()#反向传播,计算当前梯度loss.backward()#根据梯度更新网络参数optimizer.step()#计算i+1可以被100整除的进入,输出if(i+1)%100==0:print('Epoch[{}/{}],Loss:{:.4f}'.format(epoch+1,epoches,loss.item()))步骤3:检测模型,输入代码:#withtorch.no_grad()中的数据不需要计算梯度,也不会进行反向传播withtorch.no_grad():#将总数据量和预测成功的数目置零correct=0total=0#循环测试数据,得到images,labelsfori,(images,labels)inenumerate(test_loader):images,labels=images.to(device),labels.to(device)#根据模型预测output=model(images)#得到output的每一项数据与1的最大值,得到predicted_,predicted=torch.max(o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年公证处从业人员业务考试题库(含答案)
- 《家校同心同向 同心浇灌少年梦-高一秋季开学家长会》
- 2026年私募基金行政岗综合试题(附答案)
- 2026年天津市苏教版小学五年级英语下册阅读理解专项训练习题
- 生物制药一次性生产线项目可行性研究报告
- 固态薄膜电池项目可行性研究报告
- 经济方面的调研报告
- 群文阅读教学设计谢明莲
- 防汛安全隐患排查表格
- 留守儿童过春节的一些论文
- 2026太仓市城市发展集团有限公司第一批公开招聘6人考试参考题库及答案详解
- 天津市河东区2025-2026学年九年级上学期12月月考英语试题(含答案)
- 2026年秋季开学小学收心归位习惯养成教育课件
- 2026年山东将军开元纸业有限公司招聘(13人)笔试模拟试题及答案详解
- 2026陕西水务发展集团综合能源管理有限公司招聘笔试模拟试题及答案详解
- 国有企业董事会决策事项清单管理制度
- 2026年安徽(高考)化学考试试卷真题(含答案)
- 2026-2030中国航空光电吊舱行业研发创新策略及投资价值评估报告
- 周三多-管理学:原理与方法(第七版),第十八章
- 重庆育才中学新初一分班英语试卷含答案
- 土地-基准地价修正法测算表
评论
0/150
提交评论