在pytorch0.3中做過一些關於張量求梯度的工作,目的是擴展一下pytorch的module,今天升級pytorch0.4,發現原先的代碼不可用,報錯如下:
RuntimeError: cannot resize variables that require grad
在pytorch 0.3中,允許對求梯度的變量改變size,改變size後,再次求偏導,梯度置0。實際上這是一個邏輯上的bug,當張量size減小時,某些分量消失,對於這些分量求偏導,應該報異常,如果置0,則會混淆梯度消失和分量消失的概念。好在pytorch 0.4中及時做出更正。