深度学习常用数学知识

文章目录

    • 向量的内积 a · b
    • Hadamard积 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值有:

  • 当p=1时,称为L1范数,也叫曼哈顿距离或绝对值范数
  • 当p=2时,称为L2范数,也叫欧氏距离或二范数
  • 当p=∞时,称为无穷范数或者最大范数,计算的是向量元素的最大绝对值

在PyTorch中,可以使用torch.norm()函数来计算向量的范数。以下是一个示例代码,演示了如何使用PyTorch计算向量的L2范数:

import torch# 定义一个向量
x = torch.tensor([1, 2, 3, 4, 5])# 计算L2范数
l2_norm = torch.norm(x, p=2)# 输出结果
print(l2_norm)

运行以上代码,将会输出L2范数的结果:

tensor(7.4162)

同样,可以使用torch.norm()函数来计算其他范数,只需将参数p设置为对应的值即可。

数学参考此网址:
https://www.zhihu.com/column/c_1601171263636090880

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/225038.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XIAO ESP32S3之实现口罩检测

一、例程介绍 此例程是运行FOMO 轻量检测模型实现人员佩戴口罩检测,Demo中已包含训练好的模型参数,无需再训练。 FOMO(Faster Objects, More Objects) 是由 Edgeimpulse 工程师提出的一种轻量级的目标检测模型,其主要特点是模型非常小&#…

php入门、安装wampserver教程

php声称是全世界最好的语言,今天这篇文章就带大家入门学习php,php和python、javasript一样,是一种弱类型的脚本语言。 一、php开发环境搭建 作为初学者,学习php建议安装wampserver,wampserver是包含了apache、php和mys…

Unity项目里Log系统该怎么设计

其实并没有想完整就设计一个好用的Log系统,然后发出来。记录这个的原因,是在书里看到这么一句话,Log会消耗资源,特别是写文件,因此可以设置一个Log缓冲区,等缓冲区满了再一次性写入文件,以节省资…

MFC逆向之CrackMe Level3 过反调试 + 写注册机

今天我来分享一下,过反调试的方法以及使用IDA还原代码 写注册机的过程 由于内容太多,我准备分为两个帖子写,这个帖子主要是写IDA还原代码,下一个帖子是写反调试的分析以及过反调试和异常 这个CrackMe Level3是一个朋友发我的,我也不知道他在哪里弄的,我感觉挺好玩的,对反调试…

Docker笔记:Docker Swarm, Consul, Gateway, Microservices 集群部署

关于 Consul 服务 Consul是Go语言写的开源的服务发现软件Consul具有服务发现、健康检查、 服务治理、微服务熔断处理等功能 Consul 部署方式1: 直接在linux 上面部署 consul 集群 1 )下载 在各个服务器上 下载 consul 后解压并将其目录配置到环境变量中&#xff…

VMP泄露编译的一些注意事项

VMP编译教程 鉴于VMP已经在GitHub上被大佬强制开源,特此出一期编译教程。各位熟悉的可以略过,不熟悉的可以参考一下。 环境(软件) Visual Studio 2015 - 2022 (建议使用VS2019,Qt插件只有这个版本及以上…

vscode的文件和文件夹的警告标志如何消去

由于平时用vscode写一些java的小demo, 但是这个vscode的警告和错误管理很奇怪, 这个警告信息会显示在这个侧边的文件和文件夹中, 我上网上找能不能把这个给去掉的办法, 找了半天没找到。 于是我就自己去查了一下这个vscode的设置, 真让我找到了这方面的开关, 把下面的这个关闭…

Linux学习笔记-Ubuntu下ssh服务器连接异常Connection reset

文章目录 一、问题问题现象1.1 连接重置无法访问的的问题1.2 查看服务器连接状态1.3 使用调试模式查看的信息 二、临时解决方法三、从根源解决问题3.1 问题分析3.2 服务器的ssh日志3.3 修改ssh配置禁止root登录3.4 配置允许所有ip访问3.5 修改认证方法 角色:百世经纶…

selenium+xpath爬取二手房标题

贝壳找房标题爬取需要注意的是,在页面中间有一个小广告 而他就在ul的li下面,当我们进行title所以输出时,会报错。 所以在进行页面解析之前必须把广告叉掉,不然也把广告那一部分的li给爬取下来了 所以,我们&#xff0…

弹性架构:容错系统策略

如今软件无处不在 - 从我们的手机到汽车和电器。这意味着软件系统的可靠性、健壮性和弹性非常重要。 弹性系统可以承受故障或错误而不会完全崩溃。容错能力是弹性的关键部分。即使出现问题,它也能让系统保持正常工作。 在本文中,我们将了解为什么弹性和…

JsRpc技术服务搭建,最简单的JSRPC,Flask+undetected-chromedriver

只需10来行代码快速实现JSRpc,最简单的JSRPC 使用Flask和undetected-chromedriver快速实现JsRpc 推荐Python版本3.7.x及以上,需要pip安装 pip install Flask pip install undetected-chromedriver __author__ jiuLiang __email__ "jiuliangef…

软件测试职业规划

软件测试人员的发展误区【4】 公司开发的产品专业性较强,软件测试人员需要有很强的专业知识,现在软件测试人员发展出现了一种测试管理者不愿意看到的景象: 1、开发技术较强的软件测试人员转向了软件开发(非测试工具开发); 2、业务…

蓝桥杯专题-真题版含答案-【古代赌局】【古堡算式】【微生物增殖】【密码发生器】

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分…

K中期考核-降低显存的关键

读入模型参数-且不占用显卡 see_memory_usage(‘message’) # 4. 读入checkpiont参数 state_dicttorch.load(../train-output/ args.model_name_or_path.split(/)[-1] /unet/diffusion_pytorch_model.bin, map_locationcpu) # state_dicttorch.load(../train-output/ …

C++报错:error C2238: 意外的标记位于“;”之前

报错信息如下: 编译遇见这样的错误信息主要有一下几种: 情况一: 多数情况下出现这种问题的原因是因为头文件重复包含:即头文件A包含了B,头文件B又包含了A,导致编译器在加载头文件时陷入死循环。 解决办法…

力扣题:数字与字符串间转换-12.16

力扣题-12.16 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:640. 求解方程 解题思想:首先将方程按照“”进行划分,然后分别记录x的因数和常数项,最后进行返回的判断即可 class Solution(object):def solveEqu…

Ubuntu下COLMAP的编译与安装全攻略

文章目录 一、前言二、安装依赖库基本的依赖安装Ceres Solver安装不需要cuda支持需要cuda支持 三、编译colmap四、运行colmap五、总结 一、前言 在计算机视觉领域,colmap是一款功能强大的开源图像重建工具。它提供了包括SfM(Structure from Motion&…

git变更关联的远程仓库

git变更关联的远程仓库 git 将本地关联的远程仓库1变更为新建的远程仓库2 1、移除本地的远程仓库关联关系 git remote remove origin 2、添加新的远程仓库地址: git remote add origin gitgithub.com:github-xiaobai/66-test-cc.git 3、生成本机的ssh-key(如果已…

uniapp获取app版本号、h5版本号、微信小程序版本号的方法

目录 第一种获取App版本号App版本号App的H5版本号 第二种获取App版本号第三种获取App版本号第一种获取微信小程序版本号获取微信小程序版本号 最后 第一种获取App版本号 App版本号 // 获取当前app的版本 const systemInfo uni.getSystemInfoSync(); // 应用程序版本号 // 条…

万户 OA OfficeServer.jsp 任意文件上传漏洞复现

0x01 产品简介 万户OA是面向政府组织及企事业单位的FlexOffice自主安全协同办公平台。 0x02 漏洞概述 万户OA OfficeServer.jsp接口存在任意文件上传漏洞,攻击者可通过该漏洞上传任意文件从而控制整个服务器。 0x03 复现环境 FOFA: (banner="OASESSIONID" &a…