다음 그림은 텐서플로우 도구함의 현재 계층구조를 보여 줍니다.
그림 1. 텐서플로우 도구함 계층구조
다음 표에는 여러 레이어의 목적이 요약되어 있습니다.
도구함설명
에스티메이터(tf.estimator) | 높은 수준의 OOP API |
tf.layers/tf.losses/tf.metrics | 일반 모델 구성요소용 라이브러리 |
텐서플로우 | 낮은 수준의 API |
텐서플로우는 다음 두 요소로 구성됩니다.
- 그래프 프로토콜 버퍼
- 분산된 그래프를 실행하는 런타임
이 두 구성요소는 자바 컴파일러 및 JVM과 유사합니다. JVM이 여러 하드웨어 플랫폼에서 구현되는 것과 마찬가지로 텐서플로우도 여러 CPU와 GPU에서 구현됩니다.
어느 API를 사용해야 하나요? 문제를 해결하는 최고 수준의 추상화를 사용해야 합니다. 추상화 수준이 높을수록 더 사용하기 쉽지만 (설계상) 유연성이 떨어집니다. 먼저 최고 수준의 API로 시작하여 모든 작업을 실행하는 것이 좋습니다. 특별한 모델링 문제를 해결하기 위해 더 유연한 추상화가 필요하면 한 수준 아래로 이동합니다. 각 수준은 낮은 수준의 API를 사용하여 제작되므로 계층구조를 낮추는 것이 합리적입니다.
tf.estimator API
머신러닝 단기집중과정 내 대부분의 실습에서 tf.estimator를 사용합니다. 낮은 수준의(원시) 텐서플로우를 사용해도 실습의 모든 작업을 실행할 수 있지만 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)
머신러닝 단기집중과정 실습에서 자주 사용되는 초매개변수
많은 코딩 실습에 다음과 같은 초매개변수가 포함됩니다.
steps: 총 학습 반복 횟수입니다. 한 단계에서 한 배치의 손실을 계산한 후, 이 값을 사용하여 모델의 가중치를 한 번 수정합니다.
batch size: 하나의 단계와 관련된 예시의 수(임의로 선택됨)입니다. 예를 들어 SGD의 batch size는 1입니다.
다음 수식이 적용됩니다.
머신러닝 단기집중과정 실습에서 사용되는 편의 변수
여러 실습에 다음과 같은 편의 변수가 포함됩니다.
periods: 보고의 세부사항을 제어합니다. 예를 들어 periods가 7로 설정되고 steps가 70으로 설정되면 실습에서 10단계마다(또는 7번) 손실 값을 출력합니다. 초매개변수와 달리 periods의 값을 수정하지 않아도 됩니다. periods를 수정해도 모델이 학습하는 내용은 변경되지 않습니다.
다음 수식이 적용됩니다.
'DATA Science > Google Machine Learning' 카테고리의 다른 글
Tensorflow 실습 첫번째 (0) | 2021.07.25 |
---|---|
Pandas 실습 (0) | 2021.07.25 |
경사하강법 (0) | 2021.07.25 |
학습 및 손실 (0) | 2021.07.25 |
선형회귀 (0) | 2021.07.25 |
댓글