




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
備課日期:年月日授課時(shí)間課時(shí)(理論+實(shí)驗(yàn))周次星期:節(jié)次:授課課題深度學(xué)習(xí)[實(shí)踐]教學(xué)目標(biāo)1.了解PyTorch框架的安裝方法。2.掌握PyTorch框架基本操作方法。教學(xué)重點(diǎn)1.PyTorch框架基本操作;2.利用PyTorch框架構(gòu)建深度學(xué)習(xí)模型的基本流程。教學(xué)準(zhǔn)備PPT、點(diǎn)名冊(cè)等。教學(xué)方法實(shí)例演示。教學(xué)過程設(shè)計(jì)備注課題引入【思考】如何構(gòu)建深度學(xué)習(xí)模型?【關(guān)鍵】PyTorch框架是由Facebook開源的基于Python語言的深度神經(jīng)網(wǎng)絡(luò)框架,不但可靈活、動(dòng)態(tài)地構(gòu)建神經(jīng)網(wǎng)絡(luò),而且可通過張量計(jì)算實(shí)現(xiàn)強(qiáng)大的GPU加速?!緯r(shí)間】分鐘。教學(xué)步驟及主要內(nèi)容【主板書】§14.PyTorch框架一、概述【主板書】概述1.發(fā)展歷程:2017年1月,F(xiàn)acebook人工智能研究院(FAIR)基于Torch(由豐富機(jī)器學(xué)習(xí)算法支持的科學(xué)計(jì)算框架)推出。2.主要特點(diǎn):(1)通過高維數(shù)組(張量)、自動(dòng)求導(dǎo)(變量)與神經(jīng)網(wǎng)絡(luò)(層/模塊)等三級(jí)抽象層次實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的構(gòu)建,思路明晰、結(jié)構(gòu)簡(jiǎn)潔。(2)與Tensorflow的靜態(tài)計(jì)算圖不同,PyTorch的計(jì)算圖是動(dòng)態(tài)的(即可以根據(jù)計(jì)算需要實(shí)時(shí)改變計(jì)算圖)。(3)利用GPU運(yùn)算加速以提高深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練與測(cè)試的效率。【時(shí)間】分鐘。【提問】。二、安裝與配置【主板書】安裝與配置利用Ananconda環(huán)境可快速實(shí)現(xiàn)PyTorch框架的安裝與配置。1.搭建Anaconda環(huán)境:演示?!鳤naconda提供庫(kù)或包管理與環(huán)境管理的功能,可以方便地解決Python并存、切換以及各種第三方包安裝與相互連接等問題。Anaconda包含了Numpy、Scipy、Pandas、Python等720左右涉及機(jī)器學(xué)習(xí)、數(shù)據(jù)可視化等科學(xué)計(jì)算開源包及其依賴項(xiàng)。2.Anaconda常用命令:?jiǎn)?dòng)程序組中的AnacondaPrompt程序。創(chuàng)建虛擬環(huán)境:condacreate--nameXXXpython=XXX激活虛擬環(huán)境:condaactivateXXX查看已安裝的包:condalist查看指定虛擬環(huán)境下已安裝的包:condalist-XXX查看所有的環(huán)境:condaenvlist關(guān)閉當(dāng)前虛擬環(huán)境:condadeactivate更新指定包:condaupdateXXX安裝包:condainstallXXX卸載指定包:condauninstallXXX刪除虛擬環(huán)境:condaremove--nameDL–all刪除沒用的包:condaclean-p刪除所有包:condaclean-y–all復(fù)制虛擬環(huán)境:condacreate--namenewname–cloneoldname3.安裝PyTorch。【演示】(1)命令生成方式:/。(2)命令的運(yùn)行方式:Anaconda命令窗口?!緩?qiáng)化與拓展】安裝源無法連接時(shí)的解決方法:通過“win+R”快捷鍵打開”運(yùn)行”框后輸入“%HOMEPATH%”執(zhí)行,然后找到并打開.condarc文件,將相關(guān)數(shù)據(jù)源鏈接復(fù)制相關(guān)位置即可?!緯r(shí)間】分鐘?!咎釂枴俊H?、數(shù)據(jù)類型與基本操作【主板書】數(shù)據(jù)類型與基本操作1.張量:Pytorch框架最基本的操作對(duì)象為張量(Tensor),其在結(jié)構(gòu)上與Numpy庫(kù)中的多維數(shù)組類似,但可以利用GPU加速其數(shù)值計(jì)算?!糚PT〗演示:張量基本操作。(1)定義矩陣:全0矩陣、全1矩陣、隨機(jī)矩陣。(2)獲取Tensor的尺寸:x.shape與x.size()。(3)_在方法中的意義:表示對(duì)自身的改變。(4)索引:x[:,1]。(5)改變形狀:view()函數(shù)。(6)維度增加與降低:unsqueeze()與squeeze()函數(shù)。(7)Tensor與Numpy之間轉(zhuǎn)換:例1.Numpy轉(zhuǎn)化為Tensor:torch.from_numpy(numpy矩陣)。A=np.array([[1,2],[3,4],[5,6]])torch_A=torch.from_numpy(A)print(torch_A)例2.Tensor轉(zhuǎn)化為numpy:Tensor矩陣.numpy()。A=torch.randn((3,2))#隨機(jī)矩陣numpy_A=A.numpy()#轉(zhuǎn)換為Numpy矩陣print(numpy_A)2.變量:Pytorch框架最重為的數(shù)據(jù)類型為變量(Variable),其在張量的基礎(chǔ)上可實(shí)現(xiàn)輸入數(shù)據(jù)或模型的自動(dòng)求導(dǎo)、誤差的反向傳播等功能,在計(jì)算圖的構(gòu)建中具有極為重要的作用。(1)基本屬性data屬性:表示當(dāng)前變量保存的數(shù)據(jù),可通過data屬性訪問。grad屬性:累計(jì)與保存針對(duì)變量的梯度或求導(dǎo)結(jié)果。creator屬性:Variable的操作(比如乘法或者加法等)。(2)相關(guān)庫(kù)的導(dǎo)入fromtorch.autogradimportVariable〖PPT〗演示:變量定義?!靖卑鍟客茖?dǎo)函數(shù)求導(dǎo)過程。importtorchfromtorch.autogradimportVariable#定義三個(gè)變量x=Variable(torch.Tensor([1,2,3]),requires_grad=True)w=Variable(torch.Tensor([2,3,4]),requires_grad=True)b=Variable(torch.Tensor([3,4,5]),requires_grad=True)#構(gòu)建計(jì)算圖(y=w*x^2+b)y=w*x*x+b#自動(dòng)求導(dǎo),計(jì)算梯度y.backward(torch.Tensor([1,1,1]))#輸出求結(jié)果print(x.grad)#x.grad=2wxprint(w.grad)#w.grad=x^2print(b.grad)#b.grad=13.自動(dòng)求導(dǎo):在定義變量時(shí)將參數(shù)requires_grad設(shè)置為True的目的在于自動(dòng)實(shí)現(xiàn)對(duì)指定變量的求導(dǎo)?!緩?qiáng)化與拓展】張量的前向傳播操作將構(gòu)造一個(gè)計(jì)算圖以用于計(jì)算神經(jīng)網(wǎng)絡(luò)中反向傳播時(shí)的梯度。4.計(jì)算圖:計(jì)算圖是描述運(yùn)算的有向無環(huán)圖(節(jié)點(diǎn)為表示數(shù)據(jù)的向量、矩陣與張量,邊為表示運(yùn)算的由輸出張量到輸入張量的映射函數(shù))?!緩?qiáng)化與拓展】采用運(yùn)算圖的優(yōu)勢(shì)在于可使自動(dòng)求導(dǎo)或梯度計(jì)算更加方便、快捷。例3.自動(dòng)求導(dǎo)與計(jì)算圖。問題:利用數(shù)據(jù)(x,label)={(1,5),(2,10),(3,15)}擬合直線(真實(shí)直線:y=5*x)。(1)前向傳播:由x求取y。(2)計(jì)算圖:y=w*xy=w*xwx(3)損失函數(shù):L(4)誤差反向傳播:利用backward()函數(shù)實(shí)現(xiàn)?!靖卑鍟棵枋鲫P(guān)鍵步驟。importtorchfromtorch.autogradimportVariablex=torch.Tensor([2])#輸入y=torch.Tensor([10])#輸出loss=torch.nn.MSELoss()#均方誤差w=Variable(torch.randn(1),requires_grad=True)#初始化參數(shù)print(w)foriinrange(10):#迭代10次y_=w*xl=loss(y,y_)l.backward()print(w.grad.data)w=Variable(w-0.1*w.grad.data,requires_grad=True)print(w)print(-2*x*(y-y_))【時(shí)間】分鐘?!咎釂枴?。四、nn.Module類【主板書】nn.Module類PyTorch框架在自定義網(wǎng)絡(luò)的時(shí)候,需要繼承nn.Module類并重新實(shí)現(xiàn)構(gòu)造函數(shù)__init__構(gòu)造函數(shù)和forward這兩個(gè)方法。【強(qiáng)化與拓展】(1)通常把神經(jīng)網(wǎng)絡(luò)中具有可學(xué)習(xí)參數(shù)的層(如全連接層、卷積層等)放在構(gòu)造函數(shù)__init__()中。(2)不具有可學(xué)習(xí)參數(shù)的層(如ReLU、dropout、BatchNormanation層)如果不放在構(gòu)造函數(shù)__init__()里面,則在forward()方法里面可以使用nn.functional代替。(3)forward()方法是實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)各層之間連接關(guān)系的核心,必須要重寫。〖PPT〗演示:nn.Module類的使用。【時(shí)間】分鐘。【提問】。五、Sequential類【主板書】nn.Module類Sequential繼承自Module類,其相當(dāng)于一個(gè)可包含多個(gè)層的容器以方便神經(jīng)網(wǎng)絡(luò)的構(gòu)建。1.利用Sequential類構(gòu)建簡(jiǎn)單的網(wǎng)絡(luò)?!緩?qiáng)化與拓展】在Sequential類實(shí)例化時(shí)將不同類型的層按指定順序排列以作為相關(guān)參數(shù)而構(gòu)建網(wǎng)絡(luò)。2.利用Sequential類構(gòu)建具有層名稱的網(wǎng)絡(luò)?!緩?qiáng)化與拓展】在Sequential類實(shí)例化時(shí)為每個(gè)構(gòu)成層指定相應(yīng)的名稱;此時(shí)需要導(dǎo)入OrderedDict庫(kù)。3.利用Sequential類增量式構(gòu)建具有層名稱的網(wǎng)絡(luò)?!緩?qiáng)化與拓展】首先實(shí)例化無參Sequential對(duì)象,然后通add_module()增量式地構(gòu)建相應(yīng)的層?!緯r(shí)間】分鐘?!咎釂枴?。六、Optim類【主板書】Optim類1.主要功能:更新模型參數(shù)。2.常用類型:AdaGrad、RMSProp、Adam等。【時(shí)間】分鐘?!咎釂枴?。七、構(gòu)建神經(jīng)網(wǎng)絡(luò)的基本步驟【主板書】構(gòu)建神經(jīng)網(wǎng)絡(luò)的基本步驟利用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò)的基本步驟如下:1.定義模型:利用Sequential類或自定義類等方式定義模型結(jié)構(gòu)。(1)通過Sequential類定義(2)通過定義類2.定義損失函數(shù)。3.定義優(yōu)化器。4.網(wǎng)絡(luò)訓(xùn)練。5.網(wǎng)絡(luò)測(cè)試。6.保存與載入?!緩?qiáng)化與拓展】保存與載入模型torch.save(net,file)net=torch.load(file)#只保存與載入網(wǎng)絡(luò)模型參數(shù)(速度快,占內(nèi)存少)torch.save(model.state_dict(),file)net=Model()net.load_state_dict(file)〖PPT〗演示:自定義兩層神經(jīng)網(wǎng)絡(luò)。【時(shí)間】分鐘。【提問】。課堂
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 買賣集體老石器合同范本
- 付款合同范本含金額
- 代購(gòu)代付款合同范例
- 加工合同范本叫
- led標(biāo)識(shí)維護(hù)合同范本
- 保險(xiǎn)基金合同范本
- 個(gè)人電器購(gòu)買合同范本
- 加油站活動(dòng)合同范本
- 代用茶采購(gòu)合同范本
- 保安解聘合同范本
- 2024年安徽省高校分類考試對(duì)口招生語文試卷真題(含答案)
- 2025年蘇州健雄職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2025年南京信息職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 如何管理好一家公寓
- 2025年零售業(yè)員工職業(yè)發(fā)展規(guī)劃與培訓(xùn)
- 2025年八省聯(lián)考高考語文試題真題解讀及答案詳解課件
- 《復(fù)合材料電纜溝蓋板》團(tuán)體標(biāo)準(zhǔn)
- 2025年中國(guó)中車集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 初中《音樂》第二單元《黃河兩岸的歌(2)》課件
- 術(shù)前準(zhǔn)備與術(shù)后護(hù)理指南
- GB/T 44963-2024儲(chǔ)糧保水技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論