湖南省建设人力资源网站,网站配色 标记色,知己图书网站建设策划书,无锡谷歌优化介绍#xff1a; 深度学习是一种机器学习的方法#xff0c;涉及到大量的线性代数运算。线性代数是研究向量空间和线性映射的数学学科。在深度学习中#xff0c;线性代数常用于表示和处理输入数据和模型参数。下面是一些深度学习中常见的线性代数概念和运算#xff1a; 1. …介绍 深度学习是一种机器学习的方法涉及到大量的线性代数运算。线性代数是研究向量空间和线性映射的数学学科。在深度学习中线性代数常用于表示和处理输入数据和模型参数。下面是一些深度学习中常见的线性代数概念和运算 1. 向量在深度学习中向量是一种表示数据的结构。它可以表示输入数据、模型参数和梯度等。向量通常用列向量表示形如x [x1, x2, ..., xn]。向量之间可以进行加法、减法和标量乘法等运算。 2. 矩阵矩阵是一个二维的数组通常用于表示线性映射。在深度学习中矩阵用于表示输入数据和模型的权重。矩阵乘法是深度学习中最常用的运算之一用于实现神经网络的前向传播和反向传播。 3. 转置矩阵的转置是将矩阵的行和列互换得到的新矩阵。在深度学习中转置常常用于计算梯度和调整矩阵的形状。 4. 矩阵的逆一个可逆矩阵的逆矩阵是使得矩阵与其逆矩阵相乘等于单位矩阵的矩阵。在深度学习中矩阵的逆常用于求解线性方程组和计算梯度。 5. 行列式行列式是一个与矩阵相关的标量值。在深度学习中行列式被用于判断矩阵是否可逆从而决定是否能够求解线性方程组。 6. 特征值和特征向量特征值和特征向量是矩阵运算中的重要概念。特征值表示线性映射中的缩放比例特征向量表示变换后的方向。在深度学习中特征值和特征向量常用于降维和分析模型的性质。 以上是深度学习中常见的线性代数概念和运算。深入理解线性代数对于掌握深度学习的原理和实践非常重要。 1、标量与变量
import torchprint(1.标量与变量)
x torch.tensor([3.0])
y torch.tensor([2.0])
print(x y, x * y, x / y, x ** y)2、向量
x torch.arange(4)
print(2.向量)
print(x:, x)
print(x[3]:, x[3]) # 通过张量的索引来访问任一元素
print(张量的形状:, x.shape) # 张量的形状
print(张量的长度:, len(x)) # 张量的长度
z torch.arange(24).reshape(2, 3, 4)
print(三维张量的长度:, len(z)) 3、矩阵
print(3.矩阵)
A torch.arange(20).reshape(5, 4)
print(A:, A)
print(A.shape:, A.shape)
print(A.shape[-1]:, A.shape[-1])
print(A.T:, A.T) # 矩阵的转置Btorch.tensor([[1,2,3],[2,0,4],[3,4,5]])#对称矩阵
BB.T 4、矩阵计算
print(4.矩阵的计算)
A torch.arange(20, dtypetorch.float32).reshape(5, 4)
B A#内存一样不会改变
B A.clone() # 通过分配新内存将A的一个副本分配给B
print(A:, A)
print(B:, B)
print(A B:, A B) # 矩阵相加
print(A * B:, A * B) # 矩阵相乘 a 2
X torch.arange(24).reshape(2, 3, 4)
print(X:, X)
print(a X:, a X) # 矩阵的值加上标量
print(a * X:, a * X)
print((a * X).shape)5、矩阵的sum运算
print(5.矩阵的sum运算)
print(A:, A)
print(A.shape:, A.shape)
print(A.sum():, A.sum())
print(A.sum(axis0):, A.sum(axis0)) # 沿0轴汇总以生成输出向量
print(A.sum(axis1):, A.sum(axis1)) # 沿1轴汇总以生成输出向量
print(A.sum(axis1, keepdimsTrue), A.sum(axis1, keepdimsTrue)) # 计算总和保持轴数不变
print(A.sum(axis[0, 1]):, A.sum(axis[0, 1])) # Same as A.sum()
print(A.mean():, A.mean())
print(A.sum() / A.numel():, A.sum() / A.numel())atorch.ones((2,5,4))
a.shape
#结果torch.Size([2, 5, 4])a.sum(axis1).shape#把中间那一维给丢掉了
#结果torch.Size([2, 4])a.sum(axis1,keepdimsTrue).shape#保留了中间那一维
#结果torch.Size([2, 1, 4]) sum_AA.sum(axis1,keepdimsTrue)#计算总和或均值时保持轴数不变
print(sum_A:,sum_A)
print(通过广播将A除以sum_A:\n,A/sum_A) 6、向量相乘点积
print(6.向量-向量相乘点积)
x torch.arange(4, dtypetorch.float32)
y torch.ones(4, dtypetorch.float32)
print(x:, x)
print(y:, y)
print(向量-向量点积:, torch.dot(x, y))#对应的相乘再相加7、矩阵向量乘积向量积
print(7.矩阵-向量相乘(向量积))
print(A:, A) # 5*4维
print(x:, x) # 4*1维
print(torch.mv(A, x):, torch.mv(A, x)) 8、矩阵相乘向量积
print(8.矩阵-矩阵相乘(向量积))
print(A:, A) # 5*4维
B torch.ones(4, 3) # 4*3维
print(B:, B)
print(torch.mm(A, B):, torch.mm(A, B)) 9、范数
print(9.范数)#向量或者矩阵的长度
u torch.tensor([3.0, -4.0])
print(向量的2范数:, torch.norm(u)) # 向量的2范数
print(向量的1范数:, torch.abs(u).sum()) # 向量的1范数
v torch.ones((4, 9))
print(v:, v)
print(矩阵的2范数:, torch.norm(v)) # 矩阵的2范数10、根据索引访问矩阵
print(10.根据索引访问矩阵)
y torch.arange(10).reshape(5, 2)
print(y:, y)
index torch.tensor([1, 4])
print(y[index]:, y[index])