pytorchのモデル/オプティマイザのzero_grad()の違い

pytorhにoptimizerのzero_grad()とモデルのzero_grad()があることに気づいたので違いを調べた.optimizer がmodel.paremeters()を対象にしている場合,つまり全パラメタを対象にしている場合は両者は同じもの.

Optimizer.zero_grad() と nn.Module.zero_grad() の違い * https://teratail.com/questions/261005

Optimizer.zero_grad() は最適化対象のすべてのテンソルの勾配を0で初期化します。 他方、nn.Module.zero_grad() はそのモジュールを構成するすべてのテンソルの勾配を初期化します。

Whats the difference between Optimizer.zero_grad() vs nn.Module.zero_grad()