Summary
- トレーニングループ、チェックポイント、分散トレーニング、TensorBoardとの統合を抽象化することで、開発者はインフラストラクチャの構築ではなくモデルアーキテクチャに集中できます。
- 一般的なタスク向けにDNNClassifierやLinearRegressorなどの既成のEstimatorに加え、ユーザー定義のmodel_fn関数によるカスタムEstimatorのサポートも提供します。
- コード変更なしでCPU、GPU、TPUにまたがる分散トレーニングを処理できますが、最近のTensorFlow開発ではEstimatorよりもtf.kerasとカスタムトレーニングループが優先されています。
Tensorflow Estimator API とは
Estimator は、完全なモデルを表しますが、ユーザーの多くに複雑な印象を与える傾向があります。Estimator API とは、モデルを学習して、その精度を評価し、推論を作成するためのメソッドを提供する高レベル API です。下の図のように、TensorFlow は複数の API 層からなるプログラミングスタックを提供します。Estimator には、事前構築された Estimator と、独自でカスタマイズする Estimator の 2 つのタイプがあります。
Estimator ベースのモデルは、モデルを変更せずに、ローカルホストまたは分散マルチサーバー環境で実行できます。また、モデルを再コーディングすることなく、Estimator ベースのモデルは CPU、GPU、TPU 上で実行可能です。
Estimator の 4 つの主要な機能
- 学習:与えられた入力データをもとに、指定された回数だけモデルを学習
- 評価:テストデータセットに基づいたモデルの評価
- 推論:学習済みモデルを使用したインターフェースの実行
- エクスポート:サーブするためのモデルのエクスポート
さらに、Estimator には、チェックポイントの保存や復元、サマリーの作成などの学習ジョブに共通するデフォルト動作があります。Estimator では、TensorFlow グラフのモデルと入力部分に対応するモデル関数(model_fn)と入力関数(input_fn)を記述する必要があります。
エンタープライズ向けエージェントAIプレイブック
Estimator を使用するメリット
- モデル開発者間での、実装共有を簡素化
- モデルの作成が必要な場合、低レベルの TensorFlow API と比べ、操作が容易であることから、高レベルの直感的なコードで優れたモデルの開発が可能
- tf.keras.layers 上に構築されているため、カスタマイズが簡単
- Estimator でのグラフ作成による作業負担 の軽減
- 安全な分散型トレーニングループを提供し、以下の方法とタイミングを管理:
- グラフの作成
- 変数の初期化
- データの読み込み
- 例外処理への対応
- チェックポイントファイルの作成および障害からの復旧
- TensorBoard サマリーの保存
FAQ
1, TensorFlow Estimator APIとは何ですか?
モデルの訓練・評価・推論・エクスポートを行う高レベル API で、分散環境でも容易に利用できます。
2, Estimatorの主なメリットは?
モデル開発の簡素化、再利用性、カスタマイズ性、安全な分散学習環境が挙げられます。
3, Estimatorで必要な関数は何ですか?
モデル構造を定義するmodel_fnと、データ入力を定義するinput_fnが必要です。

