기본 정의 :
- PyTorch에서 텐서(Tensor)는 다차원 배열로 수학적으로는 벡터(1차원), 행렬(2차원) 등 모든 차원의 데이터를 포괄하는 데이터 구조. Tensor는 PyTorch에서 딥러닝 모델의 입력, 출력, 가중치 등 모든 데이터를 표현하는 기본 단위.
- NumPy의 배열(Array) 역시 다차원 수치 데이터를 저장하고 연산하는데 사용되는 자료구조로 Tensor와 구조적으로 매우 흡사. 실제로 PyTorch Tensor와 NumPy Array는 생성, 인덱싱, 슬라이싱, 기본 연산 등 대부분의 사용법이 거의 흡사함.
차이점 :
- 자동 미분 지원 - PyTorch Tensor는 Deeplearning 학습에 필수적인 자동 미분(Autograd) 기능을 내장함. Tensor에 requires_grad=True 옵션을 주면 연산 기록을 자동으로 추적하여 역전파 시 기울기(gradient)를 자동으로 계산할 수 있음.
- GPU 가속 - PyTorch Tensor는 CPU뿐 아니라 GPU(CUDA)에서도 연산이 가능함. 대규모 행렬 연산이나 Deeplearning 학습 시 GPU 가속을 쉽게 활용할 수 있음. NumPy Array는 기본적으로 CPU에서만 동작.
- Memory 공유 및 변환 - PyTorch Tensor와 NumPy Array는 서로 쉽게 변환됨. torch.from_numpy()로 NumPy Array를 Tensor로 변환하면 memory를 공유하며, torch.tensor()로 변환하면 별도의 복사본이 생성되어 메모리를 공유하지 않음. Tensor의 .numpy() 매서드는 memory를 공유하는 Numpy Array를 반환.
- Framework 통합성 - PyTorch의 Deeplearning 기능(모델, 옵티마이저, 손실함수 등)은 Tensor 자료형을 기본적으로 사용. PyTorch로 Deeplearning을 구현할 때는 반드시 Tensor를 사용해야 하며 NumPy Array는 직접적으로 사용할 수 없음.
*아래 그래프는 AI로 그려본 Tensor와 Array의 퍼포먼스를 비교한 그래프

'컴퓨터' 카테고리의 다른 글
| 오토 인코더가 적용되기 적합한 상황에 대해 설명하고, 오토 인코더를 구성하는 인코더(Encoder)와 디코더(Decoder) 각각의 개념과 차이점에 대해 설명 (1) | 2025.06.20 |
|---|---|
| CNN을 구성하는 각 레이어(layer)의 역할에 대해 설명 (0) | 2025.06.19 |
| 딥러닝 프레임워크인 PyTorch와 TensorFlow를 비교 (1) | 2025.06.15 |
| 딥러닝의 성능향상을 위해 고려하는 하이퍼파라미터의 종류에는 어떤 것들이 있는지 설명 (0) | 2025.06.08 |
| 딥러닝과 머신러닝 간의 포함관계에 대해 설명 (0) | 2025.06.08 |