torch.nn.utils.clip_grad_norm(parameters, max_norm, norm_type=2)
1、梯度裁剪原理(http://blog.csdn.net/qq_29340857/article/details/70574528)
既然在BP過程中會產生梯度消失/爆炸(就是偏導無限接近0,導致長時記憶無法更新),那么最簡單粗暴的方法,設定閾值,當梯度小於/大於閾值時,更新的梯度為閾值,如下圖所示:
優點:簡單粗暴
缺點:很難找到滿意的閾值
2、nn.utils.clip_grad_norm(parameters, max_norm, norm_type=2)
這個函數是根據參數的范數來衡量的
Parameters:
Returns:參數的總體范數(作為單個向量來看)(原文:Total norm of the parameters (viewed as a single vector).)