사용안내 및 노트

홈으로/사용안내 및 노트
제목013. TensorFlow 소개2020-08-30 21:20:48
작성자

☐ TensorFlow 소개

 ○ ML 모델 구축에 사용되는 구글의 전산 프레임워크 (라이브러리)

  - higher-level API (tf.estimator 등) : linear regressions, neural networks 등 미리 정의되어 있는 아키텍처 사용

  - lower-level API : 일련의 수학적 연산을 정의하는 방식으로 모델 생성

 ○ 계층 구조 및 용도

TensorFlow Estimators

High-level, object-oriented API

tf.layers, tf.losses, tf.metrics

Reusable libraries for common model components

Python TensorFlow

Provides Ops (operations), which wrap C++ Kernels

C++ TensorFlow

CPU

GPU

TPU

Kernels work on one or more platforms

 ○ TensorFlow vs Python components 비교

TensorFlow components

Python components

Graph Protocol Buffer

Code

Runtime

Interpreter

  - Runtime과 Interpreter는 TensorFlow와 Python이 여러 종류의 하드웨어 플랫폼에서 작동할 수 있도록 한다.

 ○ API

  - Use the highest level of abstraction!

   · 높은 수준의 API는 사용하기 쉽지만 유연성이 부족하다.

   · 우선은 높은 수준의 API를 이용해서 문제를 해결하도록 시도하고 이후 추가적인 유연성(flexibility)이 요구된다면 그 시점에서 낮은 수준의 API 사용을 고려한다.

 ○ tf.estimator API

  - higher-level API의 대표적인 예

  - 복잡한 딥러닝 모델을 쉽게 작성할 수 있도록 해주는 라이브러리

  - tf.estimator 사용 시 코드 라인 수를 크게 줄일 수 있다.

  - 파이썬의 scikit-learn API와 호환

  - tf.estimator API를 이용한 코딩 예시

import tensorflow as tf

# Set up a linear classifier.

classifier = tf.estimator.LinearClassifier(feature_columns)

# Train the model on some example data.

classifier.train(input_fn=train_input_fn, steps=2000)

# Use it to predict.

predictions = classifier.predict(input_fn=predict_input_fn)

  - model function

   · ML이나 DL 알고리즘이 수행되는 함수

  - estimator 종류

   · pre-made: 미리 구현되어 있는 클래스로 LinearClassifier, LinearRegressor, DNN 관련 model function 등이 있다.

   · custom: 아직 estimator에 구현되어 있지 않은 CNN, RNN 같은 것으로 사용자가 직접 model function을 만들어야 한다.

원본 그림의 크기: 가로 698pixel, 세로 223pixel
 사진 찍은 날짜: 2018년 09월 29일 오후 11:31

  - input function

   · estimator에 train(학습), evaluate(검증), predict(예측)를 위한 데이터 제공