ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Pytorch] reshape / view
    [Study] Data Science/Python 라이브러리 2022. 3. 17. 22:28

    Pytorch에서 reshape와 view는 공통적으로 tensor의 모양을 변경하는데 사용할 수 있다. 

     

     

    각각의 차이를 알아보기 위해 아래와 같이 임의의 t를 설정했다. 

    0~11사이의 값을 reshape 했기 때문에, 2*3 matrix가 빠짐없이 채워지므로, 결과적으로 2*2*3형태의 numpy array가 생성될 것이다. 

    t = np.arange(12).reshape(-1,2,3)
    t

     

     

    t를 텐서형태로 변환하여, shape을 확인해보면 torch.size([2,2,3]) 결과가 나온다.

    floatT = torch.FloatTensor(t)
    floatT.shape #torch.Size([2, 2, 3])

     

     

    텐서형태로 변환된 floatT에 대해 view함수를 취해보면 기존의 3차원에서 2차원으로 변경되는 것을 알 수 있다. view를 취했을 때의 shape을 출력해보면, torch.size([4,3])임을 확인할 수 있으며, 결국 view는 floatTensor형태를 (x, 3)의 크기로 변경하는 것이다. 해당 케이스에서는 x자리에 -1을 넣었기 때문에, 열의 개수는 3개이되 행은 주어진 데이터의 수를 가지고 빠짐없이 정렬된다고 이해하면 될 것이다. 

    floatT.view([-1,3]) 
    
    """tensor([[ 0.,  1.,  2.],
            [ 3.,  4.,  5.],
            [ 6.,  7.,  8.],
            [ 9., 10., 11.]])"""
Designed by Tistory.