经常可以看到调用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)