小白零基础学习深度学习之张量
1.张量
PyTorch 中的张量(Tensor)就是一种用来存储数据的“盒子”,这个盒子可以有不同的形状和大小,里面可以装各种数字。张量是 PyTorch 中最基本的东西,就像乐高积木一样,你可以用它来搭建各种复杂的模型。
2. 张量的用途
存储数据:你可以把张量当作一个容器,用来存储各种数据。比如,一张图片可以用一个三维张量来表示,其中第一维是颜色通道(红、绿、蓝),第二维和第三维是图片的宽度和高度。
进行计算:张量可以用来做各种数学运算。比如,你可以把两个张量相加、相乘,或者对张量进行更复杂的操作,比如矩阵乘法。这些操作在 PyTorch 中都非常方便,而且可以自动利用 GPU 加速计算。
import torch
x = torch.tensor([1, 2, 3, 4])
y = x + 1 # 结果是 [2, 3, 4, 5]
3.张量操作
3.1 tensor.reshape(shape)
shape 是一个元组,表示你想要的新形状
input:import torch
x = torch.tensor([1, 2, 3, 4, 5, 6])
output: tensor([[1, 2, 3],
[4, 5, 6]])
3.2torch.unsqueeze()
在张量的指定位置插入一个新的维度,增加张量的维度
torch.unsqueeze(input, dim)
input:需要操作的张量。
dim:要插入新维度的位置。
import torch
x = torch.tensor([1, 2, 3, 4])
print(x.shape) # 输出:torch.Size([4])
在第 0 维插入新维度
如果你想在第 0 维插入一个新维度,让张量变成二维张量,可以这样写:
y = torch.unsqueeze(x, 0)
print(y.shape) # 输出:torch.Size([1, 4]) tensor([[1, 2, 3, 4]])
print(y)
3.3 获取张量中的元素
input:A = torch.arange(12).reshape(1,3,4)
output::tensor([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]]])
input:element_0 = A[0]
print(element_0)
output:tensor([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
#A[0] 表示获取第 0 维度下的第 0 个元素,也就是整个二维张量
3.4torch.cat()函数
可以将多个张量在指定的维度进行拼接,得到新
的张量