基本思想
- 通过网络层时,输入和输出的方差相同,包括前向传播和后向传播。
- 如果初始化值很小,那么随着层数的传递,方差就会趋于0,此时输入值 也变得越来越小,在sigmoid上就是在0附近,接近于线性,失去了非线性。
- 如果初始值很大,那么随着层数的传递,方差会迅速增加,此时输入值变得很大,而sigmoid在大输入值写倒数趋近于0,反向传播时会遇到梯度消失的问题。
Pytorch nn.init 参数初始化方法
torch.nn.init.xavier_uniform_(tensor, gain=1)
- 均匀分布 ~ U(−a,a)
torch.nn.init.xavier_normal_(tensor, gain=1)
- 正态分布~N(0,std)
https://blog.csdn.net/dss_dssssd/article/details/83959474