




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、autograd 包是 PyTorch 中所有神經網絡的核心。首先讓我們簡要地介紹它,然后我們將會去訓練我們的第一個神經網絡。該 autograd 軟件包為 Tensors 上的所有操作提供自動微分。它是一個由運行定義的框架,這意味著以代碼運行方式定義你的后向傳播,并且每次迭代都可以不同。我們從tensor 和 gradients 來舉一些例子。1 、 TENSORtorch.Tensor是包的核心類。如果將其屬性.requires_grad設置為True,則 會開始跟蹤針對tensor的所有操作。完成計算后,您可以調用.backward。來自 動計算所有梯度。該張量的梯度將累積到.grad屬
2、性中。要停止tensor歷史記錄的跟蹤,您可以調用.detach(),它將其與計算歷史 記錄分離,并防止將來的計算被跟蹤。要停止跟蹤歷史記錄(和使用內存),您還可以將代碼塊使用 with torch.no_grad():包裝起來。在評估模型時,這是特別有用,因為模型在訓練階段 具有 requires_grad = True 的可訓練參數有利于調參,但在評估階段我們不需要 梯度。還有一個類對于 autograd 實現非常重要那就是Function 。 Tensor 和Function 互相連接并構建一個非循環(huán)圖,它保存整個完整的計算過程的歷史信息。每個張量都有一個.grad_fn屬性保存著創(chuàng)建了
3、張量的Function的引用,(如果用戶自己創(chuàng)建張量,則 g rad_fn 是 None )。如果你想計算導數,你可以調用Tensor.backward()o如果Tensor是標量(即它包含一個元素數據),則不需要指定任何參數backward。,但是如果它有更多元素,則需要指定一個gradient 參數來指定張量的形狀。import torch創(chuàng)建一個張量,設置requires_grad=True 來跟蹤與它相關的計算x = torch.ones(2, 2, requires_grad=True)print(x)輸出:tensor(1., 1.,1., 1., requires_grad=Tr
4、ue)針對 xx 做一個操作y = x + 2print(y)輸出:tensor(3., 3.,3., 3., grad_fn=<AddBackward0>)y 作為操作的結果被創(chuàng)建,所以它有grad_fnprint(y.grad_fn)輸出:<AddBackward0 object at 0x7fe1db427470>針對 y 做更多的操作:z = y * y * 3out = z.mean()print(z, out)輸出:tensor(27., 27.,27., 27., grad_fn=<MulBackward0>)tensor(27., grad_
5、fn=<MeanBackward0>).requires_grad_( . )會改變張量的requires_grad 標記。輸入的標記默認為False ,如果沒有提供相應的參數。a = torch.randn(2, 2)a = (a * 3) / (a - 1)print(a.requires_grad)a.requires_grad_(True)print(a.requires_grad)b = (a * a).sum()print(b.grad_fn)輸出:FalseTrue<SumBackward0 object at 0x7fe1db427dd8>梯度:我們現在
6、后向傳播,因為輸出包含了一個標量,out.backward()等同于out.backward(torch.tensor(1.) 。out.backward()打印梯度 d(out)/dxprint(x.grad)輸出:tensor(4.5000, 4.5000,4.5000, 4.5000)現在讓我們看一個xx 可比向量積的例子:x = torch.randn(3, requires_grad=True)y = x * 2while y.data.norm() < 1000:y = y * 2print(y)輸出:tensor( -444.6791,762.9810, -1690.094
7、1, grad_fn=<MulBackward0>)現在在這種情況下, y 不再是一個標量。 torch.autograd 不能夠直接計算整個雅可比,但是如果我們只想要雅可比向量積,只需要簡單的傳遞向量給backward 作為參數。v = torch.tensor(0.1, 1.0, 0.0001, dtype=torch.float)y.backward(v)print(x.grad)輸出:tensor(1.0240e+02, 1.0240e+03, 1.0240e-01)你可以通過將代碼包裹在with torch.no_grad() ,來停止對從跟蹤歷史中的 .requires_grad=True 的張量自動求導。print(x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何高效備戰(zhàn)農業(yè)職業(yè)經理人考試試題及答案
- 同居協(xié)議書范本格式
- 美術專家聘請協(xié)議書
- 遺產折讓協(xié)議書模板
- 農場分地經營協(xié)議書
- 開廠追加投資協(xié)議書
- 小吃承包協(xié)議書范本
- 流產補償協(xié)議書范本
- 快手小店賣貨協(xié)議書
- 民事賠償協(xié)議書書寫
- 2024年太原城市職業(yè)技術學院高職單招數學歷年參考題庫含答案解析
- 《古代的陶瓷藝術》課件
- 2024新滬教版英語七年級下單詞默寫表
- 【公開課】跨學科實踐:制作簡易桿秤(課件)-人教版八年級物理下冊
- 產品研發(fā)部門的工作總結
- 四年級小數簡便運算100道
- 水土保持方案投標文件技術部分
- 《園林植物病蟲害》課件
- 2024年人力資源服務項目立項申請報告
- 2022年春季鄂東南省級示范高中教育教學改革聯盟學校期中聯考高一化學試卷
- 螺桿泵培訓課件
評論
0/150
提交評論