当只是生成view视图的时候,不用重新分配内存根本不耗费时间。仅仅使用permute的时间其实也就10-4量级,忽略不计。但是加上contiguous()重新分配内存后,耗时将会增加1000倍,估计还会随着数组的大小变化而变化
import torch
import time
s=torch.rand(9,32,160,160)
b,c,h,w=s.size()
st=time.time()
for i in range(40):
g=s.view(b*c,h,w).permute(0,2,1).contiguous()
ed=time.time()
print(ed-st)
st=time.time()
for i in range(40):
g=s.view(b*c,h,w)
ed=time.time()
print(ed-st)
输出:
0.34734344482421875
0.0002682209014892578