TensorFlow 데이터 표현
텐서(Tensor)의 수학적 정의
여러 벡터 공간 및 그 쌍대 공간들을 일종의 ‘곱연산’을 사용해 복합적으로 연결시킨 구조.[1]
머신러닝에서의 텐서(Tensor)
-
데이터를 저장하는 다차원 배열(Numpy 배열)
-
텐서의 축 개수(N차원)를 랭크(rank)라고 부른다.
-
텐서는 float32, uint8, float64, char(가끔)이 될 수 있는데, 가변 길이의 문자열은 지원하지 않는다.
각 차원에 따라
- 0차원 텐서, 스칼라
- 1차원 텐서, 백터
- 2차원 텐서, 행렬
- 3차원 텐서, 4차원 텐서
- 5차원 텐서 (동영상 데이터를 다룰 때만 쓰이고 잘 안쓰임)
0차원 텐서, 스칼라
하나의 숫자만을 가지고 있는 텐서를 스칼라라고 한다.
스칼라는 0 rank이다.
1차원 텐서, 벡터
숫자의 배열을 벡터라고 부른다.
벡터는 1 rank이다.
2차원 텐서, 행렬
벡터의 배열을 행렬이라고 부른다.
행렬은 2 rank이다.
3차원 텐서, 4차원 텐서, 5차원 텐서 … N차원 텐서
N-1차원 텐서를 이어 부치면 N차원 텐서가 된다.
딥러닝에서는 주로 0 ~ 4차원 텐서까지 사용되지만 동영상을 다룰 때 5차원 텐서가 사용 되기도 한다.
참고문헌
1) 텐서, 나무위키, 2022-01-24 방문, https://namu.wiki/w/텐서
2) 프랑소와 숄레 (Francois Chollet), 케라스 창시자에게 배우는 딥러닝, 박해선, 오라일리, (주)도서출판 길벗(2021년 초판 8쇄 발행), 61p
3) 텐서 플로우 블로그, 박해선, https://tensorflow.blog/케라스-딥러닝/2-2-신경망을-위한-데이터-표현/
4) 텐서플로우(TensorFlow) 텐서 기본 개념 - Tensor란 무엇인가? (Rank, Shapes, Types), 테크 스케치, 이즈군(complusblog), 2018-03-27 작성, 2022-01-24 방문, https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=complusblog&logNo=221237818389
5) 텐서와 상대론 (Tensor and Relativity) - 0. 텐서 (Tensor) 란?, kipid’s blog, 2019-02-19 작성, 2022-01-24 방문, https://kipid.tistory.com/entry/Tensor