[파이썬] PyTorch 텐서(Tensor) 기본 연산

PyTorch는 딥 러닝을 위한 오픈 소스 머신러닝 라이브러리입니다. 텐서는 PyTorch의 핵심 데이터 구조이며, 다차원 배열로 표현됩니다. 이번 블로그 포스트에서는 PyTorch 텐서의 기본 연산에 대해 알아보겠습니다.

텐서(Tensor) 기본 개념

텐서는 다차원 배열로, 스칼라(0차원), 벡터(1차원), 행렬(2차원)을 포함하여 더 높은 차원의 배열을 의미합니다. PyTorch에서 텐서는 torch.Tensor 클래스로 나타냅니다.

import torch

# 스칼라 텐서 생성
scalar = torch.tensor(3.14)
print(scalar)  # 출력: tensor(3.1400)

# 벡터 텐서 생성
vector = torch.tensor([1, 2, 3, 4, 5])
print(vector)  # 출력: tensor([1, 2, 3, 4, 5])

# 행렬 텐서 생성
matrix = torch.tensor([[1, 2, 3], [4, 5, 6]])
print(matrix)  # 출력: tensor([[1, 2, 3],
               #         [4, 5, 6]])

PyTorch 텐서는 GPU를 이용한 연산도 지원하며, .cuda() 메서드를 사용하여 GPU로 이동할 수 있습니다.

import torch

# CPU에서 텐서 생성
tensor_cpu = torch.tensor([1, 2, 3])

# GPU로 텐서 이동
tensor_gpu = tensor_cpu.cuda()

# 연산 수행
result = tensor_gpu * 2
print(result)

텐서(Tensor) 연산

PyTorch 텐서는 다양한 수학 연산을 지원합니다. 기본 연산에는 덧셈, 뺄셈, 곱셈, 나눗셈이 포함됩니다. 아래는 몇 가지 예제 코드입니다.

덧셈(Addition) 연산

import torch

tensor1 = torch.tensor([1, 2, 3])
tensor2 = torch.tensor([4, 5, 6])

result = tensor1 + tensor2
print(result)  # 출력: tensor([5, 7, 9])

곱셈(Multiplication) 연산

import torch

tensor1 = torch.tensor([1, 2, 3])
tensor2 = torch.tensor([4, 5, 6])

result = tensor1 * tensor2
print(result)  # 출력: tensor([4, 10, 18])

나눗셈(Division) 연산

import torch

tensor1 = torch.tensor([4, 6, 8])
tensor2 = torch.tensor([2, 3, 4])

result = tensor1 / tensor2
print(result)  # 출력: tensor([2., 2., 2.])

기타 연산

텐서는 다른 다양한 연산도 지원합니다. 예를 들어, 텐서의 합(sum), 평균(mean), 최대값(max), 최소값(min) 등을 계산할 수 있습니다.

import torch

tensor = torch.tensor([1, 2, 3, 4, 5])

sum_result = tensor.sum()
mean_result = tensor.mean()
max_result = tensor.max()
min_result = tensor.min()

print(sum_result)   # 출력: tensor(15)
print(mean_result)  # 출력: tensor(3)
print(max_result)   # 출력: tensor(5)
print(min_result)   # 출력: tensor(1)

결론

이번 포스트에서는 PyTorch 텐서의 기본 개념과 연산에 대해 알아보았습니다. 텐서를 이해하고 다양한 수학 연산을 활용하여 딥 러닝 모델을 구축할 수 있습니다. 텐서를 다룰 때는 자주 사용하는 연산들에 익숙해지도록 노력해보세요.

참고 자료: