n 차원 array, 거기에 두 가지 super power
deep learning 의 신비주의를 벗기면 tensor 는 그냥 n 차원 array — NumPy ndarray 와 같은 개념이야. PyTorch tensor 가 NumPy 와 다른 두 가지:
- Device 투명성. 같은 코드가 인자 하나만 바꾸면 CPU, NVIDIA GPU (CUDA), Apple Silicon GPU (MPS) 위에서 다 돌아.
- Autograd. 모든 op 가 graph 에 자기를 기록할 수 있어서 PyTorch 가 나중에 reverse 로 재생해서 gradient 를 계산해.
차원 사다리는 이렇게 읽혀:
- 0D — scalar: 숫자 하나 —
torch.tensor(3.14) - 1D — vector: 숫자 한 줄 —
torch.tensor([1, 2, 3]) - 2D — matrix: 표 — 행 × 열
- 3D: matrix 의 batch — sequence 에 흔함
(batch, seq_len, features) - 4D: image batch — PyTorch 의 NCHW convention 에서
(batch, channels, height, width)
방 안의 수학자는 'tensor' 가 covariance / contravariance 를 포함한 더 엄격한 의미라고 항의할 거야. deep learning 에선 이 단어를 비공식적으로 다시 빌려서 'autograd 가 붙은 n-dim array' 의 의미로 써. framework, docs, 모든 paper 가 그 의미야. 싸우지 마.
한 가지 부드러운 경고: shape 는 PyTorch 에서 가장 유용한 디버깅 도구야. 뭔가 깨지면 첫 동작은 항상 print(x.shape). 이 습관을 일찍 박아두자.