之前一段时间的“科研”经历几乎没什么代码经验,对于Pytorch的了解也局限于部分基础应用。希望这个假期能在大哥的帮助下提高自己!
——希望自己假期不摸鱼的qsy
-
维度问题
Pytorch中大量使用的tensor有着许多的接口函数,其中对于维度的规定与使用是许多函数应用中都需要熟练掌握的。经过大哥的讲解与一段时间的理解,tensor的维度可以概括为:
最高维在最前面,在最外面(第0维);正维度从前向后,负维度从后向前。
比如下面这段代码:(torch.cumprod是求某一维度的累乘)
1 tensor1 = torch.tensor([[[1, 2], [3 ,4]], [[5, 6], [7, 8]]]) 2 cumprod = torch.cumprod(tensor1, 0) 3 4 print(cumprod)
得到的结果为:
1 tensor([[[ 1, 2], 2 [ 3, 4]], 3 [[ 5, 12], 4 [21, 32]]])
可以看到,对tensor1第0维做累乘的结果就是对最高的维度变化的数据做累乘。
(这里我理解的最高是我认为把一个tensor从二维扩展到三维,需要额外增加的一个维度,这个额外增加的维度我认为是最高维,位于最前面与括号的最外面)
-
冒号的用法
在使用 torch.tensor 时,经常会需要对张量内部数据进行操作,这时, [ : ] 就是必不可少的操作符啦!
简要说来, : 表示选择某一维的数据范围
- [a : b] 就表示选区的数据范围为: [a, b)
- 如果冒号的一侧没有数字的话,表示的就是那一侧的所有数据
- 如果有小于零的数据,则代表是倒数的第几个