【TORCH】torch.normal()中的size参数

torch.normal() 函数中,size 参数用于指定生成张量的形状。torch.normal() 函数用于从正态(高斯)分布中生成随机数。函数的基本形式是:

python 复制代码
torch.normal(mean, std, size)
  • mean:均值,可以是标量或张量。如果是标量,表示生成的所有元素的均值;如果是张量,表示对应位置元素的均值。
  • std:标准差,可以是标量或张量。如果是标量,表示生成的所有元素的标准差;如果是张量,表示对应位置元素的标准差。
  • size:生成张量的形状。

以下是一些示例,展示了如何使用 size 参数生成不同形状的张量:

示例代码

python 复制代码
import torch

# 生成一个形状为(3,)的一维张量
mean = 0.0
std = 1.0
size = (3,)
tensor_1d = torch.normal(mean, std, size)
print("1D Tensor:", tensor_1d)

# 生成一个形状为(2, 3)的二维张量
size = (2, 3)
tensor_2d = torch.normal(mean, std, size)
print("2D Tensor:", tensor_2d)

# 生成一个形状为(2, 3, 4)的三维张量
size = (2, 3, 4)
tensor_3d = torch.normal(mean, std, size)
print("3D Tensor:", tensor_3d)

# 生成一个形状为(3, 3)的二维张量,均值和标准差为张量
mean_tensor = torch.tensor([[0.0, 1.0, 2.0],
                            [0.0, 1.0, 2.0],
                            [0.0, 1.0, 2.0]])
std_tensor = torch.tensor([[1.0, 1.0, 1.0],
                           [1.0, 1.0, 1.0],
                           [1.0, 1.0, 1.0]])
size = (3, 3)
tensor_2d_with_tensor_mean_std = torch.normal(mean_tensor, std_tensor)
print("2D Tensor with tensor mean and std:", tensor_2d_with_tensor_mean_std)

输出示例

1D Tensor: tensor([ 0.0343, -0.4731,  1.1844])
2D Tensor: tensor([[ 0.1239,  1.1049,  0.4560],
                   [-0.3104,  0.6228,  0.2698]])
3D Tensor: tensor([[[ 0.0793, -0.2101,  0.7634,  0.1921],
                    [-0.1220, -0.9352, -1.3496, -0.6405],
                    [ 0.3821,  0.2745,  0.1925,  0.4075]],

                   [[-0.8833,  1.1430,  0.3650, -0.7995],
                    [ 0.1403, -0.2226, -0.2483,  0.5914],
                    [-0.3337,  0.3735, -0.0515, -1.1255]]])
2D Tensor with tensor mean and std: tensor([[-0.2971,  1.5936,  2.3287],
                                           [ 1.0322,  1.3414,  1.7221],
                                           [-0.6370,  1.5202,  1.3766]])

说明

  • 一维张量size = (3,) 生成一个形状为 (3,) 的一维张量。
  • 二维张量size = (2, 3) 生成一个形状为 (2, 3) 的二维张量。
  • 三维张量size = (2, 3, 4) 生成一个形状为 (2, 3, 4) 的三维张量。
  • 均值和标准差为张量 :如果 meanstd 是张量,那么生成的张量每个元素的均值和标准差分别由对应位置的值决定。

通过指定不同的 size 参数,可以生成不同形状的张量。这对于初始化神经网络的权重特别有用,因为不同层的权重通常具有不同的形状。

如果您有更多问题或需要进一步的帮助,请告诉我!

相关推荐
不会&编程13 天前
论文阅读:A Generalization of Transformer Networks to Graphs
论文阅读·深度学习·transformer·gnn
shuaixio1 个月前
【VectorNet】vectornet网络学习笔记
gnn·自注意力机制·mlp·vectornet·子图构建·全局图构建
只是有点小怂3 个月前
【PYG】Cora数据集简介
gnn
只是有点小怂3 个月前
【PYG】简单分析Planetoid()中存储Cora数据集边的数量
gnn
只是有点小怂3 个月前
【PYG】Planetoid中边存储的格式,为什么打印前十条边用edge_index[:, :10]
gnn
盼小辉丶4 个月前
图神经网络实战(12)——图同构网络(Graph Isomorphism Network, GIN)
深度学习·图神经网络·gnn
人工智能培训咨询叶梓5 个月前
秒懂图神经网络(GNN)
人工智能·深度学习·神经网络·机器学习·语言模型·gnn·人工智能培训
Karen_Yu_5 个月前
【intro】Graph Isomorphism Network(GIN)
人工智能·神经网络·gin·gnn
盼小辉丶5 个月前
图神经网络实战(9)——GraphSAGE详解与实现
pytorch·图神经网络·gnn