PyTorch是一个强大的深度学习框架,它的核心数据结构之一是张量(Tensors)。本篇博客将带你深入探索PyTorch张量的世界,无需深厚的数学背景,我们将从基础知识开始,逐步深入,让你了解如何使用张量进行各种深度学习任务。
张量是什么?
在深入了解PyTorch张量之前,让我们先了解一下什么是张量。张量是一个多维数组,类似于NumPy中的数组。在PyTorch中,张量用于表示数据,它可以是标量(0维张量)、向量(1维张量)、矩阵(2维张量)或更高维度的数组。
张量的核心属性包括形状(shape)、数据类型(dtype)和设备(device)。形状描述了张量的维度,数据类型定义了张量中元素的类型,设备表示张量存储在CPU还是GPU上。
现在,让我们开始探索张量的基础知识。
创建张量
在PyTorch中,你可以使用多种方式创建张量。以下是一些常用的方法:
1. 从列表或数组创建张量
你可以使用torch.tensor
函数从Python列表或NumPy数组创建张量:
import torch
# 从列表创建张量
my_list = [1, 2, 3]
tensor_from_list = torch.tensor(my_list)
# 从NumPy数组创建张量
import numpy as np
my_array = np.array([4, 5, 6])
tensor_from_array = torch.tensor(my_array)
2. 创建特定类型的张量
PyTorch提供了许多用于创建特定类型的张量的函数。例如,你可以使用torch.zeros
创建全零张量,使用torch.ones
创建全一张量,使用torch.randn
创建随机张量,等等。
# 创建全零张量
zeros_tensor = torch.zeros(2, 3)
# 创建全一张量
ones_tensor = torch.ones(3, 2)
# 创建随机张量
rand_tensor = torch.randn(2, 2)
3. 使用特殊张量
PyTorch还提供了一些特殊的张量,如单位矩阵和对角矩阵。你可以使用torch.eye
创建单位矩阵,使用torch.diag
创建对角矩阵。
# 创建单位矩阵
eye_tensor = torch.eye(3