[英]PyTorch Autograd automatic differentiation feature
我只是想知道,怎么做對張量PyTorch跟蹤操作(后.requires_grad
被設置為True
,它是如何以后自動計算出梯度。請幫我了解背后的想法autograd
。謝謝。
這是一個很好的問題! 通常,自動區分( AutoDiff
)的概念基於多變量鏈規則,即 。
這意味着您可以通過“代理”變量y表示x相對於z的導數; 實際上,這允許您在一堆更簡單(或原子)的操作中分解幾乎任何操作,然后可以將它們“鏈接”在一起。
現在,像Autograd
這樣的AutoDiff
軟件包,只是存儲這種原子操作塊的衍生物,例如,除法,乘法等。然后,在運行時,你提供的前向傳遞公式(由多個這些塊組成)可以很容易變成精確的衍生物。 同樣,如果您認為AutoDiff不能完全按照您的意願行事,您也可以為自己的運營提供衍生產品。
AutoDiff優於衍生近似(如有限差分 )的優勢很簡單,這是一個精確的解決方案。
如果您對內部工作方式更感興趣,我強烈推薦AutoDidact項目 ,該項目旨在簡化自動差分器的內部,因為通常還涉及很多代碼優化。 此外,我參加的一個講座中的這組幻燈片對理解非常有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.