tf.estimator API技術マニュアル(1)-tf.estimator概要


tf.estimator API技術マニュアル(1)-tf.estimator概要
  • (一)前言
  • (二)Estimatorのメリット
  • (三)予め作成されたEstimatorプログラムの構成
  • (1)予め作成されたEstimatorプログラムの構成
  • (a)1つ以上のデータセットインポート関数
  • を記述する.
  • (b)フィーチャー列を定義します.
  • (c)インスタンス化関連の事前作成されたEstimator.
  • (d)トレーニング、評価、または推理方法を呼び出す.
  • (2)事前に作成されたEstimatorの利点
  • (四)推奨ワークフロー
  • (五)まとめ
  • (一)前言
    Estimatorは機械学習プログラミングを極めて簡略化できる高次TensorFlow APIである.Estimatorでは、次の操作がカプセル化されます.
  • 訓練
  • 評価
  • 予測
  • は、
  • を使用するためにエクスポートされる.
    事前に作成したEstimatorを使用したり、カスタムEstimatorを自分で作成したりすることができます.すべてのEstimator(事前作成またはカスタマイズ)は、tf.estimator.Estimatorクラスに基づくクラスです.
    (二)Estimatorの優勢
    Estimatorには、次のようなメリットがあります.
  • は、モデルを変更することなく、ローカルホストまたは分散型マルチサーバ環境でEstimatorベースのモデルを実行できます.さらに、モデルを再エンコードすることなく、CPU、GPU、またはTPU上でEstimatorベースのモデルを実行できます.
  • Estimatorは、モデル開発者間で実装を共有するプロセスを簡略化します.
  • は、高度な直感コードを使用して先進的なモデルを開発することができる.簡単に言えば、Estimatorを使用してモデルを作成することは、通常、下位TensorFlow APIを使用するよりも簡単です.
  • Estimator自体はtfにある.Layersの上に構築され、カスタムプロセスを簡素化できます.
  • Estimatorは自分で計算図を構築します.
  • Estimatorは、安全な分散トレーニングサイクルを提供し、どのようにしていつ制御できるかを制御します.
  • 構築図
  • 初期化変数
  • 並び始め
  • 処理異常
  • チェックポイントファイルを作成し、障害から
  • をリカバリ
  • TensorBoardの要約
  • を保存

    Estimatorを使用してアプリケーションを記述する場合は、データ入力パイプをモデルから分離する必要があります.この分離は異なるデータセットの実験フローを簡略化した.
    (三)事前に作成したEstimatorプログラムの構造
    (1)事前に作成したEstimatorプログラムの構成
    事前に作成されたEstimatorに依存するTensorFlowプログラムには、通常、次の4つのステップがあります.
    (a)1つ以上のデータセットインポート関数の作成
    各データセットインポート関数は、2つのオブジェクトを返さなければなりません.
  • キーがフィーチャー名で、値が対応するフィーチャーデータを含むテンソル(またはSparseTensor)
  • である辞書.
  • 1 1つまたは複数のラベルを含むテンソル
  • たとえば、次のコードは、入力関数の基本フレームワークを示します.
    def input_fn(dataset):
       ...  #         
       return feature_dict, label
    

    (b)特徴列を定義する.
    各tf.feature_columnは、フィーチャー名、フィーチャータイプ、および入力前処理操作を識別します.たとえば、次のコードセグメントは、整数または浮動小数点データを格納する3つのフィーチャー列を作成します.最初の2つのフィーチャー列は、フィーチャーの名前とタイプのみを識別します.3番目のフィーチャー列には、元のデータを調整するためにこのlambdaを呼び出すlambdaも指定されています.
    #       
    population = tf.feature_column.numeric_column('population')
    crime_rate = tf.feature_column.numeric_column('crime_rate')
    median_education = tf.feature_column.numeric_column('median_education',
                        normalizer_fn='lambda x: x - global_education_mean')
    

    (c)インスタンス化関連の事前作成されたEstimator.
    たとえば、LinearClassifierという名前の事前作成Estimatorをインスタンス化するコードの例を次に示します.
    #      estimator,         
    estimator = tf.estimator.LinearClassifier(
        feature_columns=[population, crime_rate, median_education],
        )
    

    (d)訓練、評価または推理方法を呼び出す.
    たとえば、すべてのEstimatorは、トレーニングモデルのtrainメソッドを提供します.
    #     ,  2000 
    estimator.train(input_fn=my_training_set, steps=2000)
    

    (2)事前に作成したEstimatorのメリット
    事前に作成されたEstimatorは、次のような利点を持つ最適な方法をエンコードします.
  • は、図の異なる部分の動作位置を計算し、単一のマシンまたは複数のマシン上でポリシーを実現するための最良の方法を決定する.
  • イベント(要約)作成および一般的に有用な要約のベストプラクティス.
  • 事前に作成したEstimatorを使用しない場合は、上記の機能を独自に実装する必要があります.
    (四)推奨されるワークフロー
  • は、適切な事前作成されたEstimatorが存在すると仮定し、それを使用して最初のモデルを構築し、その結果を使用して基準を決定する.
  • この事前に作成されたEstimatorを使用して、データの整合性と信頼性を含む全体的なパイプを構築およびテストします.
  • 他の適切な事前作成されたEstimatorが存在する場合、どの事前作成されたEstimatorが最も効果的であるかを決定するために実験を実行する.
  • は、カスタムEstimatorを構築することによってモデルをさらに改善することができる.

  • (五)総括
    このセクションでは、tf.estimatorの基本状況を紹介し、次の節からtf.estimator APIはすべての方法で全面的に分析して、どんな問題が評論区で伝言を残すことができて、私はできるだけ早く返事して、支持に感謝します!