分类目录:《深入浅出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
不会将其考虑在内。
该函数用截断正态分布中的值填充输入张量。这些值实际上是从正态分布 N ( mean , std 2 ) N(\text{mean}, \text{std}^2) N(mean,std2)中得出的,其中 [ a , b ] [a, b] [a,b]之外的值被重新绘制,直到它们在边界内。用于生成随机值的方法在 a ≤ mean ≤ b a\leq\text{mean}\leq b a≤mean≤b情况下效果最佳。
语法
torch.nn.init.trunc_normal_(tensor, mean=0.0, std=1.0, a=- 2.0, b=2.0)
参数
tensor
:[Tensor
] 一个 N N N维张量torch.Tensor
mean
:[float
] 正态分布的均值std
:[float
] 正态分布的标准差a
:[float
] 截断边界的最小值b
:[float
] 截断边界的最大值
返回值
一个torch.Tensor
且参数tensor
也会更新
实例
w = torch.empty(3, 5)
nn.init.trunc_normal_(w)
函数实现
def trunc_normal_(tensor: Tensor, mean: float = 0., std: float = 1., a: float = -2., b: float = 2.) -> Tensor:
r"""Fills the input Tensor with values drawn from a truncated
normal distribution. The values are effectively drawn from the
normal distribution :math:`\mathcal{N}(\text{mean}, \text{std}^2)`
with values outside :math:`[a, b]` redrawn until they are within
the bounds. The method used for generating the random values works
best when :math:`a \leq \text{mean} \leq b`.
Args:
tensor: an n-dimensional `torch.Tensor`
mean: the mean of the normal distribution
std: the standard deviation of the normal distribution
a: the minimum cutoff value
b: the maximum cutoff value
Examples:
>>> w = torch.empty(3, 5)
>>> nn.init.trunc_normal_(w)
"""
return _no_grad_trunc_normal_(tensor, mean, std, a, b)