Search code examples
pythonpytorchreshapetensor

PyTorch reshape tensor dimension


I want to reshape a vector of shape (5,) into a matrix of shape (1, 5).

With numpy, I can do:

>>> import numpy as np
>>> a = np.array([1, 2, 3, 4, 5])
>>> a.shape
(5,)
>>> a = np.reshape(a, (1, 5))
>>> a.shape
(1, 5)
>>> a
array([[1, 2, 3, 4, 5]])

But how do I do this with PyTorch?


Solution

  • Use torch.unsqueeze(input, dim, out=None):

    >>> import torch
    >>> a = torch.Tensor([1, 2, 3, 4, 5])
    >>> a
    
     1
     2
     3
     4
     5
    [torch.FloatTensor of size 5]
    
    >>> a = a.unsqueeze(0)
    >>> a
    
     1  2  3  4  5
    [torch.FloatTensor of size 1x5]