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

PyTorch에서 텐서는 이러한 데이터를 저장할 뿐만 아니라, GPU 가속과 자동 미분이라는 핵심 기능을 수행하는 기본 단위가 됩니다.
두 구조는 사용법이 거의 90% 이상 일치할 정도로 비슷하지만, 결정적인 차이점 3가지가 있습니다.
① GPU 가속 (Hardware Acceleration)
② 자동 미분 (Autograd)
requires_grad=True 설정만 하면, 텐서에서 일어나는 모든 연산을 추적하여 역전파(Backpropagation) 시 미분 값을 자동으로 계산해 줍니다. 딥러닝 모델 학습의 핵심 기능입니다.③ 상호 변환 (Interoperability)
두 라이브러리는 서로 매우 친합니다. 데이터를 주고받는 것이 매우 자유로우며, 특히 CPU 상의 텐서는 NumPy 배열과 메모리를 공유하기 때문에 변환 시 별도의 복사 비용이 들지 않습니다.
| 특징 | NumPy 배열 (Array) | PyTorch 텐서 (Tensor) |
|---|---|---|
| 주요 장치 | CPU | CPU, GPU, TPU |
| 자동 미분 | 지원 X | 강력하게 지원 (Autograd) |
| 용도 | 일반 수치 계산, 데이터 분석 | 딥러닝 모델 구현 및 학습 |
가장 핵심적인 차이는 자동 미분 (Autograd)입니다. 이것이 텐서를 단순 배열이 아니라 딥러닝 도구로 만드는 핵심 기능입니다.
한 문장으로 요약하면:
NumPy 배열은 수치 계산 도구이고, PyTorch 텐서는 거기에 GPU 가속과 자동 미분을 얹은 딥러닝 전용 도구입니다.