torch.transpose(input, dim0, dim1)
tensor.transpose(dim0, dim1)
tensor.permute(dim0, dim1, ```,dimk)
都是交换维度的函数
transpose每次只能换两个维度,两种写法,参数顺序无所谓
permute每次可以交换多个维度,但所有的维度也必须都写上,参数顺序表示交换结果是原值的哪个维度
只有一种写法
注意:使用transpose或permute之后,若要使用view,必须先contiguous()
tensor切片:
data = torch.randint(0, 100, (4, 5, 3), dtype = torch.float32) print(data) list_1 = [0, 1, 2, 3] list_2 = [2, 4, 3, 0] #第一维中,每一维都取出2,4,3,0的第二维 print(data[:, list_2, :]) #第一维中第0个取第二维中的第2个,1取4,2取3,3取0 print(data[list_1, list_2, :])