网站添加新关键词,深圳网站公司网站制作,学销售去哪个学校好,怎么做好手机网站开发分类目录#xff1a;《深入浅出Pytorch函数》总目录 相关文章#xff1a; 深入浅出Pytorch函数——torch.nn.init.calculate_gain 深入浅出Pytorch函数——torch.nn.init.uniform_ 深入浅出Pytorch函数——torch.nn.init.normal_ 深入浅出Pytorch函数——torch.nn.init.c…分类目录《深入浅出Pytorch函数》总目录 相关文章 · 深入浅出Pytorch函数——torch.nn.init.calculate_gain · 深入浅出Pytorch函数——torch.nn.init.uniform_ · 深入浅出Pytorch函数——torch.nn.init.normal_ · 深入浅出Pytorch函数——torch.nn.init.constant_ · 深入浅出Pytorch函数——torch.nn.init.ones_ · 深入浅出Pytorch函数——torch.nn.init.zeros_ · 深入浅出Pytorch函数——torch.nn.init.eye_ · 深入浅出Pytorch函数——torch.nn.init.dirac_ · 深入浅出Pytorch函数——torch.nn.init.xavier_uniform_ · 深入浅出Pytorch函数——torch.nn.init.xavier_normal_ · 深入浅出Pytorch函数——torch.nn.init.kaiming_uniform_ · 深入浅出Pytorch函数——torch.nn.init.kaiming_normal_ · 深入浅出Pytorch函数——torch.nn.init.trunc_normal_ · 深入浅出Pytorch函数——torch.nn.init.orthogonal_ · 深入浅出Pytorch函数——torch.nn.init.sparse_ torch.nn.init模块中的所有函数都用于初始化神经网络参数因此它们都在torc.no_grad()模式下运行autograd不会将其考虑在内。
根据He, K等人于2015年在《Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification》中描述的方法用一个正态分布生成值填充输入的张量或变量。结果张量中的值采样自 N ( 0 , std 2 ) N(0, \text{std}^2) N(0,std2)其中 std gain fan_mode \text{std} \frac{\text{gain}}{\sqrt{\text{fan\_mode}}} stdfan_mode gain
这种方法也被称为He initialisation。
语法
torch.nn.init.kaiming_normal_(tensor, a0, modefan_in, nonlinearityleaky_relu)参数
tensor[Tensor] 一个 N N N维张量torch.Tensora[float] 这层之后使用的rectifier的斜率系数ReLU的默认值为0mode[str] 可以为fan_in或fan_out。若为fan_in则保留前向传播时权值方差的量级若为fan_out则保留反向传播时的量级默认值为fan_in。nonlinearity[str] 一个非线性函数即一个nn.functional的名称推荐使用relu或者leaky_relu默认值为leaky_relu。
返回值
一个torch.Tensor且参数tensor也会更新
实例
w torch.empty(3, 5)
nn.init.kaiming_normal_(w, modefan_out, nonlinearityrelu)函数实现
def kaiming_normal_(tensor: Tensor, a: float 0, mode: str fan_in, nonlinearity: str leaky_relu
):rFills the input Tensor with values according to the methoddescribed in Delving deep into rectifiers: Surpassing human-levelperformance on ImageNet classification - He, K. et al. (2015), using anormal distribution. The resulting tensor will have values sampled from:math:\mathcal{N}(0, \text{std}^2) where.. math::\text{std} \frac{\text{gain}}{\sqrt{\text{fan\_mode}}}Also known as He initialization.Args:tensor: an n-dimensional torch.Tensora: the negative slope of the rectifier used after this layer (onlyused with leaky_relu)mode: either fan_in (default) or fan_out. Choosing fan_inpreserves the magnitude of the variance of the weights in theforward pass. Choosing fan_out preserves the magnitudes in thebackwards pass.nonlinearity: the non-linear function (nn.functional name),recommended to use only with relu or leaky_relu (default).Examples: w torch.empty(3, 5) nn.init.kaiming_normal_(w, modefan_out, nonlinearityrelu)if 0 in tensor.shape:warnings.warn(Initializing zero-element tensors is a no-op)return tensorfan _calculate_correct_fan(tensor, mode)gain calculate_gain(nonlinearity, a)std gain / math.sqrt(fan)with torch.no_grad():return tensor.normal_(0, std)