torch.view()详解及-1参数是什么意思

时间:2023-03-10 00:10:22
torch.view()详解及-1参数是什么意思

经常可以看到调用torch.view(-1,28*28)之类的调用,那么这里的-1是什么意思呢,经过查看文档view()得到了一下结果:

  • view()返回的数据和传入的tensor一样,只是形状不同
  • -1在这里的意思是让电脑帮我们计算,比如下面的例子,总长度是20,我们不想自己算\(20/5=4\),就可以在不想算的位置放上-1,电脑就会自己计算对应的数字,这个在实际搭建网络的时候是很好用的
  • 还要注意view()返回的tensor和传入的tensor共享内存,意思就是修改其中一个,数据都会变
import torch
a = torch.arange(0,20) #此时a的shape是(1,20)
a.view(4,5).shape #输出为(4,5)
a.view(-1,5).shape #输出为(4,5)
a.view(4,-1).shape #输出为(4,5)