본문 바로가기
Deep Learning/Hands On Machine Learning

12.1 텐서플로 훑어보기

by 대소기 2021. 9. 29.

Tensorflow 가 제공하는 것

  • 핵심 구조는 numpy와 비슷하지만 GPU를 지원한다는 점에서 다르다.
  • (여러 장치와 서버에 대해) 분산 컴퓨팅을 지원한다.
  • 코드 실행 전에 컴파일을 하는 전통 컴파일러와는 달리 Tensorflow는 JIT(Just In Time) 컴파일러를 포함한다. 계산그래프(Computation Graph)를 추출해 사용하지 않는 node를 가지치기 하고, 독립적인 연산을 자동 병렬 시행함으로서 계산 최적화를 시행한다. 이를 통해 속도는 올라가고 메모리 사용량은 줄어든다.
  • 계산 그래프는 플랫폼에 중립적인 포맷으로 내보낼 수 있다. 때문에 리눅스에 있는 파이썬 환경에서 개발을 해서 안드로이드 기기의 자바에서 실행 하는것이 가능하다.
  • 자동미분, 고성능 옵티마이저를 제공한다.

Tensorflow 파이썬 API

  • 가장 저수준의 tensorflow operation들은 C++코드로 작성되었고 사용시 tensor를 직접 다룰 수 있다.
  • 고수준의 API인 keras를 주로 사용하게 되지만, 더 높은 자유도를 위해 저수준 API를 사용하기도 한다.
  • GPU는 계산을 작은 단위로 나누어 여러 GPU 스레드에서 병렬로 실행하기 때문에 속도가 빠르다.
  • TPU는 딥러닝 연산을 위해 특별하게 설계된 ASIC chip이다. GPU보다 속도가 빠르다.
  • Tensorflow는 Windows, Linux, Mac, iOS, Android 등의 운영체제에서 실행이 가능하다.
  • Tensorlfow는 파이썬 API외에도 C++, JAVA, Go, Swift, JavaScript 등에도 API를 제공한다.

Tensorflow 라이브러리 생태계

  • Tensorboard : loss, model structure 등을 시각화하는 tool
  • TFX(Tensorflow Extended) : 구글에서 만든 tensorflow 제품화 라이브러리
  • TensorFlow Hub : 사전훈련된 신경망을 제공
  • Tensorflow model 저장소(http://github.com/tensorflow/models) : 많은 신경망 구조를 다운로드 가능함.
    등등