干翻全岛蛙蛙 发表于 2024-10-25 20:37:07

PyTorch 中 12 种张量操作详解

创作不易,还请各位同砚三连点赞!!收藏!!转发!!!

对于刚入门学习Python还找不到方向的小同伴可以试试我的这份学习方法和籽料,免费自取!!
PyTorch 是一个强大的深度学习框架,它允许开发者轻松地界说和训练神经网络。张量是 PyTorch 的焦点数据结构,类似于 NumPy 数组,但支持主动微分以及在 GPU 上加快盘算。本文将详细介绍 PyTorch 中常用的 12 种张量操作,帮助你更好地理解和使用这个工具。
1. 创建张量

起首,我们必要安装 PyTorch 并导入必要的库。
# 安装 PyTorch
!pip install torch

# 导入 PyTorch 库
import torch

创建张量是最基本的操作之一。你可以从 Python 列表或 NumPy 数组中创建张量。
# 从列表创建张量
tensor_from_list = torch.tensor()
print(tensor_from_list)# 输出: tensor()

# 从 NumPy 数组创建张量
import numpy as np
numpy_array = np.array()
tensor_from_numpy = torch.from_numpy(numpy_array)
print(tensor_from_numpy)# 输出: tensor()

2. 查看张量外形

了解张量的外形对于处置惩罚数据非常紧张。
# 创建一个 2x3 的矩阵
matrix = torch.tensor([, ])
print(matrix.shape)# 输出: torch.Size()

3. 转置张量

转置可以改变张量的维度顺序。
# 创建一个 2x3 的矩阵
matrix = torch.tensor([, ])
transposed_matrix = matrix.t()
print(transposed_matrix)# 输出:
# tensor([,
#         ,
#         ])

4. 拆分张量

拆分张量可以帮助你在差异维度上分割数据。
# 创建一个 3x4 的矩阵
matrix = torch.tensor([, , ])
split_tensors = torch.split(matrix, split_size=2, dim=1)
for t in split_tensors:
    print(t)
# 输出:
# tensor([[ 1,2],
#         [ 5,6],
#         [ 9, 10]])
# tensor([[ 3,4],
#         [ 7,8],
#         ])

5. 拼接张量

拼接操作可以将多个张量归并成一个更大的张量。
# 创建两个 2x2 的矩阵
matrix1 = torch.tensor([, ])
matrix2 = torch.tensor([, ])
concatenated_tensor = torch.cat((matrix1, matrix2), dim=0)
print(concatenated_tensor)# 输出:
# tensor([,
#         ,
#         ,
#         ])

6. 张量索引

索引操作允许你选择张量中的特定元素或子集。
# 创建一个 2x3 的矩阵
matrix = torch.tensor([, ])
element = matrix
print(element)# 输出: tensor(2)

sub_matrix = matrix
print(sub_matrix)# 输出: tensor()

7. 张量切片

切片可以让你选择张量的一部分。
# 创建一个 2x3 的矩阵
matrix = torch.tensor([, ])
slice_tensor = matrix[:, 1:]
print(slice_tensor)# 输出:
# tensor([,
#         ])

8. 张量广播

广播是一种机制,允许你实行差异外形的张量之间的操作。
# 创建一个 1x3 的向量和一个标量
vector = torch.tensor()
scalar = torch.tensor(2)

# 将向量乘以标量
broadcasted_tensor = vector * scalar
print(broadcasted_tensor)# 输出: tensor()

9. 张量相加

相加操作用于将两个张量对应位置的元素相加。
# 创建两个 2x2 的矩阵
matrix1 = torch.tensor([, ])
matrix2 = torch.tensor([, ])

# 相加
sum_tensor = matrix1 + matrix2
print(sum_tensor)# 输出:
# tensor([[ 6,8],
#         ])

10. 张量乘法

乘法操作可以用于点积或矩阵乘法。
# 创建两个 2x2 的矩阵
matrix1 = torch.tensor([, ])
matrix2 = torch.tensor([, ])

# 点积
dot_product = torch.dot(matrix1.view(-1), matrix2.view(-1))
print(dot_product)# 输出: tensor(70)

# 矩阵乘法
matrix_product = torch.matmul(matrix1, matrix2)
print(matrix_product)# 输出:
# tensor([,
#         ])

11. 张量归一化

归一化可以将张量的值调解到特定范围内。
# 创建一个 1x3 的向量
vector = torch.tensor()

# 归一化
normalized_vector = torch.nn.functional.normalize(vector, p=2, dim=0)
print(normalized_vector)# 输出: tensor()

12. 张量随机初始化

随机初始化在神经网络训练中非常紧张。
# 随机初始化一个 2x3 的矩阵
random_matrix = torch.randn(2, 3)
print(random_matrix)# 输出类似:
# tensor([[ 1.0431, -0.1827, -0.2591],
#         [-0.2442, -0.3353,0.4927]])

总结

本文详细介绍了 PyTorch 中常用的 12 种张量操作,包括创建张量、查看张量外形、转置张量、拆分张量、拼接张量、张量索引、张量切片、张量广播、张量相加、张量乘法、张量归一化和张量随机初始化。这些操作是使用 PyTorch 进行深度学习的底子,把握它们将有助于你更高效地开发和训练神经网络模型。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: PyTorch 中 12 种张量操作详解