728x90

 

numpy 에서 tensor로 변환하는 방법에 대해 알아보겠습니다. 데이터를 tensor을 생성하는 방법은 2가지가 있습니다. tensor을 생성하거나 numpy 배열을 tensor로 바꾸는 것이 있습니다. 

 

왜 tensor을 사용하는가?

1. 대부분의 딥 러닝 framework( TensorFlow, Pytorch) 에서는 Tensor을 기본 데이터 구조로 사용하기 때문입니다.

2. tensor은 자동으로 미분을 해주며 역전파 계산을 해줍니다. 

3. Tensorflow와 Pytorch 같은 딥 러닝 framework는 GPU를 활용해 더욱 빠른 연산을 할 수 있습니다. 데이터를 tensor로 만들거나 numpy 배열을 tensor 로 변환합니다.

4. 고차원의 배열을 numpy보다 tensor가 효과적으로 처리할 수 있기에 사용합니다.

 

Tensor 생성

torch.Tensor( )

tensor을 반환합니다.

import torch
tf = torch.Tensor([1,2])
print(tf)

# Output
# tensor([1., 2.])

 

Numpy to Tensor

torch.from_numpy( )

numpy를 tensor로 변환한 뒤 반환합니다.

import torch
import numpy as np

a=np.array([1,2,3,4])
b=torch.from_numpy(a)
print(b)

# Output
# tensor([1, 2, 3, 4])

 

Tensor to Numpy

numpy( )

tensor을 numpy로 변환한 뒤 반환합니다.

import torch
import numpy as np


a = torch.rand(3,3)
b = a.numpy()

print(b)

# [[0.229119   0.00697333 0.46128327]
#  [0.92042404 0.55823183 0.16318232]
#  [0.16195619 0.35052514 0.5872609 ]]
728x90