pytorch中文文档-torch.nn.init常用函数-待添加

参考:https://pytorch.org/docs/stable/nn.html

torch.nn.init.constant_(tensorval)

使用参数val的值填满输入tensor

参数:

  • tensor:一个n维的torch.Tensor
  • val:用于填满tensor的值

举例:

w = torch.empty(,)
nn.init.constant_(w, 0.3)

返回:

tensor([[0.3000, 0.3000, 0.3000, 0.3000, 0.3000],
        [0.3000, 0.3000, 0.3000, 0.3000, 0.3000],
        [0.3000, 0.3000, 0.3000, 0.3000, 0.3000]])

torch.nn.init.kaiming_uniform_(tensora=0mode='fan_in'nonlinearity='leaky_relu')

根据“Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification” - He, K. et al. (2015)中所描述的方法,使用均匀分布生成值,然后填入输入tensor中

结果tensor中的值采样自U(-bound, bound),其中的bound为:

pytorch中文文档-torch.nn.init常用函数-待添加

该方法被称为He initialization

目的是使得每一卷积层的输出的方差都为1

参数:

  • tensor – n维的torch.Tensor
  • a -这层之后使用的nonlinearity的斜率系数(ReLU的默认值为0)
  • mode -可以为“fan_in”(默认)或“fan_out”。“fan_in”保留前向传播时权值方差的量级,即是想让前向传播的输出方差为1;“fan_out”保留反向传播时的量级,即是想让后向传播的输出方差为1。
  • nonlinearity – 之后使用的非线性函数,即激活函数 (nn.functional name),推荐使用‘relu’或‘leaky_relu’ (默认).

举例:

w = torch.empty(,)
nn.init.kaiming_uniform_(w, mode='fan_in', nonlinearity='relu')

返回:

tensor([[ 0.2143,  0.7102,  0.1721,  0.3857, -0.6991],
        [ 0.3828,  0.7956,  0.8884, -0.4458,  0.3915],
        [ 0.8258, -0.7752, -0.7310,  0.8955, -0.1472]])
上一篇:图形性能(widgets的渲染性能太低,所以推出了QML,走硬件加速)和网络性能(对UPD性能有实测数据支持)


下一篇:FPGA硬件加速