| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 菜菜PyTorch深度学习框架最全笔记(第一次课) -> 正文阅读 |
|
[人工智能]菜菜PyTorch深度学习框架最全笔记(第一次课) |
目录学习建议:将张量和numpy中的array类比来进行理解和学习 学习建议:将张量和numpy中的array类比来进行理解和学习一、张量的创建和常用方法1、整数型的数组默认创建int32(整型)类型,而张量则默认创建int64(长整型)类型 2、创建浮点型数组时,张量默认是float32(单精度浮点型),而array则是默认float64 3、未来的应用当中,Torch中很多函数不能使用整型,要改成浮点数 一些常见函数:
4、张量的维度: 如何理解零维张量?目前,我们将零维张量视为拥有张量属性的单独一个数,没有方向。 为什么会有零维张量?张量可存在GPU上,但Python原生的数值型对象不行,所以使用零维张量代替一个单独的数值。 5、张量的深拷贝: Python中其他对象类型一样,等号赋值操作实际上是浅拷贝,需要进行深拷贝,则需要使用clone方法 一些代码以及其余更多细节可参考文章: Lesson 1.张量(Tensor)的创建和常用方法_Grateful_Dead424的博客-CSDN博客_python定义tensor 二、张量的索引、分片、合并及维度调整1、张量的符号索引一维张量的索引过程和Python原生对象类型的索引一致,基本格式遵循 二维张量的索引逻辑和一维张量的索引逻辑基本相同,二维张量可以视为两个一维张量组合而成,而在实际的索引过程中,需要用逗号进行分隔,分别表示对哪个一维张量进行索引、以及具体的一维张量的索引。 在二维张量索引的基础上,三维张量拥有三个索引的维度。我们将三维张量视作矩阵组成的序列,则在实际索引过程中拥有三个维度,分别是索引矩阵、索引矩阵的行、索引矩阵的列。 2、张量的函数索引在PyTorch中,我们还可以使用index_select函数,通过指定index来对张量进行索引。
在index_select函数中,第二个参数实际上代表的是索引的维度。对于t1这个一维向量来说,由于只有一个维度,因此第二个参数取值为0,就代表在第一个维度上进行索引 3、tensor.view方法在正式介绍张量的切分方法之前,需要首先介绍PyTorch中的.view()方法。该方法会返回一个类似视图的结果,该结果和原张量对象共享一块数据存储空间,并且通过.view()方法,还可以改变对象结构,生成一个不同结构,但共享一个存储空间的张量。当然,共享一个存储空间,也就代表二者是“浅拷贝”的关系,修改其中一个,另一个也会同步进行更改。 4、张量的分片函数分块:chunk函数能够按照某维度,对张量进行均匀切分,并且返回结果是原张量的视图 拆分:split既能进行均分,也能进行自定义切分。当然,需要注意的是,和chunk函数一样,split返回结果也是view。 5、张量的合并操作拼接函数:cat 堆叠函数:stack? (和拼接不同,堆叠不是将元素拆分重装,而是简单的将各参与堆叠的对象分装到一个更高维度的张量里) 6、张量的维度变换此前我们介绍过,通过reshape方法,能够灵活调整张量的形状。而在实际操作张量进行计算时,往往需要另外进行降维和升维的操作,当我们需要除去不必要的维度时,可以使用squeeze函数,而需要手动升维时,则可采用unsqueeze函数 一些代码以及其余更多细节可参考文章: Lesson 2.张量的索引、分片、合并以及维度调整_Grateful_Dead424的博客-CSDN博客 三、张量的广播和科学运算Tensor基本数学运算: Tensor数值调整函数: ? Tensor常用科学计算:
Tensor统计分析函数: ?Tensor比较运算函数: ?关于以上函数的详细解释和运用: Lesson 3.张量的广播和科学运算_Grateful_Dead424的博客-CSDN博客 四、基本优化方法和最小二乘法
2、torch.linalg.norm(t)求向量或矩阵的范数 3、torch.autograd.grad函数 通用微分函数,当只输入一个自变量时计算结果就是导数,输入多个自变量时则会计算偏导数 详情参考: Lesson 5.基本优化思想与最小二乘法_Grateful_Dead424的博客-CSDN博客 五、动态计算图和梯度下降算法AutoGrad的回溯机制与动态计算图反向传播与梯度计算阻止计算图追踪??
识别叶节点??.is_leaf.backward() .grad 详情参考: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 19:46:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |