




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
備課日期:年月日授課時間課時(理論+實驗)周次星期:節次:授課課題深度學習[實踐]教學目標1.了解PyTorch框架的安裝方法。2.掌握PyTorch框架基本操作方法。教學重點1.PyTorch框架基本操作;2.利用PyTorch框架構建深度學習模型的基本流程。教學準備PPT、點名冊等。教學方法實例演示。教學過程設計備注課題引入【思考】如何構建深度學習模型?【關鍵】PyTorch框架是由Facebook開源的基于Python語言的深度神經網絡框架,不但可靈活、動態地構建神經網絡,而且可通過張量計算實現強大的GPU加速。【時間】分鐘。教學步驟及主要內容【主板書】§14.PyTorch框架一、概述【主板書】概述1.發展歷程:2017年1月,Facebook人工智能研究院(FAIR)基于Torch(由豐富機器學習算法支持的科學計算框架)推出。2.主要特點:(1)通過高維數組(張量)、自動求導(變量)與神經網絡(層/模塊)等三級抽象層次實現神經網絡的構建,思路明晰、結構簡潔。(2)與Tensorflow的靜態計算圖不同,PyTorch的計算圖是動態的(即可以根據計算需要實時改變計算圖)。(3)利用GPU運算加速以提高深度神經網絡的訓練與測試的效率。【時間】分鐘。【提問】。二、安裝與配置【主板書】安裝與配置利用Ananconda環境可快速實現PyTorch框架的安裝與配置。1.搭建Anaconda環境:演示。▲Anaconda提供庫或包管理與環境管理的功能,可以方便地解決Python并存、切換以及各種第三方包安裝與相互連接等問題。Anaconda包含了Numpy、Scipy、Pandas、Python等720左右涉及機器學習、數據可視化等科學計算開源包及其依賴項。2.Anaconda常用命令:啟動程序組中的AnacondaPrompt程序。創建虛擬環境:condacreate--nameXXXpython=XXX激活虛擬環境:condaactivateXXX查看已安裝的包:condalist查看指定虛擬環境下已安裝的包:condalist-XXX查看所有的環境:condaenvlist關閉當前虛擬環境:condadeactivate更新指定包:condaupdateXXX安裝包:condainstallXXX卸載指定包:condauninstallXXX刪除虛擬環境:condaremove--nameDL–all刪除沒用的包:condaclean-p刪除所有包:condaclean-y–all復制虛擬環境:condacreate--namenewname–cloneoldname3.安裝PyTorch。【演示】(1)命令生成方式:/。(2)命令的運行方式:Anaconda命令窗口。【強化與拓展】安裝源無法連接時的解決方法:通過“win+R”快捷鍵打開”運行”框后輸入“%HOMEPATH%”執行,然后找到并打開.condarc文件,將相關數據源鏈接復制相關位置即可。【時間】分鐘。【提問】。三、數據類型與基本操作【主板書】數據類型與基本操作1.張量:Pytorch框架最基本的操作對象為張量(Tensor),其在結構上與Numpy庫中的多維數組類似,但可以利用GPU加速其數值計算。〖PPT〗演示:張量基本操作。(1)定義矩陣:全0矩陣、全1矩陣、隨機矩陣。(2)獲取Tensor的尺寸:x.shape與x.size()。(3)_在方法中的意義:表示對自身的改變。(4)索引:x[:,1]。(5)改變形狀:view()函數。(6)維度增加與降低:unsqueeze()與squeeze()函數。(7)Tensor與Numpy之間轉換:例1.Numpy轉化為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轉化為numpy:Tensor矩陣.numpy()。A=torch.randn((3,2))#隨機矩陣numpy_A=A.numpy()#轉換為Numpy矩陣print(numpy_A)2.變量:Pytorch框架最重為的數據類型為變量(Variable),其在張量的基礎上可實現輸入數據或模型的自動求導、誤差的反向傳播等功能,在計算圖的構建中具有極為重要的作用。(1)基本屬性data屬性:表示當前變量保存的數據,可通過data屬性訪問。grad屬性:累計與保存針對變量的梯度或求導結果。creator屬性:Variable的操作(比如乘法或者加法等)。(2)相關庫的導入fromtorch.autogradimportVariable〖PPT〗演示:變量定義。【副板書】推導函數求導過程。importtorchfromtorch.autogradimportVariable#定義三個變量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)#構建計算圖(y=w*x^2+b)y=w*x*x+b#自動求導,計算梯度y.backward(torch.Tensor([1,1,1]))#輸出求結果print(x.grad)#x.grad=2wxprint(w.grad)#w.grad=x^2print(b.grad)#b.grad=13.自動求導:在定義變量時將參數requires_grad設置為True的目的在于自動實現對指定變量的求導。【強化與拓展】張量的前向傳播操作將構造一個計算圖以用于計算神經網絡中反向傳播時的梯度。4.計算圖:計算圖是描述運算的有向無環圖(節點為表示數據的向量、矩陣與張量,邊為表示運算的由輸出張量到輸入張量的映射函數)。【強化與拓展】采用運算圖的優勢在于可使自動求導或梯度計算更加方便、快捷。例3.自動求導與計算圖。問題:利用數據(x,label)={(1,5),(2,10),(3,15)}擬合直線(真實直線:y=5*x)。(1)前向傳播:由x求取y。(2)計算圖:y=w*xy=w*xwx(3)損失函數:L(4)誤差反向傳播:利用backward()函數實現。【副板書】描述關鍵步驟。importtorchfromtorch.autogradimportVariablex=torch.Tensor([2])#輸入y=torch.Tensor([10])#輸出loss=torch.nn.MSELoss()#均方誤差w=Variable(torch.randn(1),requires_grad=True)#初始化參數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_))【時間】分鐘。【提問】。四、nn.Module類【主板書】nn.Module類PyTorch框架在自定義網絡的時候,需要繼承nn.Module類并重新實現構造函數__init__構造函數和forward這兩個方法。【強化與拓展】(1)通常把神經網絡中具有可學習參數的層(如全連接層、卷積層等)放在構造函數__init__()中。(2)不具有可學習參數的層(如ReLU、dropout、BatchNormanation層)如果不放在構造函數__init__()里面,則在forward()方法里面可以使用nn.functional代替。(3)forward()方法是實現神經網絡各層之間連接關系的核心,必須要重寫。〖PPT〗演示:nn.Module類的使用。【時間】分鐘。【提問】。五、Sequential類【主板書】nn.Module類Sequential繼承自Module類,其相當于一個可包含多個層的容器以方便神經網絡的構建。1.利用Sequential類構建簡單的網絡。【強化與拓展】在Sequential類實例化時將不同類型的層按指定順序排列以作為相關參數而構建網絡。2.利用Sequential類構建具有層名稱的網絡。【強化與拓展】在Sequential類實例化時為每個構成層指定相應的名稱;此時需要導入OrderedDict庫。3.利用Sequential類增量式構建具有層名稱的網絡。【強化與拓展】首先實例化無參Sequential對象,然后通add_module()增量式地構建相應的層。【時間】分鐘。【提問】。六、Optim類【主板書】Optim類1.主要功能:更新模型參數。2.常用類型:AdaGrad、RMSProp、Adam等。【時間】分鐘。【提問】。七、構建神經網絡的基本步驟【主板書】構建神經網絡的基本步驟利用PyTorch構建神經網絡的基本步驟如下:1.定義模型:利用Sequential類或自定義類等方式定義模型結構。(1)通過Sequential類定義(2)通過定義類2.定義損失函數。3.定義優化器。4.網絡訓練。5.網絡測試。6.保存與載入。【強化與拓展】保存與載入模型torch.save(net,file)net=torch.load(file)#只保存與載入網絡模型參數(速度快,占內存少)torch.save(model.state_dict(),file)net=Model()net.load_state_dict(file)〖PPT〗演示:自定義兩層神經網絡。【時間】分鐘。【提問】。課堂
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網絡設備配置要點試題及答案
- 2025屆湖北省孝感市漢川市數學八下期末監測試題含解析
- 行政法學高效學習試題及答案策略
- 2025軟考網絡管理員技巧與試題
- 高考數學復習資料試題及答案
- 經營風險管理計劃
- 部門目標與個人目標的協同計劃
- 新學年教學工作總體規劃計劃
- 策劃班級知識分享會計劃
- 內部審核對生產計劃的支持
- 膝痹病(膝關節退行性病變)中醫診療方案
- 起重機械作業人員考試題庫300題含標準答案
- GB/T 23723.5-2025起重機安全使用第5部分:橋式和門式起重機
- 植物提取物分類與提取方法課件
- 《元代染織工藝》課件
- 《熱愛生命》課件-初中教育-教育專區
- 微信公眾號運營協議
- 2024年銀行業全渠道客戶旅程分析與精細化線上運營白皮書-火山引擎
- 江蘇省鹽城市阜寧縣多校2024-2025學年九年級上學期12月月考語文試題含答案
- 基于Arduino的智能鬧鐘設計與制作
- DB36T 477-2019 商品肉鵝規模養殖生產技術規程
評論
0/150
提交評論