继续创作,加快生长!这是我参与「日新方案 10 月更文应战」的第3天,点击检查活动概况
1.环境及版别
这儿用的是python3.10,pytorch1.12.1版别已经搭配的cuda11.6。案例以及代码展示都会在jupyter note中演示。也能够在Anaconda中发动相应环境的jupyter。


2.数据操作

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

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

设置的两个不同形状的张量,a是三行一列,b是一行两列,c是两行两列,能够看出a+b,b+c能够正常显示结果,而a+c却不能,这儿的主要原因虽然能够不同形状的张量能够进行操作,但仍是会有一定的限制,需要运行前进行检查和匹配。
5.索引和切片
跟数组一样,张量中的元素也能够经过索引进行访问。通常都将第一个元素的索引定为0,最后一个为-1.

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

在in[41]中咱们先界说一个numpy数组A,然后再将其放入torch的界说中,输出的就是torch的张量。一起也能够经过item函数或许python的内置函数将其转换成python标量。
7.总结
到了这儿咱们更多操作的不再是数字而是向量,可是它的操作与数字的操作极端类似。两者有很多贯穿之处。