【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 参数,可以生成不同形状的张量。这对于初始化神经网络的权重特别有用,因为不同层的权重通常具有不同的形状。

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

相关推荐
程序小旭15 天前
图神经网络代码学习—基本使用与分类任务
深度学习·图神经网络·gnn
Che_Che_1 个月前
Cross-Inlining Binary Function Similarity Detection
人工智能·网络安全·gnn·二进制相似度检测
litble1 个月前
图神经网络(GNN)入门笔记(1)——图信号处理与图傅里叶变换
笔记·神经网络·信号处理·图神经网络·gnn·gcn·傅里叶变换
医学小达人1 个月前
Python 分子图分类,GNN Model for HIV Molecules Classification,HIV 分子图分类模型;整图分类问题,代码实战
nlp·图神经网络·gnn·图计算·分子图分类·整图分类模型·hiv分子图分类
HERODING772 个月前
【论文精读】RELIEF: Reinforcement Learning Empowered Graph Feature Prompt Tuning
prompt·图论·gnn·图prompt
Cyril_KI2 个月前
PyTorch搭建GNN(GCN、GraphSAGE和GAT)实现多节点、单节点内多变量输入多变量输出时空预测
pytorch·时间序列预测·gnn·时空预测
不会&编程3 个月前
论文阅读:A Generalization of Transformer Networks to Graphs
论文阅读·深度学习·transformer·gnn
shuaixio4 个月前
【VectorNet】vectornet网络学习笔记
gnn·自注意力机制·mlp·vectornet·子图构建·全局图构建
只是有点小怂6 个月前
【PYG】Cora数据集简介
gnn