permute与transpose

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, :])

 

posted @ 2021-10-10 10:26  WTSRUVF  阅读(211)  评论(0编辑  收藏  举报