Path: blob/master/site/ko/guide/migrate/migrating_estimator.ipynb
25118 views
Copyright 2021 The TensorFlow Authors.
Estimator에서 Keras API로 마이그레이션하기
이 가이드는 TensorFlow 1의 tf.estimator.Estimator
API에서 TensorFlow 2의 tf.keras
API로 마이그레이션하는 방법을 보여줍니다. 먼저 tf.estimator.Estimator
를 사용하여 훈련 및 평가용 기본 모델을 설정하고 실행합니다. 그런 다음 tf.keras
API를 사용하여 TensorFlow 2에서 동일한 단계를 수행합니다. 또한 tf.keras.Model
을 하위 클래스화하고 tf.GradientTape
를 사용하여 훈련 단계를 사용자 정의하는 방법을 배우게 됩니다.
TensorFlow 1에서 고수준
tf.estimator.Estimator
API를 사용하면 모델을 훈련 및 평가하고 추론을 수행하고 모델을 저장할 수 있습니다(서비스 제공용).TensorFlow 2에서 Keras API를 사용하여 앞서 언급한 모델 구축하기, 그래디언트 적용하기, 훈련하기, 평가하기, 예측하기와 같은 작업을 수행합니다.
(모델/체크포인트 저장 워크플로를 TensorFlow 2로 마이그레이션하려면 SavedModel 및 체크포인트 마이그레이션 가이드를 확인하세요.)
설치하기
먼저 가져오기 및 간단한 데이터세트로 시작합니다.
TensorFlow 1: tf.estimator.Estimator로 훈련 및 평가하기
이 예제는 TensorFlow 1에서 tf.estimator.Estimator
로 훈련과 평가를 수행하는 방법을 보여줍니다.
먼저 훈련 데이터용 입력 함수, 평가 데이터용 평가 입력 함수, 훈련 연산이 특성 및 레이블로 정의되는 방식을 Estimator
에 알려주는 모델 함수 등 몇 가지 함수를 정의하는 것으로 시작합니다.
Estimator
를 인스턴스화하고 모델을 훈련합니다.
평가 세트로 프로그램을 평가합니다.
TensorFlow 2: 내장 Keras 메서드로 훈련 및 평가하기
이 예제는 TensorFlow 2에서 Keras Model.fit
과 Model.evaluate
로 훈련과 평가를 수행하는 방법을 보여줍니다(자세한 내용은 내장 메서드를 사용하여 훈련 및 평가하기 가이드 참조).
먼저
tf.data.Dataset
API로 데이터세트 파이프라인을 준비합니다.하나의 선형(
tf.keras.layers.Dense
) 레이어로 간단한 Keras 순차형 모델을 정의합니다.Adagrad 옵티마이저(
tf.keras.optimizers.Adagrad
)를 인스턴스화합니다optimizer
변수와 평균 제곱 오차("mse"
) 손실을Model.compile
에 전달하여 훈련용 모델을 구성합니다.
이제 Model.fit
을 호출하여 모델을 훈련할 준비가 된 것입니다.
마지막으로 Model.evaluate
를 사용하여 모델을 평가합니다.
TensorFlow 2: 사용자 정의 훈련 단계 및 내장 Keras 메서드로 훈련 및 평가하기
TensorFlow 2에서는 tf.GradientTape
를 사용하여 고유한 사용자 정의 훈련 단계 함수를 작성하여 순방향 및 역방향 전달을 수행하고 tf.keras.callbacks.Callback
과 tf.distribute.Strategy
와 같은 내장 훈련 지원을 계속 활용할 수 있습니다(자세한 내용은 Model.fit에서 발생하는 사용자 정의 설정 및 처음부터 사용자 정의 훈련 루프 작성하기 참조).
이 예제에서는 Model.train_step
을 재정의하는 tf.keras.Sequential
을 하위 클래스화하여 사용자 정의 tf.keras.Model
을 생성하는 것으로 시작합니다(자세한 내용은 tf.keras.Model 하위 클래스화하기 참조). 해당 클래스에서 각 데이터 배치에 대해 하나의 훈련 단계 동안 순방향 전달 및 역방향 전달을 수행하는 사용자 정의 train_step
함수를 정의합니다.
다음에서는 이전과 같은 작업을 수행합니다.
tf.data.Dataset
를 사용하여 데이터세트 파이프라인을 준비합니다.하나의
tf.keras.layers.Dense
레이어로 간단한 모델을 정의합니다.Adagrad 인스턴스화(
tf.keras.optimizers.Adagrad
)를 수행합니다.평균 제곱 오차(
"mse"
)를 손실 함수로 사용하는 한편Model.compile
을 사용하여 훈련용 모델을 구성합니다.
Model.fit
을 호출하여 모델을 훈련합니다.
마지막으로 Model.evaluate
를 사용하여 프로그램을 평가합니다.
다음 단계
유용할 수 있는 추가 Keras 리소스:
가이드: 훈련 루프 처음부터 작성하기
다음 가이드는 tf.estimator
API에서 분산 전략 워크플로를 마이그레이션하는 데 도움이 될 수 있습니다.