torch.nn.init初始化参数

torch.nn.init

均匀分布

  1. 格式
torch.nn.init.uniform_(tensor, a=0.0, b=1.0)
  1. 作用
    从均匀分布U ( a , b ) 中生成值,填充输入的张量或变量。
  2. 参数
  • tensor n 维的torch.Tensor
  • a 均匀分布的下界
  • b均匀分布的上界
  1. 例子
w = torch.empty(3, 5)
nn.init.uniform_(w)

正态分布

  1. 格式
torch.nn.init.normal_(tensor, mean=0.0, std=1.0)
  1. 作用
    从给定均值和标准差的正态分布N ( m e a n , s t d ) N(mean,std)N(mean,std)中生成值,填充输入的张量或变量。
  2. 参数
  • tensor n 维的torch.Tensor
  • mean 正态分布的均值
  • std 正态分布的标准差
  1. 例子
w = torch.empty(3, 5)
nn.init.normal_(w)

常数分布

  1. 格式
torch.nn.init.constant_(tensor, val)
  1. 作用
    用val的值填充输入的张量或变量
  2. 参数
  • tensor n维的torch.Tensor 或 autograd.Variable
  • val 用来填充张量的值
  1. 例子
w = torch.empty(3, 5)
nn.init.constant_(w, 0.3)

全1分布

  1. 格式
torch.nn.init.ones_(tensor)
  1. 作用
    用全1填充张量
  2. 参数
  • tensor n维的torch.Tensor
  1. 例子
w = torch.empty(3, 5)
nn.init.ones_(w)

全0分布

  1. 格式
torch.nn.init.zeros_(tensor)
  1. 作用
    用全0填充张量
  2. 参数
  • tensor n维的torch.Tensor
  1. 例子
w = torch.empty(3, 5)
nn.init.zeros_(w)

对角分布

  1. 格式
torch.nn.init.eye_(tensor)
  1. 作用
    用单位矩阵来填充2维输入张量或变量
  2. 参数
  • tensor 2维的torch.Tensor 或 autograd.Variable
  1. 例子
w = torch.empty(3, 5)
nn.init.eye_(w)

xavier_uniform 分布

  1. 格式
torch.nn.init.xavier_uniform_(tensor, gain=1.0)
  1. 作用
    用一个均匀分布生成值,填充输入的张量或变量。
  2. 参数
  • tensor n维的torch.Tensor
  • gain 可选的缩放因子
  1. 例子
w = torch.empty(3, 5)
nn.init.xavier_uniform_(w, gain=nn.init.calculate_gain('relu'))

xavier_normal 分布

  1. 格式
torch.nn.init.xavier_normal_(tensor, gain=1.0)
  1. 作用
    用一个正态分布生成值,填充输入的张量或变量。
  2. 参数
  • tensor n维的torch.Tensor
  • gain 可选的缩放因子
  1. 例子
w = torch.empty(3, 5)
nn.init.xavier_normal_(w)

kaiming_uniform 分布

  1. 格式
torch.nn.init.kaiming_uniform_(tensor, a=0, mode='fan_in', nonlinearity='leaky_relu')
  1. 作用
    用一个均匀分布生成值,填充输入的张量或变量。
  2. 参数
  • tensor n维的torch.Tensor或autograd.Variable
  • a 这层之后使用的rectifier的斜率系数(ReLU的默认值为0)
  • mode 可以为“fan_in”(默认)或 “fan_out”,“fan_in”保留前向传播时权值方差的量级,“fan_out”保留反向传播时的量级
  • nonlinearity=‘leaky_relu’非线性函数 建议“relu”或“leaky_relu”(默认值)使用。
  1. 例子
w = torch.empty(3, 5)
nn.init.kaiming_uniform_(w, mode='fan_in', nonlinearity='relu')

kaiming_normal 分布

  1. 格式
torch.nn.init.kaiming_normal_(tensor, a=0, mode='fan_in', nonlinearity='leaky_relu')
  1. 作用
    用一个正态分布生成值,填充输入的张量或变量。
  2. 参数
  • tensor n维的torch.Tensor或autograd.Variable
  • a 这层之后使用的rectifier的斜率系数(ReLU的默认值为0)
  • mode 可以为“fan_in”(默认)或 “fan_out”,“fan_in”保留前向传播时权值方差的量级,“fan_out”保留反向传播时的量级
  1. 例子
w = torch.empty(3, 5)
nn.init.kaiming_normal_(w, mode='fan_in', nonlinearity='relu')

正交矩阵

  1. 格式
torch.nn.init.orthogonal_(tensor, gain=1)
  1. 作用
    用一个(半)正交矩阵填充输入张量。
  2. 参数
  • tensor 一个n维的tensor,其中 n≥2
  • gain 可选比例系数
  1. 例子
w = torch.empty(3, 5)
nn.init.orthogonal_(w)

稀疏矩阵

  1. 格式
torch.nn.init.sparse_(tensor, sparsity, std=0.01)
  1. 作用
    将2D输入张量填充为稀疏矩阵,其中非零元素将从正态分布N ( 0 , 0.01 ) N(0,0.01)N(0,0.01)中提取。
  2. 参数
  • tensor 一个n维的tensor张量
  • sparsity 每一列中元素的比例设置为零
  • std 用于产生非零值的正态分布的标准差
  1. 例子
w = torch.empty(3, 5)
nn.init.sparse_(w, sparsity=0.1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值