상세 컨텐츠

본문 제목

PyTorch의 텐서(Tensor)와 NumPy의 Array(배열) 차이

AI & Python Lab/Concept Notes

by 코딩은 내 여친 2026. 2. 7. 19:37

본문

반응형

딥러닝과 머신러닝을 공부하다 보면 가장 먼저 접하게 되는 개념 중 하나가 텐서(Tensor)입니다.
PyTorch에서는 모든 데이터가 텐서 형태로 처리되며, 이는 NumPy의 배열(Array)과 매우 유사해 보이지만 중요한 차이점이 존재합니다.

이번 글에서는
✔ 텐서의 개념
✔ NumPy 배열과의 공통점
✔ 두 객체의 차이점
✔ 언제 무엇을 사용하면 좋은지
를 정리해보겠습니다.

 


✔ PyTorch의 텐서(Tensor)란?

Tensor는 다차원 배열(Multi-dimensional Array)입니다.
스칼라, 벡터, 행렬을 일반화한 개념으로, PyTorch에서 모델 입력, 출력, 가중치, 손실값 등 모든 데이터는 텐서 형태로 표현됩니다.

차원 예시

차원 예시
0차원 스칼라 (5)
1차원 벡터 [1, 2, 3]
2차원 행렬
3차원 이상 이미지, 영상, 배치 데이터

텐서 생성 예시

import torch

x = torch.tensor([1, 2, 3])
print(x)
 

✔ NumPy의 Array란?

NumPy의 Array 역시 다차원 배열이며, 수치 연산을 빠르게 처리하기 위한 파이썬 라이브러리입니다.

배열 생성 예시

import numpy as np

a = np.array([1, 2, 3])
print(a)
 

✔ 공통점

  • 다차원 배열 구조
  • 인덱싱과 슬라이싱 가능
  • 수학 연산 가능
  • 서로 변환 가능
# NumPy → Tensor
torch_tensor = torch.from_numpy(a)

# Tensor → NumPy
numpy_array = x.numpy()

 


✔ 핵심 차이점

구분 PyTorch Tensor NumPy Array
GPU 사용 가능 (CUDA) 불가능
자동 미분 지원 미지원
딥러닝 연산 최적화됨 제한적
주 용도 딥러닝 수치 계산, 데이터 처리
연산 속도 GPU 사용 시 매우 빠름 CPU 기반

 


✔ 자동 미분(Autograd) 지원 여부

PyTorch 텐서는 requires_grad=True 옵션을 통해 자동으로 미분값을 계산할 수 있습니다.

x = torch.tensor(2.0, requires_grad=True)
y = x ** 2
y.backward()

print(x.grad)  # 4
 
NumPy는 이러한 기능이 없기 때문에, 딥러닝 학습에는 적합하지 않습니다.

 


✔ GPU 사용 여부

x = torch.tensor([1,2,3]).cuda()

 

GPU 연산이 가능하다는 점은 딥러닝 학습 속도에 매우 큰 차이를 만듭니다.
NumPy는 CPU 연산만 지원합니다.

 


✔ 언제 무엇을 사용하면 좋을까?

NumPy 사용

  • 데이터 전처리
  • 통계 계산
  • 간단한 수치 연산

PyTorch Tensor 사용

  • 딥러닝 모델 학습
  • 역전파 필요할 때
  • GPU 가속이 필요한 경우

 


 정리

  • 형태는 비슷하지만 목적이 다르다
  • NumPy → 일반 수치 연산용
  • PyTorch Tensor → 딥러닝 학습용

즉, 딥러닝을 한다면 반드시 Tensor를 사용해야 합니다.

반응형

관련글 더보기