赞
踩
神经网络的参数学习、训练是一个凸优化的问题,在使用梯度下降算法进行优化时,参数初始值的选择会影响模型的泛化性能(局部最优解)、优化效率(梯度消失、梯度爆炸),因此其选择十分关键。
神经网络参数初始化通常有以下三种方式:
def weights_init_normal(m):
classname = m.__class__.__name__
#print(classname)
if classname.find('Conv') != -1:
init.normal_(m.weight.data, 0.0, 0.02)
elif classname.find('Linear') != -1:
init.normal_(m.weight.data, 0.0, 0.02)
elif classname.find('BatchNorm') != -1:
init.normal_(m.weight.data, 1.0, 0.02)
init.constant_(m.bias.data, 0.0)
因此,值得讨论和探索的是一个好的随机初始化方法,通常有三类:基于固定方差的参数初始化、基于方差缩放的参数初始化、正交初始化。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。