Path: blob/master/site/ko/guide/migrate/migrating_estimator.ipynb
38968 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.EstimatorAPI를 사용하면 모델을 훈련 및 평가하고 추론을 수행하고 모델을 저장할 수 있습니다(서비스 제공용).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.DatasetAPI로 데이터세트 파이프라인을 준비합니다.하나의 선형(
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에서 분산 전략 워크플로를 마이그레이션하는 데 도움이 될 수 있습니다.
TensorFlow.org에서 보기
Google Colab에서 실행하기
GitHub에서 소스 보기
노트북 다운로드하기