1. view/reshape:形状改变,数据不变
Example:
In[1]:x = torch.rand(4,1,28,28)
In[2]: x.size()
Out[2]: torch.Size([4, 1, 28, 28])
In[3]: y = x.view(4,28*28)
In[4]: y.size()
Out[4]: torch.Size([4, 784])
In[5]: y = x.reshape(4,28*28)
In[6]: y.size()
Out[6]: torch.Size([4, 784])
2. squeeze/unsqueeze:压缩/扩展维度
Example:
In[1]: x = torch.rand(4,1,28,28)
In[2]: x.size()
Out[2]: torch.Size([4, 1, 28, 28])
In[3]: y = x.squeeze()
In[4]: y.size()
Out[4]: torch.Size([4, 28, 28]) #默认去掉所有为元素个数为1的维度
In[5]: y = x.squeeze(1)
In[6]: y.size()
Out[6]: torch.Size([4, 28, 28])
In[7]: y = x.squeeze(2)
In[8]: y.size()
Out[8]: torch.Size([4, 1, 28, 28]) #元素个数不为1的维度不能squeeze().
In[9]: y = x.unsqueeze(2)
I