Weitere ähnliche Inhalte
Ähnlich wie 機械学習で泣かないためのコード設計 (20)
Mehr von Takahiro Kubo (20)
機械学習で泣かないためのコード設計
- 1. Copyright © 2016 TIS Inc. All rights reserved.
機械学習で泣かないためのコード設計
戦略技術センター
久保隆宏
- 2. 2
Agenda
• Who are you
• TIS株式会社について
• 戦略技術センターについて
• 機械学習あるある物語
• 機械学習で泣かないための設計(案)
• Model
• Trainer
• DataProcessor
• ModelAPI
• Resource
• Appendix: API一覧
- 28. 28
Appendix: API一覧(1/3)
Model
• constructor: モデルに必要な構成要素(隠れ層)などの定義
• forward(inference): constructorで定義した構成要素を利用し、入力を出
力にする(伝搬)プロセスを定義する。
• 学習中とそうでない場合で構成が変わる場合(Dropoutなど)、それを引数
に取る。※ここでlossを出さないこと(出してもいいが、outputもちゃんと
返す)
ModelAPI
• constructor: 最低限Modelのパスを取得し、読み込む
• predict: 配列などの一般的な変数から、Modelを利用した予測値を返す
- 29. 29
Appendix: API一覧(2/3)
Trainer
• constructor: modelと学習に必要なパラメーターを受け取る。
DataProcessorは、この段階か、trainのメソッド内で作成する。
• calc_loss: 最適化の対象となる誤差の計算プロセスを定義する
(TensorFlow的にはtrain_op)
• set_optimizer(build): calc_lossの最適化プロセスを定義する
• train: 学習データ、または作成済みDataProcessorを受け取り、学習の実
行(set_optimizerで作成したoptimizerのupdate)を行う。この過程で、進
捗状況を定期的にreportする。
• report: 学習の進捗状況の出力、また学習モデルの保存などを行う
DataProcessor
• constructor: データへのパスなど
• prepare: データを読み込み、後処理で必要な統計量(平均など)を計算する
• format(preprocess): 生のデータを学習・予測用にフォーマットする
• batch_iter(feed): batch size/shuffleするかどうかなどを受け取り、要求
に応じたデータを返す。iteratorとして機能する。
- 30. 30
Appendix: API一覧(3/3)
Resource
• constructor: 設定ファイルの保存先パスを受け取る
• get_xxxx: 設定ファイル内の所定の項目を取得する。※get(“data_path”)
というように、文字列でパラメータを受け取らないこと(利用側が環境変数
名を覚えていないといけなくなるので)。
• get_data_root
• get_model_path
• get_log_folder
• などなど
• create_trainer/create_dataprocessorという感じで、読み込んだパ
ラメーターを元に各インスタンスを生成するメソッドを持たせるとい
う手もある。