【pytorch】pytorch学习笔记(续1)

p22:1.加减乘除:

(1)add(a,b):等同于a+b。

(2)sub(a,b):等同于a-b。

(3)mul(a,b):等同于a*b。

(4)div(a,b):等同于a/b。a//b表示整除。

2.tensor的矩阵式相乘:matmul

注意区分:(1)*:表示相同位置的元素相乘;(2).matmul:表示矩阵相乘。

对于(2)矩阵的相乘,有三种方式:

(1)torch.mm:只适用于二维的tensor,不推荐。

(2)torch.matmul:适用于2d,3d,4d...   推荐。该函数只是对后两维进行矩阵相乘,前面的维度不变。若前面的维度中两个tensor有不相同的维度,则还需要使用broadcasting。

(3)@:是torch.matmul的重载的符号形式,是一样的原理。

pytorch默认的rand函数的第一个维度表示输出的维度,第二个维度表示输入的维度。

3.矩阵的乘方运算:pow(a:表示要进行次方运算的tensor,2/3/4...)

pow函数的重载符号维**。

4.矩阵的次方根:

(1)tensor.sqrt():开平方根。也可以用**(1/2,1/4,...)表示。

(2)tensor.rsqrt():tensor.sqrt()的倒数。用到稍微少一点。

补:

log表示以1为底,以2为底用log2,以10为底用log10。

5.矩阵的近似运算:

(1).floor():向下取整。

(2).ceil():向上取整。

(3).round():四舍五入。

(4).trunc():裁剪,就是把tensor裁剪成整数部分和小数部分,返回整数部分。

(5).frac():小数。

(6).clamp(min[,max]):裁剪。用的比较多。

w.grad.norm(2):打印矩阵w的模,用的是L2范数,.grad返回的是梯度。模如果等于100,就说明梯度已经很大了,属于梯度爆炸。

.clamp(min):将tensor中小于min的都置为min。

.clamp(min,max):将tensor中小于min的都置为min,大于max的都置为max。

p23:1.范数:norm(1/2:表示做L1范数还是L2范数[,dim=0/1/...:表示在具体的某一个维度上做范数]):注意:norm != normalize。

L1范数:所有元素绝对值之和。L2范数:所有元素绝对值的平方和开根号。

2.均值:.mean()=.sum()/prod(.size)

3.累乘:.prod()

4.最大值:.max()

5.最小值:.min()

6.求和:.sum()

7.最大值的位置:.argmax([dim=0:表示在第0个维度上求最大值的索引])

8.最小值的位置:.argmin([dim=0:表示在第0个维度上求最小值的索引])

注意:argmax,argmin不带参数的话,会先把tensor打平成一维的,然后再返回最大最小值的索引。

p24

9.dim:

10.keepdim:保持dimension前后tensor的维度一致。因为dimension操作本来就会消掉维度。

11.top-k:.topk(k,dim=1,largest=True(最大的k个)/False(最小的k个)):返回最大或最小的k个。会返回比max或min更多的数据。

12.k-th:即第k个的值:kthvalue(k,dim=1):只能表示最小的,即k表示第k小的。

13.比较(对每一个元素进行比较):

pytorch中没有True和False,因此用0表示False,用1表示True。

.eq(a,a):返回的是tensor,表示每个元素是否相等,相等为1,不相等为0.

.equal(a,a):返回的是True/False,判断两个tensor中的元素是否完全一样,所有元素都相等则返回True,否则返回False。

p25:1..where(condition,x:源头A,y:源头B):返回一个新的tensor。

condition、A、B的shape是一样的。

2..gather(input,dim,index,out=None):其实就是一个查表的过程。返回的是一个tensor。

(问题)上图中第19行中label.expand(4,10),label是一个size是[10]的tensor,使用expand操作后就变成了[4,10]的tensor,expand操作当确实维度的时候可以在当前维度前面自动添加一个新维度并对其进行扩展吗?这不是broadcasting的功能吗?

p26:1.梯度是所有偏微分组成的一个向量。

2.函数的梯度是一个向量,这个向量的方向表示这个函数在当前点的增长方向,这个向量的模即长度代表了这个函数在当前这个点增长的一个速率。

3.如何利用梯度找到极小值点?

p27:何凯明:Res-Net

1.一个凸函数总是可以找到一个全局最优点。

2.鞍点:在某个点取到一个维度的极大值,取到另一个维度的极小值,这个点就叫做鞍点。

3.影响搜索过程的因素:

(1)局部极小点

(2)鞍点

(3)初始状态:一定要初始化,没有把握的话可以用凯明初始化方法。

(4)学习率:如果设置的很大的话,很有可能直接就不收敛了。所以在做的时候要把学习率设置的小一点,如0.001,0.01,如果收敛了,可以适当调大lr,较快速度;如果不收敛,九八lr变得再小一点点。lr会影响收敛的速度和精度。

(5)动量:利用惯性逃出局部极小值:

.......

p28:1.logx的底为e。

p29:1.激活函数:来源于青蛙神经元:多个输入经过神经元后输出的并不是一个简单的线性函数,而是有一个阈值,大于这个阈值才会给出响应,否则不会响应。由此推出最一开始的激活函数是一个阶梯函数,不可导。为解决不可导这一问题,提出了一下的激活函数:

(1)sigmoid/Logistic:光滑,相当于压缩的效果:会把负无穷到正无穷的数压缩到0和1之间。常用,如概率,RGB等。

缺陷:x值接近于无穷大的时候,sigmoid函数的导数会非常接近于0,导致梯度下降参数长期不更新,这会导致梯度离散现象的出现。

pytorch实现:

.linespace(start,end,count):从start到end划分成count个片段。

一种实现:torch.sigmoid(tensor):实现sigmoid函数的运算。

另一种是实现:F.sigmoid(tensor)。

(2)tanh:在RNN中用的比较多。值在[-1,1]内。可以由sigmoid函数变换而来。

pytorch实现:

(3)ReLU

z=0时梯度为0,z>0时梯度为1,因此向后传播时梯度不会放大也不会缩小,计算简单,会保持梯度不变,这宴会很大程度上减少梯度离散和梯度爆炸的出现。

pytorch实现:

在做搜索的时候,优先使用ReLU函数,遇到特殊情况可以尝试一下其他函数。


(未完,待续~)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

低成本扫码点餐:1000元全包

在数字化时代,扫码点餐已经成为餐饮行业的标配。然而,对于许多小规模或初创的餐饮企业来说,开发一套完整的扫码点餐系统是一项成本高昂的任务。今天,我们将向您介绍一个低成本、高效的方法,让您用1000块钱轻松搞定一套…

反光衣穿戴识别摄像机

反光衣穿戴识别摄像机是一种基于图像识别技术的智能设备,旨在识别和监测道路上穿戴反光衣的行人和工作者,以提高道路交通安全。 反光衣穿戴识别摄像机利用高清摄像头捕捉道路上的实时图像,并通过图像处理算法进行人体检测和识别,识…

Programming Abstractions in C阅读笔记:p248-p253

《Programming Abstractions in C》学习第69天,p248-p253总结,总计6页。 一、技术总结 “A generalized program for two-player games”如标题所示,该小节强调要学会从一个复杂的程序中抽象出通用的内容——这也是本书的主旨——“Program…

RocketMQ源码阅读-十-事务消息

RocketMQ源码阅读-十-事务消息 交互流程事务消息发送Producer发送事务消息Broker处理结束事务请求Broker 生成 ConsumeQueue 事务消息回查Broker发起回查Producer 接收回查 总结 交互流程 事务消息交互流程图如下:事务消息发送步骤如下: 生产者将半事务…

40元一碗的面,卖不动了?

一、在熙熙攘攘的商场中,两家门店“格格不入” 周五(1月19日)下午,人群从写字楼向购物中心转移。6点前后,北京合生汇商场的多个过道、上下行扶梯已经熙熙攘攘,B1、B2层的美食街区更是热闹。 一片喧哗中&…

GIS项目实战07:Eclipse资源分享

官网下载:Eclipse Downloads | The Eclipse Foundation 百度网盘分享: 链接:https://pan.baidu.com/s/1YBKw8k0a0DouSWZmDg8fYw 提取码:1234 (链接失效请私信) 无需安装,解压即可使用

小程序系列--12使用 npm 包

一、Vant Weapp 1. 什么是 Vant WeappVant Weapp 是有赞前端团队开源的一套小程序 UI 组件库,助力开发者快速搭建小程序应用。它所使用的是 MIT 开源许可协议,对商业使用比较友好。 官方文档地址 https://youzan.github.io/vant-weapp 2. 安装 Vant 组…

Power BI - 5分钟学习新增度量值

每天5分钟,今天介绍Power BI新增度量值 在 Power BI Desktop 中,你可以创建度量值。度量值用于计算表达式的结果。 在创建自己的度量值时,需要使用DAX语言。 DAX包括超过200个函数、运算符等,几乎可以计算任何数据分析所需的结果…

智能风控体系之divergence评分卡简介

评分卡模型的出现据说最早是在20世纪40年代,Household Finance and Spiegel和芝加哥邮购公司第一次尝试在贷款决策过程中使用信用评分.但是这两家公司都终止了这项业务。后来,在20世纪50年代末,伊利诺伊州的美国投资公司(AIC&…

【C语言】素数的N种代码形式

The words written in front 大家好,我是xiaoxie,希望你看完之后对你能有所帮助,不足之处,请批评指正! 希望可以和大家一起交流学习进步! Introduction 大家都知道:“质数又称素数。一个大于1的自然数&a…

ECharts实现简单饼图和柱状图

1.JAVA 1.饼图 前端使用vue&#xff0c;后端使用SpringBoot <template><div><div class"card" style"padding: 15px">数据可视化分析&#xff1a;图书类型销量</div><div style"display: flex; margin: 10px 0"&g…

Github 2024-01-21 开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2024-01-21统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目7Cuda项目1HTML项目1Jupyter Notebook项目1非开发语言项目1 高级英语学习指南 创建周期&#xff…

Oracle1 数据库管理

Oracle的安装 一、基础表的创建 1.1 切换到scott用户 用sys 账户 登录 解锁scott账户 alter user scott account unlock;conn scott/tiger;发现并不存在scott账户&#xff0c;自己创建一个&#xff1f; 查找资料后发现&#xff0c;scott用户的脚本需要自己执行一下 C:\ap…

【Fooocus 深度学习】SDXL,AIGC生图,源码解读

文章目录 使用通配符增加prompt多样性Fooocus的风格实现 使用通配符增加prompt多样性 prompt和negative_prompt都可以通过apply_wildcards函数来实现通配符替换&#xff0c;apply_wildcards会从txt中随机找一个出来。 promptsunshine, river, trees, __artist__ task_prompt …

Adobe Acrobat DC软件安装后右键菜单点击无反应报错解决办法

安装了Adobe Acrobat DC软件后&#xff0c;Adobe Acrobat DC软件会修改系统的右键菜单&#xff0c;如果一旦Adobe Acrobat DC软件出现问题&#xff0c;你的右键菜单也就不能使用了&#xff0c;出现未响应的状态。 那如何恢复系统原来的右键菜单呢&#xff0c;办法很简单&#x…

在线海报图片设计器、图片编辑器源码/仿照稿定设计源码

在线海报设计系统素材设计源码是一个漂亮且功能强大的在线海报图片设计器&#xff0c;仿照稿定设计而成。该系统适用于多种场景&#xff0c;包括海报图片生成、电商分享图、文章长图、视频/公众号封面等。用户无需下载软件&#xff0c;即可轻松实现创意&#xff0c;迅速完成排版…

全网诚招工程项目管理平台城市合伙人

我们需要全力打造适用于建筑装饰、机电安装、光伏、钢结构工程项目的项目管理平台&#xff1b;专门针对建筑施工企业&#xff0c;为施工企业提升数字化工程管理水平&#xff0c;提升施工管理效率&#xff0c;节约成本&#xff0c;控制施工过程风险&#xff0c;严格管理施工过程…

arcgis实现截图/截屏功能

arcgis实现截图/截屏功能 文章目录 arcgis实现截图/截屏功能前言效果展示相关代码 前言 本篇将使用arcgis实现截图/截屏功能&#xff0c;类似于qq截图 效果展示 相关代码 <!DOCTYPE html> <html> <head><meta charset"utf-8"><meta nam…

289. 生命游戏

根据 百度百科 &#xff0c; 生命游戏 &#xff0c;简称为 生命 &#xff0c;是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子的面板&#xff0c;每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态&#xff1a; 1 即为 活细胞 &am…

嵌入式工程师有什么推荐学习路径?

嵌入式工程师有什么推荐学习路径&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff…