【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函数,遇到特殊情况可以尝试一下其他函数。


(未完,待续~)

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

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

相关文章

Go 接口

接口概览 接口大概理解 接口类型是队其他类型行为的概括与抽象 接口类型中,包含函数声明,但没有数据变量接口的作用通过使用接口,可以写出更加灵活和通用的函数,这些函数不用绑定在一个特定的类型实现上Go 接口特征 很多面向对象…

验厂的类型的流程

【验厂的类型的流程】 在全球贸易一体化的进程中,验厂已经成为出口外贸企业真正与世界接轨的一道门槛,并且通过近几年的不断发展,验厂也逐渐为企业所熟知和充分重视。 如何正确理解验厂标准,实施有效的方案,满足验厂的…

PID控制算法,带C语言源码实现

1 PID简介 PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。PID控制算法是结合比例、积分和微分三种环节于一体的控制算法。PID算法是连续系统中技术最为成熟、应用最为…

面向对象和面向过程:C语言中的两种编程范式

C语言是一种结构化的编程语言,它支持两种不同的编程范式:面向对象和面向过程。编程范式是一种编程思想或风格,它决定了程序的组织和设计方式。本文将探讨面向对象和面向过程在C语言中的定义、特点、优缺点以及应用场景,并给出一些…

gitlab runner 安装、注册、配置、使用(Docker部署)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

SQL 系列教程(一)

目录 SQL 简介 SQL 是什么 SQL 能做什么 SQL 语法 数据库表 SQL 语句 注意事项 SQL 语句后面的分号 一些最重要的 SQL 命令 SQL SELECT 语句 SQL SELECT 语句 演示数据库 SELECT Column 实例 SELECT * 实例 SQL SELECT DISTINCT 语句 SQL SELECT DISTINCT 语句…

【工具使用-Everything】everything只能搜到文件夹,无法搜到文件

一,问题现象 everything搜索时,只能搜索到文件夹,无法搜索到文件夹下的文件。 二,问题原因 everything搜索设置问题,设置为"文件夹"导致 三,解决方法 将搜索选项设置为“所有”即可&#x…

5 新增课程

5.1 需求分析 5.1.1 业务流程 根据前边对内容管理模块的数据模型分析,课程相关的信息有:课程基本信息、课程营销信息、课程图片信息、课程计划、课程师资信息,所以新增一门课程需要完成这几部分信息的填写。 以下是业务流程: …

全链路压测:提升业务可靠性和可用性

全链路压测是一种全面评估系统性能和稳定性的测试方法,通过模拟真实用户场景和流程来验证整个应用系统在高负载情况下的表现。全链路压测的主要作用涵盖了多个方面: 性能评估与优化: 全链路压测可以全面评估系统在高负载下的性能表现&#xf…

代码评审——随机数Random问题

问题描述: 为了获取唯一值,经常会依赖产生随机数来保证唯一性。在获取随机数时,如果使用错误的方法,会比较低效。 可以参考以下代码: public static String geneRundomNo(){Random rnew Random();int numr.nextInt(…

day31_CSS

今日内容 CSS概述引入方式 (where)选择器(how)属性(how) 1 CSS介绍 层叠样式表(cascading style sheet) CSS 用来美化HTML页面,可以让页面更好看,还可以布局页面. 好处 美化页面,布局页面使用外部css文件,可以实现样式文件和html文件分离,便于维护使用外…

再学jQuery

添加链接描述 jQuery源码采用模块化的设计,将不同功能的代码模块化,并通过jQuery.fn扩展原型链,使得可以灵活地使用各种功能和方法。这样的设计使得代码结构清晰,易于维护和扩展。jQuery源码中考虑了跨浏览器兼容性,通…

苹果眼镜(Vision Pro)的开发者指南(1)

一、用到的底层核心框架: SwiftUI:无论开发者是要创建窗口、体积还是空间体验,SwiftUI 都是构建新的 visionOS 应用程序或将现有 iPadOS 或 iOS 应用程序引入平台的最佳方式。凭借全新的 3D 功能以及对深度、手势、效果和沉浸式场景类型的支持,SwiftUI 可以帮助你为 Vision…

5.ROC-AUC机器学习模型性能的常用的评估指标

最近回顾机器学习基础知识部分的时候,看到了用于评估机器学习模型性能的ROC曲线。再次记录一下,想起之前学习的时候的茫然,希望这次可以更加清晰的了解这一指标。上课的时候听老师提起过,当时没有认真去看,所以这次可以…

SpeechGPT-Gen;使用Agents编辑图像;多模态扩散模型图像生成

本文首发于公众号:机器感知 SpeechGPT-Gen;使用Agents编辑图像;多模态扩散模型图像生成; CCA: Collaborative Competitive Agents for Image Editing This paper presents a novel generative model, Collaborative Competitive…

多流转换 (分流,合流,基于时间的合流——双流联结 )

目录 一,分流 1.实现分流 2.使用侧输出流 二,合流 1,联合 2,连接 三,基于时间的合流——双流联结 1,窗口联结 1.1 窗口联结的调用 1.2 窗口联结的处理流程 2,间隔联结 2.1 间隔联…

<网络安全>《2 国内主要企业网络安全公司概览(二)》

4 北京天融信科技有限公司(简称天融信) 信息内容LOGO成立日期创始于1995年总部北京市海淀区上地东路1号院3号楼北侧301室背景民营企业是否上市天融信[002212]A股市值99亿主要产品网络安全大数据云服务员工规模6000多人简介天融信科技集团(证券代码:0022…

# Java NIO(一)FileChannel

Java NIO 1.BIO与NIO的区别 BIO为阻塞IO,NIO为非阻塞IO。 BIONIOJAVA1.4之前Java 1.4之后面向流:以byte为单位处理数据面向块:以块为单位处理数据同步阻塞同步非阻塞无选择器(Selector) 1.1NIO的核心组成部分 Cha…

书生·浦语大模型实战营-学习笔记6

目录 OpenCompass大模型测评1. 关于评测1.1 为什么要评测?1.2 需要评测什么?1.3 如何评测?1.3.1 客观评测1.3.2 主观评测1.3.3 提示词工程评测 2. 介绍OpenCompass工具3. 实战演示 OpenCompass大模型测评 1. 关于评测 1.1 为什么要评测&#…

人工智能系列 :与机器共生的未来

大家好,身处一个日新月异的时代,科技的浪潮汹涌而至,将人们推向未知的前方,一个充满人工智能与机器的世界。 这个未知的境地,或许令人心生恐慌,因为它的庞大未知性仿佛一团迷雾,模糊了大家的视…