在PyTorch中,所有的数据都是通过张量(Tensor)来表示的。张量是一个多维数组,可以包含标量、向量、矩阵等数据类型。
- 导入PyTorch库
首先,我们需要导入PyTorch库。
import torch
- 创建张量
可以使用torch.tensor()函数来创建一个张量。
# 创建一个标量张量
scalar_tensor = torch.tensor(5)
print(scalar_tensor)# 创建一个向量张量
vector_tensor = torch.tensor([1, 2, 3, 4])
print(vector_tensor)# 创建一个矩阵张量
matrix_tensor = torch.tensor([[1, 2], [3, 4]])
print(matrix_tensor)
- 使用0初始化向量
在PyTorch中,您可以使用torch.zeros函数来创建一个所有元素都为0的向量。
import torch# 创建一个长度为5的零向量
zero_vector = torch.zeros(5)
print(zero_vector) # 输出: tensor([0., 0., 0., 0., 0.])
- 使用1初始化向量
类似地,torch.ones函数可以用来创建一个所有元素都为1的向量。
# 创建一个长度为5的一向量
one_vector = torch.ones(5)
print(one_vector) # 输出: tensor([1., 1., 1., 1., 1.])
- 使用随机值初始化向量
PyTorch提供了torch.randn来生成从标准正态分布中抽取的随机浮点数,以及torch.randint来生成指定范围内的随机整数。
生成标准正态分布的随机浮点数向量:
# 创建一个长度为5的随机浮点数向量
random_float_vector = torch.randn(5)
print(random_float_vector) # 输出: tensor([例如 -0.5678, 0.9101, -0.3456, 0.7890, -0.1234])
生成指定范围内的随机整数向量:
# 创建一个长度为5的随机整数向量,值在0到10之间(包括0,不包括10)
random_int_vector = torch.randint(0, 10, (5,))
print(random_int_vector) # 输出: tensor([例如 3, 7, 0, 5, 2])
- 自定义值初始化向量
您还可以使用Python列表和torch.tensor来创建具有自定义值的向量。
# 创建一个自定义值的向量
custom_vector = torch.tensor([1, 0, 1, 0, 1])
print(custom_vector) # 输出: tensor([1, 0, 1, 0, 1])
- 创建二维向量(张量)
在PyTorch中,您还可以创建二维张量(类似于NumPy中的矩阵)。
使用0初始化二维张量:
# 创建一个2行3列的零张量
zero_tensor = torch.zeros(2, 3)
print(zero_tensor)
# 输出:
# tensor([[0., 0., 0.],
# [0., 0., 0.]])使用随机值初始化二维张量:
# 创建一个2行3列的随机浮点数张量
random_float_tensor = torch.randn(2, 3)
print(random_float_tensor)
# 输出:
# tensor([[例如 -0.5678, 0.9101, -0.3456],
# [例如 0.7890, -0.1234, 0.4567]])
- 张量的基本运算
可以对张量进行加法、减法、乘法、除法等基本运算。
# 创建两个张量
tensor1 = torch.tensor([1, 2, 3])
tensor2 = torch.tensor([4, 5, 6])# 加法
sum_tensor = tensor1 + tensor2
print(sum_tensor)# 减法
diff_tensor = tensor1 - tensor2
print(diff_tensor)# 乘法
prod_tensor = tensor1 * tensor2
print(prod_tensor)# 除法
quot_tensor = tensor1 / tensor2
print(quot_tensor)