昆山设计网站公司,手把手教建设网站,做网站如何,wordpress close分类目录#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不会将其考虑在内。
该函数用 Dirac δ \text{Dirac}\delta Diracδ 函数来填充3-5维输入张量或变量,在卷积层尽可能多的保存输入通道特征。
语法
torch.nn.init.dirac_(tensor, groups1)参数
tensor[Tensor] 一个3~5维张量torch.Tensorgroups[int] conv层中的组数默认值为1
返回值
一个torch.Tensor且参数tensor也会更新
实例
w torch.empty(3, 16, 5, 5)
nn.init.dirac_(w)
w torch.empty(3, 24, 5, 5)
nn.init.dirac_(w, 3)函数实现
def dirac_(tensor, groups1):rFills the {3, 4, 5}-dimensional input Tensor with the Diracdelta function. Preserves the identity of the inputs in Convolutionallayers, where as many input channels are preserved as possible. In caseof groups1, each group of channels preserves identityArgs:tensor: a {3, 4, 5}-dimensional torch.Tensorgroups (int, optional): number of groups in the conv layer (default: 1)Examples: w torch.empty(3, 16, 5, 5) nn.init.dirac_(w) w torch.empty(3, 24, 5, 5) nn.init.dirac_(w, 3)dimensions tensor.ndimension()if dimensions not in [3, 4, 5]:raise ValueError(Only tensors with 3, 4, or 5 dimensions are supported)sizes tensor.size()if sizes[0] % groups ! 0:raise ValueError(dim 0 must be divisible by groups)out_chans_per_grp sizes[0] // groupsmin_dim min(out_chans_per_grp, sizes[1])with torch.no_grad():tensor.zero_()for g in range(groups):for d in range(min_dim):if dimensions 3: # Temporal convolutiontensor[g * out_chans_per_grp d, d, tensor.size(2) // 2] 1elif dimensions 4: # Spatial convolutiontensor[g * out_chans_per_grp d, d, tensor.size(2) // 2,tensor.size(3) // 2] 1else: # Volumetric convolutiontensor[g * out_chans_per_grp d, d, tensor.size(2) // 2,tensor.size(3) // 2, tensor.size(4) // 2] 1return tensor