神经网络初始化

神经网络的初始化对整个模型的训练起到至关重要的作用,一个合理的初始化能够让模型更快的拟合,反正不合适的初始化对整个模型是灾难性的影响。
通常在自己构建模型的时候,pytorch会自动对模型中的权重进行正太分布初始化,当让在莫些模型中正太分布分布表现效果并不优良,亦或者是有特殊要求进行特征提取。这时就要利用到自定义初始化了Weight Initialization

选定卷积层为对象

通常我们需要自定义的权重的层为卷积层,因为有的特殊的卷积核能够提取不同数据特征。为后面的模型训练提特征的筛选与提取
getattr函数
利用getattr函数能够完成指定层的的获取conv_weight = getattr(model, conv)这样就将model中名为conv层的卷积层的权重链接至conv_weight变量中。
当conv_weight变量进行赋值改变的时候,对应的conv层中的参数同样发生改变。

进行参数初始化

凯明初始化

参考文献

  1. 不同层应用不同初始化方式
  2. pytorch中的参数初始化方法总结