다음 그림은 TensorFlow Tool의 현재 계층 구조를 보여준다.
다음 표에는 여러 레이어의 목적이 요약되어 있다.
도구함 | 설명 |
---|---|
tf.estimator | 높은 수준의 OOP API |
tf.layers/ tf.losses/ tf.metrics | 일반 모델 구성요소용 라이브러리 |
텐서플로우 | 낮은 수준의 API |
텐서 플로우는 다음 두 요소로 구성된다.
이 두 구성요소는 자바 컴파일러 및 JVM과 유사하며, JVM이 여러 하드웨어 플랫폼에서 구현되는 것과 마찬가지로 텐서플로우도 여러 CPU와 GPU에서 구현된다.
낮은 수준의(원시) 텐서플로우를 사용해도 실습의 모든 작업을 실행할 수 있지만 tf.estimator를 사용하면 코드 행 수가 크게 줄어들게 된다.
tf.estimator는 scikit-learn API와 호환된다. scikit-learn은 Python의 매우 인기 있는 오픈소스 ML 라이브러리로, Google 직원을 비롯하여 100,000명이 넘는 사람들이 이용하고 있다.
tf.estimator로 구현된 선형 회귀 프로그램의 형식은 대체로 다음과 같다.
import tensorflow as tf
# Set up a linear classifier.
classifier = tf.estimator.LinearClassifier()
# 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)
(1) Steps : 총 학습 반복 횟수이다. 한 단계에서 한 배치의 손실을 계산한 후 이 값을 사용하여 모델의 가중치를 한 번 더 수정한다.
(2) Batch size : 하나의 단계와 관련된 예시의 수이다. SGD의 Batch size는 1이다.
(3) Periods : 보고의 세부사항을 제어한다. periods가 7로 설정되고 steps가 70으로 설정되면, 실습에서 10단계마다 7번 손실 값을 출력한다. 초매개변수와는 달리 periods의 값은 수정하지 않아도 되며 수정하더라도 모델이 학습하는 내용은 변경되지 않는다.
.
.
.
강의 링크 : 구글 머신러닝 단기집중과정