[구글 머신러닝 단기집중과정] 4강

환공지능·2021년 7월 2일
0
post-thumbnail

1. 텐서플로우 도구

다음 그림은 TensorFlow Tool의 현재 계층 구조를 보여준다.

다음 표에는 여러 레이어의 목적이 요약되어 있다.

도구함설명
tf.estimator높은 수준의 OOP API
tf.layers/ tf.losses/ tf.metrics일반 모델 구성요소용 라이브러리
텐서플로우낮은 수준의 API

텐서 플로우는 다음 두 요소로 구성된다.

  • 그래프 프로토콜 버퍼
  • 분산된 그래프를 실행하는 런타임

이 두 구성요소는 자바 컴파일러 및 JVM과 유사하며, JVM이 여러 하드웨어 플랫폼에서 구현되는 것과 마찬가지로 텐서플로우도 여러 CPU와 GPU에서 구현된다.

2. tf.estimator API

낮은 수준의(원시) 텐서플로우를 사용해도 실습의 모든 작업을 실행할 수 있지만 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이다.

Totalnumberoftrainedexamples=batchsizestepsTotal number of trained examples = batchsize * steps

(3) Periods : 보고의 세부사항을 제어한다. periods가 7로 설정되고 steps가 70으로 설정되면, 실습에서 10단계마다 7번 손실 값을 출력한다. 초매개변수와는 달리 periods의 값은 수정하지 않아도 되며 수정하더라도 모델이 학습하는 내용은 변경되지 않는다.

Numberoftrainingexamplesineachperoid=batchsizestepsperiodsNumber of training examples in each peroid = \frac{batchsize * steps}{periods}

.
.
.
강의 링크 : 구글 머신러닝 단기집중과정

profile
데이터사이언티스트 대학원생

0개의 댓글