网站建设 需求模板,黑龙江公司网站建设,上海市建设厅网站查询,如何做影视网站的标题文章目录 向量的内积 a bHadamard积 a ⊙ b范数 向量的内积 a b
向量的内积也称为点积#xff0c;用来计算两个向量之间的相似度。在数学上#xff0c;两个向量的内积等于将一个向量投影到另一个向量上得到的长度再乘以两个向量之间的夹角的余弦值。
使用PyTorch进行向量… 文章目录 向量的内积 a · bHadamard积 a ⊙ b范数 向量的内积 a · b
向量的内积也称为点积用来计算两个向量之间的相似度。在数学上两个向量的内积等于将一个向量投影到另一个向量上得到的长度再乘以两个向量之间的夹角的余弦值。
使用PyTorch进行向量的内积计算非常简单可以通过torch.dot()函数实现。以下是一个示例代码计算两个向量的内积
import torch# 定义两个向量
a torch.tensor([1, 2, 3])
b torch.tensor([4, 5, 6])# 计算内积
dot_product torch.dot(a, b)# 输出结果
print(dot_product)运行以上代码将会输出内积的结果即32。
注意向量的内积要求两个向量的维度相同否则将会报错。
两个向量a和b的内积可以通过以下数学表达式来表示
a · b ||a|| · ||b|| cosθ
其中
a · b 表示向量a和向量b的内积点积||a|| 表示向量a的模长或范数||b|| 表示向量b的模长或范数cosθ 表示向量a和向量b之间的夹角的余弦值。
注意此表达式适用于二维和三维空间中的向量对于更高维度的向量同样适用。
另外如果两个向量a和b是n维向量可以表示为
a [a1, a2, …, an] b [b1, b2, …, bn]
则内积计算公式可以展开为
a · b a1 * b1 a2 * b2 … an * bn
这表示将向量a和向量b对应位置的元素相乘并将结果累加起来。
Hadamard积 a ⊙ b
Hadamard积也称为逐元素乘积或Schur积是指两个具有相同维度的矩阵或向量对应位置上的元素相乘得到的结果。
假设有两个n维向量a和b记为
a [a1, a2, …, an] b [b1, b2, …, bn]
则Hadamard积可以表示为一个新的n维向量c其每个元素ci满足
ci ai * bi
即c的第i个元素等于a的第i个元素和b的第i个元素相乘。
在数学符号中Hadamard积通常用⊙表示因此可以表示为
c a ⊙ b
注意Hadamard积要求两个向量的维度相同以便对应位置上的元素能够相乘。
在PyTorch中可以使用torch.mul()函数来计算Hadamard积。以下是一个示例代码演示了如何使用PyTorch计算两个向量的Hadamard积
import torch# 定义两个向量
a torch.tensor([1, 2, 3])
b torch.tensor([4, 5, 6])# 计算Hadamard积
c torch.mul(a, b)# 输出结果
print(c)运行以上代码将会输出Hadamard积的结果
tensor([ 4, 10, 18])注意向量的Hadamard积要求两个向量的维度相同否则将会报错。
范数
范数Norm是用来衡量向量或矩阵的大小的一种度量方式。在数学中范数是一个将向量映射到非负实数的函数。
对于实数向量x(x₁, x₂, …, xn)其p范数p-norm定义为
||x||p (|x₁|^p |x₂|^p … |xn|p)(1/p)
其中p为范数的指数取值可以为任意实数包括无穷大常用的p值有
当p1时称为L1范数也叫曼哈顿距离或绝对值范数当p2时称为L2范数也叫欧氏距离或二范数当p∞时称为无穷范数或者最大范数计算的是向量元素的最大绝对值
在PyTorch中可以使用torch.norm()函数来计算向量的范数。以下是一个示例代码演示了如何使用PyTorch计算向量的L2范数
import torch# 定义一个向量
x torch.tensor([1, 2, 3, 4, 5])# 计算L2范数
l2_norm torch.norm(x, p2)# 输出结果
print(l2_norm)运行以上代码将会输出L2范数的结果
tensor(7.4162)同样可以使用torch.norm()函数来计算其他范数只需将参数p设置为对应的值即可。
数学参考此网址 https://www.zhihu.com/column/c_1601171263636090880