线性代数-介绍

一、标量:由一个元素的张量表示

1、标量变量由普通小写字母表示(例如:x y 和 z

2、 R 表示所有(连续)实数 标量的空间

3、表达式 x∈R 是表示x是一个实值标量的正式形式

4、x,y∈{0,1} 来表明 x 和 y 是值只能为 0 或 1的数字

import torch

x = torch.tensor([3.0])
y = torch.tensor([2.0])

x + y, x * y, x / y, x**y

# 输出结果

(tensor([5.]), tensor([6.]), tensor([1.5000]), tensor([9.]))

  

二、向量:标量值组成的列表

1、这些标量值称为向量的 元素(elements)或分量(components)

2、通常将向量记为粗体、小写的符号(例如,𝐱𝐲𝐳)

3、我们通过张量的索引来访问任一元素。

x = torch.arange(4)
print(x)
print(x[-1])

# 输出结果

tensor([0, 1, 2, 3])
tensor(3)

  

三、长度、维度和形状

1、量的长度通常称为向量的维度

2、可以通过调用 Python 的内置 len() 函数来[访问张量的长度

3、向量或轴的维度被用来表示向量或轴的长度,向量或轴的元素数量

4、张量的维度用来表示张量具有的轴数

# len(x)与numel()都可以查看张量的长度
print(type(x))
print(x.numel())
print(len(x))

zz=torch.tensor([[1,2,3],[8,5,6]])
print(len(zz))
print(zz.numel())
print(zz.shape)# 注意shape函数调用没有()

# 输出函数

<class 'torch.Tensor'>
4
4
2
6
torch.Size([2, 3])

可以发现,形状(shape)列出了沿每个轴的长度(维数)。对于只有一个轴的张量,形状只有一个元素

 

四、矩阵

1、矩阵将向量从一阶推广到二阶

2、通常用粗体、大写字母来表示(例如,𝐗𝐘和 𝐙),在代码中表示为具有两个轴的张量。

3、使用 A∈Rm×n 来表示矩阵 𝐀,其由 m 行和 n 列的实值标量组成

# 矩阵的创建
A = torch.arange(20).reshape(-1, 4)
A

#输出结果

tensor([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11],
        [12, 13, 14, 15],
        [16, 17, 18, 19]])
A.T

test=torch.tensor([[1,2,3],[9,5,6],[5,6,7]])
print(test)
print(test.T)

# 可以发现,通过使用.T可以访问矩阵的转置

#输出结果

tensor([[1, 2, 3],
        [9, 5, 6],
        [5, 6, 7]])
tensor([[1, 9, 5],
        [2, 5, 6],
        [3, 6, 7]])

  

五、张量

就像向量是标量的推广,矩阵是向量的推广一样,我们可以构建具有更多轴的数据结构——张量

当我们开始处理图像时,张量将变得更加重要,图像以𝑛n维数组形式出现,其中3个轴对应于高度、宽度,以及一个通道(channel)轴,用于堆叠颜色通道(红色、绿色和蓝色)

X = torch.arange(24).reshape(2, 3, 4)

print(X.shape)
X

# 输出结果

torch.Size([2, 3, 4])
tensor([[[ 0,  1,  2,  3],
         [ 4,  5,  6,  7],
         [ 8,  9, 10, 11]],

        [[12, 13, 14, 15],
         [16, 17, 18, 19],
         [20, 21, 22, 23]]])

  

posted @ 2021-07-23 11:18  小秦同学在上学  阅读(575)  评论(0编辑  收藏  举报