(CNN) Pytorch의 Tensor 소개
파이토치 텐서의 개념부터 NumPy와의 차이점까지
파이토치 텐서란?
파이토치 텐서(Tensor)는 파이토치에서 사용하는 핵심 데이터 구조다. 간단히 말하면 딥러닝 프레임워크에서 NumPy 배열처럼 데이터를 처리하기 위한 자료구조라고 보면 된다. 텐서는 NumPy의 배열과 굉장히 비슷한 구조와 기능을 가지고 있어서, NumPy를 사용해본 사람이라면 쉽게 적응할 수 있다.
특히, 텐서는 딥러닝에서 필요한 다양한 연산을 수행하기 위해 특별히 설계된 자료구조다.
NumPy 배열과 텐서의 차이
NumPy 배열과 텐서는 매우 비슷하지만 중요한 차이가 있다.
먼저 실행 환경이 다르다. NumPy 배열은 주로 CPU에서만 실행되는 반면, 텐서는 GPU에서도 실행된다. GPU를 사용하면 병렬 처리가 가능해서 빠른 연산이 가능하다.
또 하나는 딥러닝 전용 기능이다. 텐서는 자동 미분(Automatic Differentiation)을 제공해서, 딥러닝 모델 학습 과정에서 역전파(backpropagation)와 같은 복잡한 계산을 쉽게 처리할 수 있다.
텐서의 차원 개념
텐서의 차원은 데이터의 구조를 나타낸다. 0차원은 값 하나만 가지는 가장 단순한 형태인 스칼라이고, 1차원은 값 여러 개가 직선 형태로 나열된 벡터다. 2차원은 벡터가 여러 개 모여 행과 열을 이루는 행렬(Matrix)이고, 3차원 이상은 2차원 행렬들이 여러 층으로 쌓여 입체 구조를 이루는 형태다.
간단히 말해, 텐서는 3차원 이상의 데이터를 통칭하는 용어로 자주 사용되지만, 파이토치에서는 1차원, 2차원 데이터도 모두 텐서로 표현한다.
텐서의 주요 특징
정리하면 텐서의 핵심은 두 가지다. 하나는 GPU를 활용한 병렬 연산으로, 대량의 데이터와 복잡한 연산이 필수인 딥러닝 모델을 학습할 때 매우 효율적이다. 다른 하나는 자동 미분으로, 모델을 학습시킬 때 필수적인 역전파를 위한 미분 계산을 텐서 수준에서 지원한다.