十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
怎么分析PyTorch中的知識點,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
創(chuàng)新互聯(lián)公司專注于企業(yè)網(wǎng)絡營銷推廣、網(wǎng)站重做改版、茂南網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、HTML5建站、電子商務商城網(wǎng)站建設、集團公司官網(wǎng)建設、成都外貿(mào)網(wǎng)站建設公司、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為茂南等各大城市提供網(wǎng)站開發(fā)制作服務。
總結:
按照慣例,所有屬性requires_grad=False的張量是葉子節(jié)點(即:葉子張量、 葉子節(jié)點張量). 對于屬性requires_grad=True的張量可能是葉子節(jié)點張量也可能不是葉 子節(jié)點張量而是中間節(jié)點(中間節(jié)點張量). 如果該張量的屬性requires_grad=True, 而且是用于直接創(chuàng)建的,也即它的屬性grad_fn=None,那么它就是葉子節(jié)點. 如果該張量的屬性requires_grad=True,但是它不是用戶直接創(chuàng)建的,而是由其他張量 經(jīng)過某些運算操作產(chǎn)生的,那么它就不是葉子張量,而是中間節(jié)點張量,并且它的屬性 grad_fn不是None,比如:grad_fn=,這表示該張量是通過torch.mean() 運算操作產(chǎn)生的,是中間結果,所以是中間節(jié)點張量,所以不是葉子節(jié)點張量. 判斷一個張量是不是葉子節(jié)點,可以通過它的屬性is_leaf來查看. 一個張量的屬性requires_grad用來指示在反向傳播時,是否需要為這個張量計算梯度. 如果這個張量的屬性requires_grad=False,那么就不需要為這個張量計算梯度,也就 不需要為這個張量進行優(yōu)化學習. 在PyTorch的運算操作中,如果參加這個運算操作的所有輸入張量的屬性requires_grad都 是False的話,那么這個運算操作產(chǎn)生的結果,即輸出張量的屬性requires_grad也是False, 否則是True. 即輸入的張量只要有一個需要求梯度(屬性requires_grad=True),那么得到的 結果張量也是需要求梯度的(屬性requires_grad=True).只有當所有的輸入張量都不需要求 梯度時,得到的結果張量才會不需要求梯度. 對于屬性requires_grad=True的張量,在反向傳播時,會為該張量計算梯度. 但是pytorch的 自動梯度機制不會為中間結果保存梯度,即只會為葉子節(jié)點計算的梯度保存起來,保存到該 葉子節(jié)點張量的屬性grad中,不會在中間節(jié)點張量的屬性grad中保存這個張量的梯度,這是 出于對效率的考慮,中間節(jié)點張量的屬性grad是None.如果用戶需要為中間節(jié)點保存梯度的 話,可以讓這個中間節(jié)點調(diào)用方法retain_grad(),這樣梯度就會保存在這個中間節(jié)點的grad屬性中.
看完上述內(nèi)容,你們掌握怎么分析PyTorch中的知識點的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!