[pytorch] 1. tensor

J·2021년 1월 13일
0

pytorch

목록 보기
1/23

본 포스팅은 pytorch tutorial을 기반으로 하고 있음을 알립니다.

pytorch가 무엇인가요?

python 기반의 과학연산 패키지

  • numpy를 대체하면서 gpu를 이용한 연산수행이 가능한 플랫폼
  • 최대한의 유연성과 속도를 제공하는 딥러닝 연구 플랫폼

what is tensor?

tensor는 numpy의 ndarray와 유사하며, gpu를 사용한 연산 가속도 가능합니다.

만약 tensor에 하나의 값만 존재한다면, .item() 을 사용하여 python scalar 값을 얻을 수 있습니다. tensor에 하나의 값이 아니라 여러개가 존재한다면 사용이 불가능합니다.

x = torch.randn(1)
print(x)
print(x.item())

torch.size는 tensor의 행렬 크기를 반환합니다. tuple 타입으로, 모든 튜플 연산을 지원합니다.

x = x.new_ones(5, 3, dtype=torch.double)
print(x)
print(x.size())
# out : torch.Size([5, 3])

in-place 방식으로 tensor의 값을 변경하는 연산 뒤에는 '_'가 붙습니다.

x.copy_(y)
y.add_(x)

크기 변경

tensor의 크기(size)나 모양(shape)을 변경하고 싶다면 torch.view를 사용합니다.

x = torch.randn(4, 4)
y = x.view(16)
z = x.view(-1, 8)  # -1은 다른 차원에서 유추합니다.
print(x.size(), y.size(), z.size())
# out : torch.Size([4, 4]) torch.Size([16]) torch.Size([2, 8])

tensor - numpy 변환(Bridge)

a = torch.ones(5)
b = a.numpy()

위와 같은 코드를 통해 tensor를 numpy배열로 변환할 수 있습니다.

numpy - torch tensor 변환

a = np.ones(5)
b = torch.from_numpy(a)

위와 같은 코드를 통해 numpy배열을 torch tensor로 변환할 수 있습니다.

cuda tensors

.to 메소드를 이용하여 tensor를 어떠한 장치로도 옮길 수 있습니다.

a = torch.ones(5)
a = a.to(device)

출처

  1. https://tutorials.pytorch.kr/beginner/blitz/tensor_tutorial.html#sphx-glr-beginner-blitz-tensor-tutorial-py
profile
I'm interested in processing video&images with deeplearning and solving problem in our lives.

0개의 댓글