PyTorch Tensor创建方法

发布时间 2023-11-07 10:41:20作者: zzqDeco

PyTorch提供了多种方法来创建张量。以下是一些常见的创建张量的方式:

创建未初始化的张量

# 创建一个未初始化的5x3张量
x = torch.empty(5, 3)

创建零张量

# 创建一个5x3的零张量
x = torch.zeros(5, 3, dtype=torch.long)

创建单位张量

# 创建一个5x5的单位张量(对角线上的元素为1,其他为0)
x = torch.eye(5)

创建随机初始化的张量

# 创建一个5x3的随机初始化张量
x = torch.rand(5, 3)

从已有数据创建张量

# 从一个已有的list创建张量
x = torch.tensor([5.5, 3])

# 从一个已有的NumPy数组创建张量
import numpy as np
np_array = np.array([5.5, 3])
x = torch.from_numpy(np_array)

创建等差数列张量

# 创建一个从0到10的等差数列张量,共有5个元素
x = torch.linspace(0, 10, steps=5)

创建具有相同大小的张量

# 创建一个和x大小相同的零张量
x = torch.zeros_like(x)

# 创建一个和x大小相同,随机初始化的张量
x = torch.rand_like(x, dtype=torch.float)  # 注意重写dtype!

创建指定形状的张量

# 创建一个形状为5x3的张量,元素都是1
x = torch.ones(5, 3)

# 创建一个形状为5x3的张量,元素都是0
x = torch.zeros(5, 3)

# 创建一个形状为5x3的张量,元素由正态分布随机生成
x = torch.randn(5, 3)

创建满足特定分布的张量

# 创建一个形状为5x3的张量,元素为从均匀分布中抽取的随机数
x = torch.rand(5, 3)

# 创建一个形状为5x3的张量,元素为从标准正态分布中抽取的随机数
x = torch.randn(5, 3)

# 创建一个形状为5x3的张量,元素为从0到1的均匀分布中抽取的随机整数
x = torch.randint(0, 2, (5, 3))