2.1 텐서플로 개요
텐서플로(TensorFlow)는 데이터 흐름 그래프(data flow graph)를 사용하여 데이터의 수치 연산을 하는 오픈 소스 소프트웨어 프레임워크입니다. 혹은 넘파이(NumPy) 같은 다양한 라이브러리를 묶어 놓은 패키지라고도 할 수 있습니다. 텐서플로는 머신 러닝과 딥뉴럴 네트워크 연구를 목적으로 구글 인공지능 연구 조직인 구글 브레인 팀의 연구자와 엔지니어들이 개발했습니다.
다음 그림은 텐서플로에서 데이터의 수치 연산을 수행하기 위한 그래프입니다. 그림과 같이 그래프의 노드(node)는 수학적 연산을 처리하고, 에지(edge)는 노드 사이의 관계를 표현하며, 데이터(텐서(tensor)) 이동을 수행합니다.
▲ 그림 2-1 데이터 흐름 그래프
Note ≡ 벡터, 행렬, 텐서
인공지능(머신 러닝/딥러닝)에서 데이터는 벡터(vector)로 표현됩니다. 벡터는 [1.0, 1.1, 1.2]처럼 숫자들의 리스트로, 1차원 배열 형태입니다. 행렬(matrix)은 행과 열로 표현되는 2차원 배열 형태입니다. 이때 가로줄을 행(row)이라고 하며, 세로줄을 열(column)이라고 합니다. 마지막으로 텐서는 3차원 이상의 배열 형태입니다.
▼ 표 2-1 지도 학습, 비지도 학습, 강화 학습
벡터 |
행렬 |
텐서 |
자세한 내용은 선형대수학 도서를 참고하기 바랍니다.