簡體   English   中英

PyTorch Autograd自動微分功能

[英]PyTorch Autograd automatic differentiation feature

我只是想知道,怎么做對張量PyTorch跟蹤操作(后.requires_grad被設置為True ,它是如何以后自動計算出梯度。請幫我了解背后的想法autograd 。謝謝。

這是一個很好的問題! 通常,自動區分( AutoDiff )的概念基於多變量鏈規則,即 \\ frac {\\ partial x} {\\ partial z} = \\ frac {\\ partial x} {\\ partial y} \\ cdot \\ frac {\\ partial y} {\\ partial z}
這意味着您可以通過“代理”變量y表示x相對於z的導數; 實際上,這允許您在一堆更簡單(或原子)的操作中分解幾乎任何操作,然后可以將它們“鏈接”在一起。
現在,像Autograd這樣的AutoDiff軟件包,只是存儲這種原子操作塊的衍生物,例如,除法,乘法等。然后,在運行時,你提供的前向傳遞公式(由多個這些塊組成)可以很容易變成精確的衍生物。 同樣,如果您認為AutoDiff不能完全按照您的意願行事,您也可以為自己的運營提供衍生產品。

AutoDiff優於衍生近似(如有限差分 )的優勢很簡單,這是一個精確的解決方案。

如果您對內部工作方式更感興趣,我強烈推薦AutoDidact項目 ,該項目旨在簡化自動差分器的內部,因為通常還涉及很多代碼優化。 此外,我參加的一個講座中的這組幻燈片對理解非常有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM