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, :])
自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
原文地址:https://www.cnblogs.com/WTSRUVF/p/15388754.html