情形1(按行随机排列)
import torch
a=torch.rand(3,5)
print(a)
a=a[torch.randperm(a.size()[0])]
print(a)
情形2(按列排列)
a=a[:,torch.randperm(a.size()[1])]
print(a)
结果如下
但是这里有一个问题,就是随机交换行列的顺序时,是保证列是不变的,这时的随机性还是稍微小一点
情形3(每行随机排列)
import torch
x = torch.rand(3, 5)
print(x)
indices = torch.argsort(torch.rand(*x.shape), dim=-1)
result = x[torch.arange(x.shape[0]).unsqueeze(-1), indices]
print(result)
结果如下