티스토리 뷰

텐서란 무엇인가?

- 텐서는 머신러닝의 기본 구성 요소로 구글의 텐서플로도 텐서에서 파생됐습니다.

- 텐서는 데이터를 위한 컨테이너입니다. 거의 항상 수치형 데이터를 다루므로 숫자를 위한 컨테이너입니다.

 

스칼라 (0D 텐서)

- 하나의 숫자만 담고 있는 텐서를 스칼라라고 부릅니다.

- numpy에서는 float32나 float64 타입의 숫자가 스칼라 텐서입니다.

- 텐서의 축 개수를 랭크라고 부르는데, 스칼라의 텐서의 축 개수는 0개입니다. (ndim = 0)

 

벡터 (1D 텐서)

- 숫자의 배열을 벡터 또는 1D 텐서라고 부릅니다.

- 하나의 축을 가지고 있음

 

행렬 (2D 텐서)

- 벡터의 배열이 행렬 또는 2D 텐서입니다.

- 첫번쨰 축에 놓여 있는 원소를 행이라 부르고, 두 번째 축에 놓여 있는 원소를 열이라 부릅니다.

 

3D 텐서와 고차원 텐서

-  행렬들을 새로운 배열로 합치면 숫자가 채워진 직육면체 형태로 해석할 수 있는 3D 텐서가 만들어집니다.

 

 

텐서는 3개의 핵심 속성으로 정의된다.

- 축의 개수(rank): 3D tensor는 3개의 축이 있고, 행렬에는 2개의 축이 있습니다.

- 크기(shape): 텐서의 각 축을 얼마나 많은 차원이 있는지를 나타낸 파이썬의 튜플입니다. 예를 들어, 앞에 나온 행렬의 크기는 (3,5)이고 3D 텐서의 크기는 (3,3,5)입니다. 벡터의 크기는 (5, )처럼 1개의 원소로 이루어진 튜플입니다. 배열 스칼라는 ()처럼 크기가 없습니다.