在用pytorch搭建和訓練神經網絡時,有時為了查看非葉子張量的梯度,比如網絡權重張量的梯度,會用到retain_grad()函數。但是幾次實驗下來,發現用或不用retain_grad()函數,最終神經網絡的准確率會有一點點差異。用retain_grad()函數的訓練結果會差一些。目前還沒有去探究這里面的原因。
所以,建議是,調試神經網絡時,可以用retain_grad()函數,但最終訓練神經網絡時,最好不要用retain_grad()函數。
retain_grad()函數對神經網絡訓練沒有影響。