同步操作将从 OpenDocCN/pytorch-doc-zh 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
torch.nn.init.calculate_gain(nonlinearity,param=None)
对于给定的非线性函数,返回推荐的增益值。这些值如下所示:
nonlinearity | gain |
---|---|
linear | 1 |
conv{1,2,3}d | 1 |
sigmoid | 1 |
tanh | 5/3 |
relu | sqrt(2) |
leaky_relu | sqrt(2/(1+negative_slope^2)) |
参数:
nn.functional
名称)例子:
>>> gain = nn.init.gain('leaky_relu')
torch.nn.init.uniform(tensor, a=0, b=1)
从均匀分布U(a, b)中生成值,填充输入的张量或变量
参数:
例子
>>> w = torch.Tensor(3, 5)
>>> nn.init.uniform(w)
torch.nn.init.normal(tensor, mean=0, std=1)
从给定均值和标准差的正态分布N(mean, std)中生成值,填充输入的张量或变量
参数:
例子
>>> w = torch.Tensor(3, 5)
>>> nn.init.normal(w)
torch.nn.init.constant(tensor, val)
用val的值填充输入的张量或变量
参数:
例子:
>>> w = torch.Tensor(3, 5)
>>> nn.init.constant(w)
torch.nn.init.eye(tensor)
用单位矩阵来填充2维输入张量或变量。在线性层尽可能多的保存输入特性。
参数:
例子:
>>> w = torch.Tensor(3, 5)
>>> nn.init.eye(w)
torch.nn.init.dirac(tensor)
用Dirac $\delta$ 函数来填充{3, 4, 5}维输入张量或变量。在卷积层尽可能多的保存输入通道特性。
参数:
例子:
>>> w = torch.Tensor(3, 16, 5, 5)
>>> nn.init.dirac(w)
torch.nn.init.xavier_uniform(tensor, gain=1)
根据Glorot, X.和Bengio, Y.在“Understanding the difficulty of training deep feedforward neural networks”中描述的方法,用一个均匀分布生成值,填充输入的张量或变量。结果张量中的值采样自U(-a, a),其中a= gain * sqrt( 2/(fan_in + fan_out))* sqrt(3). 该方法也被称为Glorot initialisation
参数:
例子:
>>> w = torch.Tensor(3, 5)
>>> nn.init.xavier_uniform(w, gain=math.sqrt(2.0))
torch.nn.init.xavier_normal(tensor, gain=1)
根据Glorot, X.和Bengio, Y. 于2010年在“Understanding the difficulty of training deep feedforward neural networks”中描述的方法,用一个正态分布生成值,填充输入的张量或变量。结果张量中的值采样自均值为0,标准差为gain * sqrt(2/(fan_in + fan_out))的正态分布。也被称为Glorot initialisation.
参数:
例子:
>>> w = torch.Tensor(3, 5)
>>> nn.init.xavier_normal(w)
torch.nn.init.kaiming_uniform(tensor, a=0, mode='fan_in')
根据He, K等人于2015年在“Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification”中描述的方法,用一个均匀分布生成值,填充输入的张量或变量。结果张量中的值采样自U(-bound, bound),其中bound = sqrt(2/((1 + a^2) * fan_in)) * sqrt(3)。也被称为He initialisation.
参数:
例子:
>>> w = torch.Tensor(3, 5)
>>> nn.init.kaiming_uniform(w, mode='fan_in')
torch.nn.init.kaiming_normal(tensor, a=0, mode='fan_in')
根据He, K等人在“Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification”中描述的方法,用一个正态分布生成值,填充输入的张量或变量。结果张量中的值采样自均值为0,标准差为sqrt(2/((1 + a^2) * fan_in))的正态分布。
参数:
例子:
>>> w = torch.Tensor(3, 5)
>>> nn.init.kaiming_normal(w, mode='fan_out')
torch.nn.init.orthogonal(tensor, gain=1)
用(半)正交矩阵填充输入的张量或变量。输入张量必须至少是2维的,对于更高维度的张量,超出的维度会被展平,视作行等于第一个维度,列等于稀疏矩阵乘积的2维表示。其中非零元素生成自均值为0,标准差为std的正态分布。
参考:Saxe, A等人(2013)的“Exact solutions to the nonlinear dynamics of learning in deep linear neural networks”
参数:
例子:
>>> w = torch.Tensor(3, 5)
>>> nn.init.orthogonal(w)
torch.nn.init.sparse(tensor, sparsity, std=0.01)
将2维的输入张量或变量当做稀疏矩阵填充,其中非零元素根据一个均值为0,标准差为std的正态分布生成。 参考Martens, J.(2010)的 “Deep learning via Hessian-free optimization”.
参数:
例子:
>>> w = torch.Tensor(3, 5)
>>> nn.init.sparse(w, sparsity=0.1)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。