Pytorch基础知识整理(六)参数初始化
生活随笔
收集整理的這篇文章主要介紹了
Pytorch基础知识整理(六)参数初始化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參數初始化的目的是限定網絡權重參數的初始分布,試圖讓權重參數更接近參數空間的最優解,從而加速訓練。pytorch中網絡默認初始化參數為隨機均勻分布,設定額外的參數初始化并非總能加速訓練。
1,模板
在訓練開始對指定層的權重或偏置初始化:
def weight_init(m):if isinstance(m, (nn.Conv2d, nn.Linear)):nn.init.kaiming_normal_(m.weight)elif isinstance(m, nn.BatchNorm2d):m.weigth.data.fill_(1)m.bias.data.zero_()model.apply(weight_init)2,pytorch自帶的參數初始化方法
torch.nn.init.
uniform(tensor, a=0, b=1) 均勻分布,下限a,上限b
normal(tensor, mean=0, std=1)正態分布
constant(tensor, val)常數值
xavier_uniform(w, gain=math.sqrt(2.0))
xavier_normal(tensor, gain=1)
kaiming_uniform(tensor, a=0, mode=‘fan_in’)
kaiming_normal(tensor, a=0, mode=‘fan_in’)
orthogonal(tensor, gain=1)正交矩陣
總結
以上是生活随笔為你收集整理的Pytorch基础知识整理(六)参数初始化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pytorch基础知识整理(五) 优化器
- 下一篇: LeNet试验(二)权重参数随训练的变化