继续创作,加快生长!这是我参与「日新方案 10 月更文应战」的第3天,点击检查活动概况

1.环境及版别

这儿用的是python3.10,pytorch1.12.1版别已经搭配的cuda11.6。案例以及代码展示都会在jupyter note中演示。也能够在Anaconda中发动相应环境的jupyter。

深度学习中数据的操作(pytorch框架)

深度学习中数据的操作(pytorch框架)

2.数据操作

深度学习中数据的操作(pytorch框架)

这儿咱们能够运用arange创建一个行向量,其间包含了0到4的整数,注意一点就是这儿是以0为起点,然后输出总共五个数字,所以就只输出到4.然后咱们能够将这组元素以咱们想要的方法进行重置,比如运用torch.ones(几行,几列)的方法将一切元素置为1,或许运用torch.zeros(几行,几列)的方法将一切元素置为0.这三种为常用根本操作。

3.运算符

深度学习中数据的操作(pytorch框架)
关于恣意具有相同形状的张量, 常见的标准算术运算符加减乘除的操作都能够被晋级为按元素运算。其间需注意一点,在out[22]和out[23]能够发现当操作的两个张量之中如果有恣意张量的其间一个元素是浮点型,那么输出的一切元素都依照浮点型进行输出。 一起咱们也能够将两个张量连接到一同如in[28]咱们设置了两个方法不同可是格局相同的张量X,Y。能够发现,在out[28]中输出张量的轴1长度(10)是两个输入张量轴1长度的总和(5+5)。第二个输出张量的轴0长度(2)是两个输入张量轴0长度的总和(1+1)。

4.广播机制

在上面的操作中能够看到在相同形状的两个张量上能够依照元素进行履行。当两个张量的形状不同的时候咱们依然能够经过广播机制来履行按元素操作。

深度学习中数据的操作(pytorch框架)

设置的两个不同形状的张量,a是三行一列,b是一行两列,c是两行两列,能够看出a+b,b+c能够正常显示结果,而a+c却不能,这儿的主要原因虽然能够不同形状的张量能够进行操作,但仍是会有一定的限制,需要运行前进行检查和匹配。

5.索引和切片

跟数组一样,张量中的元素也能够经过索引进行访问。通常都将第一个元素的索引定为0,最后一个为-1.

深度学习中数据的操作(pytorch框架)
设置一个四行十列的张量,对其进行索引1号方位的向量和进行两个片段的选取,依然是遵从左闭右开的准则。 能够看出这儿的索引跟python中的索引和切片操作类似,只不过一个是数字一个是向量。

6.转换为其他的python对象

将深度学习结构界说的张量转换为NumPy张量很简单,反之也相同简单。torch张量和numpy数组将共享它们的底层内存,就地操作更改一个张量也会一起更改另一个张量。

深度学习中数据的操作(pytorch框架)

在in[41]中咱们先界说一个numpy数组A,然后再将其放入torch的界说中,输出的就是torch的张量。一起也能够经过item函数或许python的内置函数将其转换成python标量。

7.总结

到了这儿咱们更多操作的不再是数字而是向量,可是它的操作与数字的操作极端类似。两者有很多贯穿之处。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。