tensor的含义
在DL中,tensor指的是多维向量,例如 [ [ [1, 2], [3, 4], [5, 6] ] ]。该tensor的大小为[1, 3, 2]。与list,tuple这些数据结构不同的是,系统会给tensor分配一块连续的内存,而不是分散分配。
创建一个tensor
通过list创建:
points = torch.tensor([[4.0,1.0],[2.0,1.0],[5.0,3.0]])
通过torch.zeros创建,初始化全为0,后续可以自己赋值:
points = torch.zeros(3,2)
out:tensor([[0., 0.],
[0., 0.],
[0., 0.]])
tensor的切片操作
与pthon内置的list操作类似,记录一下之前比较容易出错的和新出现的操作。
somelist[:-1] #取出从第一个元素到倒数第二个元素的所有元素,不包括最后一个
somelist[1:,:] #取出第二行(下标为1)到最后一行的所有列的元素
somelist[1:,0] #取出第二行(下标为1)到最后一行的第0列元素
somelist[1:,1] #取出第二行(下标为1)到最后一行的第1列元素
增加一个维度,也就是增加一个方括号。
points[None]
out:tensor([[[4., 1.],
[2., 1.],
[5., 3.]]])
tensor的broadcast(升维?)和降维操作
img为(3,5,5),weights为(3