PyTorch中的自動記錄力學 – 1

Autograd力學

本說明將顯示autograd如何運行和記錄任務的K線走勢圖。看到這一點並不重要,但我們建議您熟悉它,因為它可以讓您逐步構建有效,清潔的程序,並可以幫助您進行故障排除。

反過來禁止子圖

每個Tensor都有一個標題:requires_grad,它考慮從斜率計算中細粒度地禁止子圖,並可以擴展有效性。

  • requires_grad

如果對一項需要傾向的活動有單獨貢獻,那麼它的產量同樣需要斜率。然後,如果所有數據源都不需要角度,則產量同樣不需要它。反向計算從不在子圖中執行,其中所有張量都不需要斜率。

>>> x = torch.randn(5,5)#requires_grad = False當然

>>> y = torch.randn(5,5)#requires_grad = False當然

>>> z = torch.randn((5,5),requires_grad = True)

>>> a = x + y

>>> a.requires_grad

>>> b = a + z

>>> b.requires_grad

真正

當你需要停止模型的某些部分,或者你提前知道你不打算使用角度w.r.t時,這尤其有用。一些參數。例如,如果您需要對預訓練的CNN進行微調,則在固化基礎中切換requires_grad信號就足夠了,並且不會中間任何中間支架,直到計算到達最後一層,相對變化將利用負載需要傾斜的,系統的產量同樣需要它們。

model = torchvision.models.resnet18(pretrained = True)

for model.parameters()中的param:

param.requires_grad =假

#替換最後一個完全關聯的圖層

#最近構建的模塊的參數當然是requires_grad = True

model.fc = nn.Linear(512,100)

#優化分類器

enhancer = optim.SGD(model.fc.parameters(),lr = 1e-2,momentum = 0.9)

資訊來源:由0x資訊編譯自NVESTLABS。版權歸作者Anusha所有,未經許可,不得轉載
提示:投資有風險,入市需謹慎,本資訊不作為投資理財建議。請理性投資,切實提高風險防範意識;如有發現的違法犯罪線索,可積極向有關部門舉報反映。
你可能還喜歡