线性代数-介绍

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

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

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

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

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

1
2
3
4
5
6
7
8
9
10
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、我们通过张量的索引来访问任一元素。

1
2
3
4
5
6
7
8
x = torch.arange(4)
print(x)
print(x[-1])
 
# 输出结果
 
tensor([0, 1, 2, 3])
tensor(3)

  

三、长度、维度和形状

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 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 列的实值标量组成

1
2
3
4
5
6
7
8
9
10
11
# 矩阵的创建
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]])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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)轴,用于堆叠颜色通道(红色、绿色和蓝色)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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 @   小秦同学在上学  阅读(643)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示