torch.tensor和torch.Tensor的一些区别:torch.tensor接收现有的数据生成tensor,torch.Tensor接收一个维度生成数据,torch.Tensor也可以接收数据但是要放在list里面,例如:torch.Tensor([2, 2.3, 2])
可以使用torch.tensor([2, 2.3, 2]).type()来打印tensor的类型。
随机初始化:torch.rand(3,3)均匀在0到1的随机数字来初始化
torch.rand_like(a)接收一个tensor,读写a的shape然后传给rand
torch.randint(1,10,[3,3])生成一个[1,10)的tensor,max是不包含在内的,也有_like 函数,第三参数是shape,3*3的
切片:例如a = torch.tensor(4,3,28,28),a[:2]表示第一维上0到2,但是不包含2的索引,也就是a[0]、a[1],如图所示:
a[:]默认表示这个维度上所有的,如果是a[:-1]表示该维度的最后一个,如果是a[0:4:2]表示0到4不包含4步长为2的取,其他维度也是类似的。
select_index()方法:例如a.select_index(0,[0,2])第一个参数是表示在第几个维度上进行操作,第二个表示要取哪几个索引,第二个参数必须是个Tensor,不是list。
a[...],其中...表示任意的(可以理解 : 和 , 自动配对)
ge()方法:mask = x.ge(0.5) ,可以把x中大于等于0.5的记作1,否则为0,输出是int类型
masked_select()方法:torch.masked_select(x,mask)可以把x中大于等于0.5的取出来,但是shape是一维的
extend和repeat方法:a.extend(4,32,4,4)代表每一个维度分别拓展成4,32,4,4。而a.repeat(4,32,4,4)代表每一个维度分别复制4,32,4,4次,即每一个维度的数量分别*4,*32,*4,*4。