深度学习_3 数据操作之线代,微分

线代基础

标量

只有一个元素的张量。可以通过 x = torch.tensor(3.0) 方式创建。

向量

由多个标量组成的列表(一维张量)。比如 x = torch.arange(4) 就是创建了一个1*4的向量。可以通过下标获取特定元素(x[3]),可以通过 len(x) 获取长度,可以通过 x.shape 获取形状。

矩阵

二维张量,比如 reshape(a,b) 后得到的张量。

可以通过 X.T 转置。

张量运算

相同形状的张量二元运算是标量,向量,矩阵运算的扩展。

加法:所有元素分别求和。

乘法:对应位置元素分别相乘。

加标量/乘标量:所有元素分别加/乘标量。

降维

sum() 是可以实现降维操作的。A.sum() 是直接沿所有维度求和得到一个标量。还可以指定维度求和进行降维。

A
# Output
(tensor([[ 0.,  1.,  2.,  3.],[ 4.,  5.,  6.,  7.],[ 8.,  9., 10., 11.],[12., 13., 14., 15.],[16., 17., 18., 19.]]),A_sum_axis0 = A.sum(axis=0)
A_sum_axis0, A_sum_axis0.shape
# Output
(tensor([40., 45., 50., 55.]), torch.Size([4]))A_sum_axis1 = A.sum(axis=1)
A_sum_axis1, A_sum_axis1.shape
# Output
(tensor([ 6., 22., 38., 54., 70.]), torch.Size([5]))A.sum(axis=[0, 1])  # 结果和A.sum()相同
# Output
tensor(190.)

总和也可以用 A.mean() 或者 A.sum()/A.numel() 来算。

也可以利用 A.mean(axis=0)A.sum(axis=0)/A.shape[0] 来降低维度。

非降维求和
sum_A = A.sum(axis=1, keepdims=True)
sum_A
# Output
tensor([[ 6.],[22.],[38.],[54.],[70.]])A / sum_A	# 广播操作
# Output
tensor([[0.0000, 0.1667, 0.3333, 0.5000],[0.1818, 0.2273, 0.2727, 0.3182],[0.2105, 0.2368, 0.2632, 0.2895],[0.2222, 0.2407, 0.2593, 0.2778],[0.2286, 0.2429, 0.2571, 0.2714]])A.cumsum(axis=0)	# 按行求和且不降维
# Output
tensor([[ 0.,  1.,  2.,  3.],[ 4.,  6.,  8., 10.],[12., 15., 18., 21.],[24., 28., 32., 36.],[40., 45., 50., 55.]])
矩阵乘法

左矩阵逐列和右矩阵逐行相乘。

torch.mv(a,b)

范数

向量的大小。

L1范数:各个分量绝对值长度求和。

L2范数:欧几里得长度(比如二维向量是a2+b2 开根)。

Frobenius范数:矩阵中每一个元素的平方和开根。

微积分

微分

导数的基本概念就不详细叙述了,这是大学必修课。

常用公式:

1698756745588

自动微分

python 里是自动求导,一个函数在指定值上做求导。

1698811840756

正向传递:如上图,先计算 w 关于 x 的导数,在计算 b 关于 a 的导数……

反向传递:全过程正好相反,先计算 z 关于 b 的导数,再计算 b 关于 a 的导数……

正向反向累积的时间复杂度都是 O(N),但是正向空间复杂度是 O(1),反向一直要把所有的中间结果记录下来,空间复杂度 O(N)。

显示构造:先定义公式,再赋值。

1698811994384

隐式构造:pytorch 采用的是这种方案。

1698812013657

下面展开一个具体的计算例子。比如我们要计算 y=2x2 的导数。

# 先创建 x
from mxnet import autograd, np, npx
npx.set_np()
x = np.arange(4.0)	#[0. ,1. ,2. ,3.]
x.requires_grad_(True)  # 等价于x=torch.arange(4.0,requires_grad=True)
# 在计算关于x的梯度后,将能够通过'grad'属性访问它,它的值被初始化为 [0. ,0. ,0. ,0.]
y = 2 * torch.dot(x, x)
y.backward()
x.grad		# [0. ,4. ,8. ,12.]
# y 的导数在这几个点上应该是 4x。验证一下是否正确
x.grad == 4 * x	# [True,True,True,True]# 再算一下另一个函数
x.grad.zero_()	# 清零
y=x.sum()		# x_1+x_2+...+x_n
y.backward()
x.grad			# [1. ,1. ,1. ,1.]x.grad.zero_()	# 清零
y = x * x  # y是一个向量,注意这里是哈马达积,和前面的点积不一样。点积得到的是一个标量,这个是每个x对应彼此相乘得到的1*4的向量
# 等价于y.backward(torch.ones(len(x)))
y.sum().backward()
x.grad  # 等价于y=sum(x*x) [0. ,2. ,4. ,8.]# 分离计算:比如z=u*x, u=x*x,但是我们不想把 u 展开求导,我们期望对 z 求 x 导数得到 u
x.grad.zero_()
y = x * x
u = y.detach()	# 相当于 requires_grad = False,不会得到梯度
z = u * x
z.sum().backward()
x.grad == u# 自动微分也可以计算包含条件分支的分段。以下分段本质上都是k*a。
def f(a):b = a * 2while b.norm() < 1000:b = b * 2if b.sum() > 0:c = belse:c = 100 * breturn c
a = torch.randn(size=(), requires_grad=True)
d = f(a)
d.backward()
a.grad == d / a	# True

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

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

相关文章

Web3时代:探索DAO的未来之路

Web3 的兴起不仅代表着技术进步&#xff0c;更是对人类协作、创新和价值塑造方式的一次重大思考。在 Web3 时代&#xff0c;社区不再仅仅是共同兴趣的聚集点&#xff0c;而变成了一个价值交流和创新的平台。 去中心化&#xff1a;超越技术的革命 去中心化不仅仅是 Web3 的技术…

Linux进程概念(1)

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容为进程的概念做铺垫&#xff0c;主要介绍冯诺依曼体系结…

Pycharm安装jupyter和d2l

安装 jupyter: jupyter是d2l的依赖库&#xff0c;没有它就用不了d2l pycharm中端输入pip install jupyter安装若失败则&#xff1a; 若网速过慢&#xff0c;则更改镜像源再下载&#xff1a; pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ pip …

【ElasticSearch系列-03】ElasticSearch的高级句法查询Query DSL

ElasticSearch系列整体栏目 内容链接地址【一】ElasticSearch下载和安装https://zhenghuisheng.blog.csdn.net/article/details/129260827【二】ElasticSearch概念和基本操作https://blog.csdn.net/zhenghuishengq/article/details/134121631【二】ElasticSearch的高级查询Quer…

Mac之NVM|通过brew安装、更新、卸载、重新安装nvm

文章目录 导文通过brew安装NVM通过brew更新NVM通过brew卸载NVM通过brew重新安装NVM 导文 Mac之NVM 通过brew安装、更新、卸载、重新安装 通过brew安装NVM brew install nvm通过brew更新NVM brew upgrade nvm通过brew卸载NVM brew uninstall nvm通过brew重新安装NVM brew re…

快手协议算法最新版

快手的协议分析是指对快手算法系统进行分析&#xff0c;以了解其推荐内容和个性化用户体验的机制。 然而&#xff0c;一般来说&#xff0c;协议分析的目标是理解算法系统中各个组成部分的功能和作用&#xff0c;以及它们之间的相互关系。以下是一些常见的分析方向&#xff1a;…

Python 自动化(十六)静态文件处理

准备工作 将不同day下的代码分目录管理&#xff0c;方便后续复习查阅 (testenv) [rootlocalhost projects]# ls day01 day02 (testenv) [rootlocalhost projects]# mkdir day03 (testenv) [rootlocalhost projects]# cd day03 (testenv) [rootlocalhost day03]# django-admi…

springboot--多环境配置快速切换开发、测试、生产环境

多环境配置快速切换开发、测试、生产环境 前言1、使用1.1指定环境Profile({"dev","test"})Spring Profiles 提供一个隔离配置的方式&#xff0c;使其仅在特定环境生效 任何Component,Configuration或ConfigurationProperties 可以使用Profile标记&#xff…

损失函数总结(十四):RMSELoss、LogCosh Loss

损失函数总结&#xff08;十四&#xff09;&#xff1a;RMSELoss、LogCosh Loss 1 引言2 损失函数2.1 RMSELoss2.2 LogCosh Loss 3 总结 1 引言 在前面的文章中已经介绍了介绍了一系列损失函数 (L1Loss、MSELoss、BCELoss、CrossEntropyLoss、NLLLoss、CTCLoss、PoissonNLLLos…

【2021集创赛】Risc-v杯一等奖:自适应噪声环境的超低功耗语音关键词识别系统

本作品参与极术社区组织的有奖征集|秀出你的集创赛作品风采,免费电子产品等你拿~活动。 团队介绍 参赛单位&#xff1a;东南大学 队伍名称&#xff1a;Hey Siri 指导老师&#xff1a;刘波 参赛队员&#xff1a;钱俊逸、张人元、王梓羽 总决赛奖项&#xff1a;全国一等奖 摘要…

Redis高可用(主从复制,哨兵,集群)

Redis主从复制 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到其他的Redis服务器。前者称为主节点&#xff08;Master&#xff09;&#xff0c;后者称为从节点&#xff08;slave&#xff09;&#xff1b;数据的复制是单向的&#xff0c;只能由主节点到从…

OpenGL ES相关库加载3D 车辆模型

需求类似奇瑞的这个效果&#xff0c;就是能全方位旋转拖拽看车&#xff0c;以及点击开关车门车窗后备箱等 瑞虎9全景看车 (chery.cn) 最开始收到这个需求的时候还有点无所适从&#xff0c;因为以前没有做过类似的效果&#xff0c;后面一经搜索后发现实现的方式五花八门&#xf…

sqli 靶场 Level23-Level30 wp

level-23 &#xff08;注释被过滤&#xff09; 抓包&#xff0c;查看正常请求和响应。 略 尝试是否存在注入 id1’,id1’&#xff0c;成周期性变化 尝试 POC POC: id1andextractValue(1,concat(0x7e,user()))-- 结果&#xff1a;failed。怀疑–被过滤掉了&#xff0c;尝试…

深度学习实战:基于TensorFlow与OpenCV的手语识别系统

文章目录 写在前面基于TensorFlow与OpenCV的手语识别系统安装环境一、导入工具库二、导入数据集三、数据预处理四、训练模型基于CNN基于LeNet5基于ResNet50 五、模型预测基于OpenCV 写在后面 写在前面 本期内容&#xff1a;基于TensorFlow与OpenCV的手语识别系统 实验环境&…

PFMEA详解结构分析——Sun FMEA软件

FMEA从1949年诞生到今天已经发生过多次更新&#xff0c;最新版本是2019年6月发布的《AIAG VDA FMEA手册》。新手册借鉴了AIAG的方框图、参数图、流程图等工具的运用&#xff0c;也借鉴了VDA的五步过程导向法&#xff0c;并在此基础上头尾各增加一步&#xff0c;形成了FMEA七步法…

云原生安全日志审计

记得添加&#xff0c;把配置文件挂载进去 - mountPath: /etc/kubernetes/auditname: audit-policyreadOnly: true.....- hostPath:path: /etc/kubernetes/audit/type: DirectoryOrCreatename: audit-policy/etc/kubernetes/manifests/kube-apiserver.yaml 具体配置文件如下 a…

阿里云2023年双11大促活动优惠券领取与使用及特惠云服务器产品购买规则汇总

2023年阿里云双11大促活动正在火热进行中&#xff0c;今年的双11活动还是延续了去年金秋云创季的活动名称&#xff0c;对于大部分用户来说&#xff0c;最为关心的是活动优惠券与云服务器的优惠政策&#xff0c;在我们领取双11优惠券和购买双11活动云服务器的时候&#xff0c;应…

京东大数据平台(京东数据分析):9月京东牛奶乳品排行榜

鲸参谋监测的京东平台9月份牛奶乳品市场销售数据已出炉&#xff01; 9月份&#xff0c;牛奶乳品市场销售呈大幅上涨。鲸参谋数据显示&#xff0c;今年9月&#xff0c;京东平台牛奶乳品市场的销量为2000万&#xff0c;环比增长约65%&#xff0c;同比增长约3%&#xff1b;销售额为…

HT3163 免电感滤波 音频功率放大器工作原理

HT3163是一款G效AB/D类音频功率放大器。在D类模式&#xff0c;18V供电、THDN10%条件下&#xff0c;能够持续提供40W/4Ω功率输出。在AB类模式&#xff0c;12V供电、THDN10%条件下&#xff0c;能够持续输出17W/4Ω功率。 HT3163具有防削顶失真&#xff08;ACF&#xff09;输出控…

ASO优化之Google Play评分评论的重要性

应用程序的成果不仅仅是拥有功能齐全且无错误的产品&#xff0c;评分和评论会影响谷歌应用商店的排名算法&#xff0c;好评和差评都会影响应用在商店中的排名&#xff0c;这是关于与用户建立信任的一个环节。 1、积极主动地管理评论。 定期监控评论、解决用户问题以及根据反馈…