




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
9.4任務(wù)實施9.4.1任務(wù)書AlexNet的CIFAR-100分類實戰(zhàn)。CIFAR-100分類實戰(zhàn),主是包含以下內(nèi)容:(1)導(dǎo)入需要的庫和數(shù)據(jù);(2)讀取數(shù)據(jù)并對數(shù)據(jù)進行處理;(3)從官網(wǎng)中獲取到AlexNet;(4)設(shè)置誤差,優(yōu)化函數(shù),進行訓(xùn)練,且輸出loss;(5)訓(xùn)練完后,進行通過測試數(shù)據(jù)進行測試,輸出準(zhǔn)確率。掌握AlexNet的一些基礎(chǔ)知識; 掌握如何使用AlexNet實現(xiàn)CIFAR-100分類,及其一些數(shù)據(jù)的處理方式,以及優(yōu)化算法的設(shè)置;9.4.2任務(wù)分組表9-3學(xué)生任務(wù)分配表班級組號指導(dǎo)老師組長學(xué)號成員數(shù)量組長任務(wù)組員姓名學(xué)號任務(wù)分工2.4.3獲取信息引導(dǎo)問題1:查詢相關(guān)資料,分析實驗中需要用到哪些資料,描述CIFAR-100分類實戰(zhàn)的實驗操作順序。準(zhǔn)備資料:上網(wǎng)搜集CIFAR-100數(shù)據(jù)集的使用方法,如前往/~kriz/cifar.html了解CIFAR-100、獲取數(shù)據(jù)集資源,學(xué)習(xí)其使用方法。通過網(wǎng)絡(luò)和本書知識準(zhǔn)備章節(jié)學(xué)習(xí)AlexNet的定義和使用方法。實驗操作順序:安裝實驗環(huán)境,安裝alexnet。導(dǎo)入依賴,在test環(huán)境中展開實驗。查找資料,編寫獲取數(shù)據(jù)、建立模型、訓(xùn)練和測試的相關(guān)代碼。完成訓(xùn)練和測試,輸出最終結(jié)果。引導(dǎo)問題2:自主學(xué)習(xí),完成實驗前的準(zhǔn)備工作,創(chuàng)建實驗檢測路徑及文件,數(shù)據(jù)下載地址為:/file/2743/cifar-100-python.tar.gz。創(chuàng)建“test10”文件夾,并將需要的數(shù)據(jù)放在"/home/techuser/Desktop/test10/data"路徑下。簡述創(chuàng)建實驗檢測路徑及文件的步驟:在實驗環(huán)境的桌面右鍵點擊【創(chuàng)建文件夾(F)...】,輸入文件夾名稱為【test10】。打開【test10】文件夾,會顯示其路徑為"/home/techuser/Desktop/test10",并在該路徑下新建一個名為【data】的文件夾,并且將需要的數(shù)據(jù)放在"/home/techuser/Desktop/test10/data"路徑下,其下載地址為:"/file/2743/cifar-100-python.tar.gz"。之后,在壓縮包上【右鍵】,點擊【在此解壓】,完成解壓。2.4.4工作實施引導(dǎo)問題3:安裝實驗環(huán)境,安裝alexnet。1)輸入代碼condaactivateCourse,激活實驗環(huán)境。2)輸入代碼pipinstall--upgradealexnet_pytorch,安裝alexnet。圖9-12安裝alexnet引導(dǎo)問題4:導(dǎo)入依賴,在test環(huán)境中展開實驗。注意點:在接下來的實驗中,我們需要在/home/techuser/Desktop/test10下新建文件并在該文件中完成實驗,如文件名為“10test.py”。該實驗使用之前實驗所使用的course環(huán)境,實驗前需要選擇course環(huán)境。1)輸入代碼importos,導(dǎo)入標(biāo)準(zhǔn)庫os。os庫提供通用的,基本的操作系統(tǒng)交互功能(windows,macos,linux);是python標(biāo)準(zhǔn)庫,包含幾百個函數(shù);與操作系統(tǒng)相關(guān)的,包括常用路徑操作,進程管理,環(huán)境參數(shù)等。2)輸入代碼fromtorchvisionimportdatasets,transforms,從torchvision中引入_datasets,transforms。他們中包含了以下數(shù)據(jù)集MNIST,COCO,LSUNClassification,ImageFolder,Imagenet-12,CIFAR10andCIFAR100,STL10,SVHN,PhotoTour。它們具有g(shù)etitem和len實現(xiàn)方法。因此,它們都可以傳遞給torch.utils.data.DataLoader可以使用torch.multiprocessing工作人員并行加載多個樣本的數(shù)據(jù)。3)輸入代碼:請說明代碼中部分參數(shù)。dset.CIFAR10(root,train=True,transform=None,target_transform=None,download=False)dset.CIFAR100(root,train=True,transform=None,target_transform=None,download=False)參數(shù)說明root:cifar-10-batches-py的根目錄train:True=訓(xùn)練集,False=測試集download:True=從互聯(lián)上下載數(shù)據(jù),并將其放在root目錄下。如果數(shù)據(jù)集已經(jīng)下載,什么都不干transform:接收PIL映像并返回轉(zhuǎn)換版本的函數(shù)/變換。例如,transforms.RandomCroptarget_transform:一個接收目標(biāo)并轉(zhuǎn)換它的函數(shù)/變換4)輸入代碼importtorch,引入torch。torch包含了多維張量的數(shù)據(jù)結(jié)構(gòu)以及基于其上的多種數(shù)學(xué)操作。另外,它也提供了多種工具,其中一些可以更有效地對張量和任意類型進行序列化。它有CUDA的對應(yīng)實現(xiàn),可以在NVIDIAGPU上進行張量運算(計算能力>=2.0)。5)輸入代碼fromtorchimportnn,optim,從torch中引入nn,optim。torch.optim是一個實現(xiàn)了各種優(yōu)化算法的庫。大部分常用的方法得到支持,并且接口具備足夠的通用性,使得未來能夠集成更加復(fù)雜的方法。torch.nn的核心數(shù)據(jù)結(jié)構(gòu)是Module,這是一個抽象概念,既可以表示神經(jīng)網(wǎng)絡(luò)中的某個層,也可以表示含多個層的神經(jīng)網(wǎng)絡(luò)。6)輸入代碼fromtorch.utils.dataimportDataLoader,從torch.utils.data中引入DataLoader,DataLoader的函數(shù)定義如下:DataLoader(dataset,batch_size=1,shuffle=False,sampler=None,num_workers=0,collate_fn=default_collate,pin_memory=False,drop_last=False),請說明函數(shù)定義中部分參數(shù):參數(shù)說明dataset:加載的數(shù)據(jù)集(Dataset對象)batch_size:batchsizeshuffle::是否將數(shù)據(jù)打亂sampler:樣本抽樣num_workers:使用多進程加載的進程數(shù),0代表不使用多進程collate_fn:如何將多個樣本數(shù)據(jù)拼接成一個batch,一般使用默認的拼接方式即可pin_memory:是否將數(shù)據(jù)保存在pinmemory區(qū),pinmemory中的數(shù)據(jù)轉(zhuǎn)到GPU會快一些drop_last:dataset中的數(shù)據(jù)個數(shù)可能不是batch_size的整數(shù)倍,drop_last為True會將多出來不足一個batch的數(shù)據(jù)丟棄引導(dǎo)問題5:查看相關(guān)資料,設(shè)置數(shù)據(jù)處理方法。如果服務(wù)器有多個GPU,默認會全部使用。如果只想使用部分GPU,可以通過參數(shù)C#UDA_VISIBLE_DEVICES來設(shè)置GPU的可見性。請詳述設(shè)置數(shù)據(jù)方法的代碼,并記錄訓(xùn)練過程中出現(xiàn)的問題及解決的方法。設(shè)置數(shù)據(jù)方法過程:步驟1:一次訓(xùn)練所選取的樣本數(shù)。輸入代碼:batch_size=50步驟2:設(shè)置數(shù)據(jù)變換,輸入代碼:transform_train=transforms.Compose([transforms.Resize(224),#重置圖像分辨率transforms.RandomHorizontalFlip(),#依據(jù)概率p對PIL圖片進行水平翻轉(zhuǎn),默認0.5transforms.ToTensor(),#將PILImage或者ndarray轉(zhuǎn)換為tensortransforms.Normalize((0.4914,0.4822,0.4465),(0.2023,0.1994,0.2010)),#對數(shù)據(jù)按通道進行標(biāo)準(zhǔn)化,即先減均值,再除以標(biāo)準(zhǔn)差])#設(shè)置測試數(shù)據(jù)變換transform_test=transforms.Compose([transforms.Resize(224),#重置圖像分辨率transforms.ToTensor(),#將PILImage或者ndarray轉(zhuǎn)換為tensortransforms.Normalize((0.4914,0.4822,0.4465),(0.2023,0.1994,0.2010)),#對數(shù)據(jù)按通道進行標(biāo)準(zhǔn)化,即先減均值,再除以標(biāo)準(zhǔn)差])出現(xiàn)的問題及解決的方法:引導(dǎo)問題6:查看相關(guān)資料,完成獲取數(shù)據(jù)。請詳述獲取數(shù)據(jù)過程的代碼,并記錄獲取過程中出現(xiàn)的問題及解決的方法。獲取數(shù)據(jù)過程:步驟1:使用內(nèi)置的函數(shù)導(dǎo)入數(shù)據(jù)集。輸入代碼:train_dataset=datasets.CIFAR100(root='./data',train=True,transform=transform_train,download=False)#root設(shè)置根路徑,設(shè)置要進行訓(xùn)練,設(shè)置數(shù)據(jù)變換類型,是否下載數(shù)據(jù)test_dataset=datasets.CIFAR100(root='./data',train=False,transform=transform_test)#root設(shè)置根路徑,設(shè)置不需要訓(xùn)練,設(shè)置數(shù)據(jù)變換類型步驟2:將讀取出來的訓(xùn)練測試數(shù)據(jù)轉(zhuǎn)化為dataloader。輸入代碼:train_loader=DataLoader(train_dataset,batch_size=batch_size,shuffle=True)test_loader=DataLoader(test_dataset,batch_size=batch_size,shuffle=False)出現(xiàn)的問題及解決的方法:引導(dǎo)問題7:查看相關(guān)資料,完成AlexNet建立。請詳述建立過程的代碼,并記錄建立過程中出現(xiàn)的問題及解決的方法。AlexNet建立過程:步驟1:從alexnet_pytorch中引入AlexNet。輸入代碼:fromalexnet_pytorchimportAlexNet步驟2:從AlexNet中導(dǎo)入alexnet網(wǎng)絡(luò)模型。輸入代碼:model=AlexNet.from_name('alexnet')AlexNet是在LeNet的基礎(chǔ)上加深了網(wǎng)絡(luò)的結(jié)構(gòu),學(xué)習(xí)更豐富更高維的圖像特征,其特點有6點,請寫出來:AlexNet的特點:
1.更深的網(wǎng)絡(luò)結(jié)構(gòu)
2.使用層疊的卷積層,即卷積層+卷積層+池化層來提取圖像的特征
3.使用Dropout抑制過擬合
4.使用數(shù)據(jù)增強DataAugmentation抑制過擬合
5.使用Relu替換之前的sigmoid的作為激活函數(shù)
6.多GPU訓(xùn)練出現(xiàn)的問題及解決的方法:引導(dǎo)問題8:查看相關(guān)資料,完成訓(xùn)練模型。請詳述訓(xùn)練模型的代碼,并記錄訓(xùn)練模型過程中出現(xiàn)的問題及解決的方法。訓(xùn)練模型過程:步驟1:設(shè)置是否使用cuda加速。設(shè)置訓(xùn)練中會用到的參數(shù)和函數(shù):#訓(xùn)練次數(shù)epoches=50#學(xué)習(xí)率lr=0.001#交叉熵criterion=nn.CrossEntropyLoss()#優(yōu)化optimizer=torch.optim.Adam(model.parameters(),lr=lr)#Adam(AdaptiveMomentEstimation)本質(zhì)上是帶有動量項的RMSprop,它利用梯度#的一階矩估計和二階矩估計動態(tài)調(diào)整每個參數(shù)的學(xué)習(xí)率。輸入代碼:device=torch.device("cuda"iftorch.cuda.is_available()else"cpu")#張量的device屬性為所有張量提供了torch.device設(shè)備model.to(device)#to方法Tensors和Modules可用于容易地將對象移動到不同的設(shè)備(代替以前的cpu()或cuda()方法)步驟2:訓(xùn)練模型,輸入代碼:forepochinrange(epoches):#enumerate()函數(shù)用于將一個可遍歷的數(shù)據(jù)對象(如列表、元組或字符串)組合為一個索引序列fori,(images,labels)inenumerate(train_loader):images=images.to(device)labels=labels.to(device)#通過model預(yù)測images得到outputoutput=model(images)#通過交叉熵函數(shù),獲取到output于labels的lossloss=criterion(output,labels)#清空過往梯度optimizer.zero_grad()#反向傳播,計算當(dāng)前梯度loss.backward()#根據(jù)梯度更新網(wǎng)絡(luò)參數(shù)optimizer.step()#計算i+1可以被100整除的進入,輸出if(i+1)%100==0:print('Epoch[{}/{}],Loss:{:.4f}'.format(epoch+1,epoches,loss.item()))步驟3:檢測模型,輸入代碼:#withtorch.no_grad()中的數(shù)據(jù)不需要計算梯度,也不會進行反向傳播withtorch.no_grad():#將總數(shù)據(jù)量和預(yù)測成功的數(shù)目置零correct=0total=0#循環(huán)測試數(shù)據(jù),得到images,labelsfori,(images,labels)inenumerate(test_loader):images,labels=images.to(device),labels.to(device)#根據(jù)模型預(yù)測output=model(images)#得到output的每一項數(shù)據(jù)與1的最大值,得到predicted_,predicted=torch.max(o
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年金融學(xué)專業(yè)考試試卷及答案
- 2025年土木工程專業(yè)考試試卷及答案分享
- 2025年資產(chǎn)評估師考試題及答案
- 2025年計算機科學(xué)與技術(shù)專業(yè)考試試題及答案
- 2025年園藝師資格考試試卷及答案測試
- 2025年區(qū)域經(jīng)濟學(xué)考試試題及答案
- 拼多多平臺店鋪流量精準(zhǔn)投放與市場拓展合同
- 國際知識產(chǎn)權(quán)許可仲裁條款協(xié)議
- 智能環(huán)衛(wèi)灑水車租賃與道路清潔及綠化服務(wù)協(xié)議
- 生物芯片研發(fā)與生產(chǎn)全球市場戰(zhàn)略合作伙伴協(xié)議
- 2024年典型事故案例警示教育手冊15例
- 清掃保潔綠化養(yǎng)護 投標(biāo)方案(技術(shù)標(biāo) )
- 2024年河北省中考物理試卷附答案
- 小學(xué)科學(xué)教育工作領(lǐng)導(dǎo)小組及其職責(zé)
- 【零件加工中各工序的切削用量與加工內(nèi)容綜述6100字】
- 教師職業(yè)道德完整省公開課金獎全國賽課一等獎微課獲獎
- CJT 358-2019 非開挖工程用聚乙烯管
- 紅色研學(xué)實踐活動方案策劃
- 數(shù)字貿(mào)易學(xué) 課件 第11章 全球公司
- 中國微光夜視儀行業(yè)發(fā)展趨勢及發(fā)展前景研究報告2024-2029版
- 帶你聽懂中國傳統(tǒng)音樂智慧樹知到期末考試答案2024年
評論
0/150
提交評論