머신러닝 개발자들이 많이 사용하는 Tensorflow에 대해서 간단하게 알아보겠습니다. 요즘에는 텐서플로우외에도 케라스나 파이토치등 다양하지만 저는 아직 텐서플로우가 편해서 텐서플로우를 쓰고 있습니다. 맨 처음 머신러닝을 접할 때, 텐서플로우로 접했기 때문인거 같습니다.
같이 공부했던 사람들 중 케라스나 파이토치로 시작한 사람들이 꽤 있었는데 케라스나 파이토치로 시작한 사람들은 텐서플로우가 조금 더 어렵다고 하더라구요. 그래서 커뮤니티 사이에서 가끔 텐서플로우로 먼저 시작하라는 글이 보이기도 하더라구요.
이 글 쓴 시점에서는 현재 텐서플로우는 2.0이 나와 있는 상황입니다. 2.0버전이랑 1.x 버전이랑은 문법 차이가 꽤 나기도 하고, 성능 차이도 있다고 합니다. 지금은 1.x 버전에 관하여 포스팅 하고는 있지만 조만간 2.0에 대해서도 포스팅을 해야겠네요.
Tensorflow
텐서플로우는 딥러닝을 위해 구글에서 만든 오픈소스 라이브러리입니다. 간단하게 Tensorflow의 특징을 살펴보면 2가지 정도 있다고 보면 됩니다.
- Tensorflow 특징
1) 데이터 플로우 그래프를 통한 풍부한 표현력

데이터 플로우 그래프(Data Flow Graph)방식을 사용하며, 그래프를 시작하기 위해서 텐서보드라는 것을 사용할 수 있습니다.
2) 코드 수정 없이 CPU/GPU 모드 동작
특별한 코드 수정 없이 CPU나 GPU를 사용하여 학습을 시킬 수 있습니다.
Tensorflow 용어
사실 특별히 용어라고 할 것까지는 없지만 한번 정리를 해보자면, 아래와 같은 용어가 있습니다.
- 오퍼레이션 (Operation) : 그래프 상의 노드는 오퍼레이션(OP)로 불린다. 오퍼레이션은 하나 이상의 텐서를 받을 수 있으며, 계산을 수행하고, 결과를 하나 이상의 텐서로 반환할 수 있다.
- 텐서 (Tensor) : 내부적으로 모든 데이터는 텐서를 통해 표현된다. 텐서는 일종의 다차원 배열인데, 그래프 내의 오퍼레이션 간에 텐서가 전달된다.
- 세션 (Session) : 그래프를 실행하기 위해서는 세션 객체가 필요하다. 세션은 오퍼레이션의 실행 환경을 캡슐화 한것이다.
- 변수 (Variables) : 그래프 실행 시 파라미터를 저장하고 갱신하는데 사용한다. 메모리상에서 텐서를 저장하는 버퍼 역할을 한다.
Tensorflow 설치
Tensorflow 설치는 간단하며, 아래와 같다.
- Anaconda 환경 :pip install tensorflow
- 파이참 환경 : file → setting → project interpreter