위클리 페이퍼 #5-2 파이토치의 텐서와 넘파이의 배열 (PyTorch Tensor vs. NumPy Array)

문학소년·2026년 3월 19일

위클리 페이퍼

목록 보기
14/24

🇶 PyTorch에서 텐서란 무엇이고, NumPy의 Array(배열)과 어떤 차이가 있나요?

PyTorch에서 가장 먼저 마주치게 되는 개념이 바로 텐서 (Tensor)인데요, 쉽게 설명하자면 텐서는 데이터를 담는 다차원 배열이라고 이해하시면 됩니다. NumPy의 배열 (Array)와 매우 유사하지만, 딥러닝 프레임워크인 PyTorch만의 강력한 무기들이 있습니다.

1. 텐서(Tensor)란 무엇인가?

수학적 관점에서 텐서는 데이터의 차원에 따라 다음과 같이 불립니다:

  • 0차원: 스칼라 (Scalar) - 단일 숫자
  • 1차원: 벡터 (Vector) - 숫자의 나열
  • 2차원: 행렬 (Matrix) - 가로와 세로가 있는 표 형태
  • 3차원 이상: 텐서 (Tensor) - 입체적인 데이터 구조

PyTorch에서 텐서는 이러한 데이터를 저장할 뿐만 아니라, GPU 가속과 자동 미분이라는 핵심 기능을 수행하는 기본 단위가 됩니다.

2. NumPy 배열 (Array) vs. PyTorch 텐서 (Tensor)

두 구조는 사용법이 거의 90% 이상 일치할 정도로 비슷하지만, 결정적인 차이점 3가지가 있습니다.

① GPU 가속 (Hardware Acceleration)

  • NumPy: 기본적으로 CPU에서만 동작합니다. 대규모 연산이 필요한 딥러닝에서는 속도의 한계가 있습니다.
  • PyTorch: 텐서를 아주 간단하게 GPU (cuda)나 Apple Silicon GPU (mps)로 옮겨서 연산할 수 있습니다. 수만 개의 파라미터를 계산할 때 CPU보다 수십 배 이상 빠릅니다.

② 자동 미분 (Autograd)

  • NumPy: 미분 값을 구하려면 직접 수학 공식을 코드로 구현해야 합니다.
  • PyTorch: NumPy 배열과의 가장 핵심적인 차이는 자동 미분 (Autograd)입니다. requires_grad=True 설정만 하면, 텐서에서 일어나는 모든 연산을 추적하여 역전파(Backpropagation) 시 미분 값을 자동으로 계산해 줍니다. 딥러닝 모델 학습의 핵심 기능입니다.

③ 상호 변환 (Interoperability)
두 라이브러리는 서로 매우 친합니다. 데이터를 주고받는 것이 매우 자유로우며, 특히 CPU 상의 텐서는 NumPy 배열과 메모리를 공유하기 때문에 변환 시 별도의 복사 비용이 들지 않습니다.

📊 핵심 비교

특징NumPy 배열 (Array)PyTorch 텐서 (Tensor)
주요 장치CPUCPU, GPU, TPU
자동 미분지원 X강력하게 지원 (Autograd)
용도일반 수치 계산, 데이터 분석딥러닝 모델 구현 및 학습

가장 핵심적인 차이는 자동 미분 (Autograd)입니다. 이것이 텐서를 단순 배열이 아니라 딥러닝 도구로 만드는 핵심 기능입니다.

한 문장으로 요약하면:
NumPy 배열은 수치 계산 도구이고, PyTorch 텐서는 거기에 GPU 가속과 자동 미분을 얹은 딥러닝 전용 도구입니다.

0개의 댓글