import torch
a = torch.rand(3, 3, 4, 5)
b = a.view(3, -1)
c = b.view(3, 3, 4, 5)
d = torch.rand(3, 12, 1, 5)
print(torch.equal(c, a))
e=a.view_as(d)
print(e)
view_as reshape到跟d一样
view只能改变一段连续的内存,
如果数据先筛选,再view,就会报错:
view size is not compatible with input tensor's size and stride (at least one dimension spans across two contiguous subspaces)
解决方法:
a_correct = a_trans.contiguous().view(3,-1)
如果只转成1列,下面也可以:
torch.flatten(indexs)