機械学習のコード設計
今の私は、
ちょろっと試す程度なら
ちゃんと何度も実験する必要が出てきたら、
という進め方
/icons/hr.icon
p25 「構成(2018年版)」より
Dataset
データセットの取得を行う
Transformer
前処理/後処理を行う
Trainer
モデルの学習を行う
Model
機械学習モデルを定義する
ModelAPI
モデルによる予測を行う
Experiment
学習条件を記述する
「コマンドライン引数ではだめなのか?」(p31)について
komo_fr.icon個人的には
Jupyer Notebook上で%runコマンドで実行して残す、というやり方もあるかなと思った
ipynb(実験ノート) = Experimentという考え方
そのパラメータにした目的なども一緒に残せる
ただし何回も何回も試すときは、いちいちipynbファイル残すのも面倒かも
実験条件をセルにベタ書きすることになるので、後から「実験Aと実験 Bの結果の比較をグラフにしたい」ときに扱いにくいか
Storage
ファイルの配置を管理する
/icons/hr.icon
注)この本自体は「機械学習のコード設計の本」ではない
Modelは、network関数で定義している
Datasetは、CIFAR10Datasetクラス(の、get_batchメソッド)で定義している
Transformerは、Datasetとは分けずCIFAR10Datasetクラス内のpreprocessメソッドで定義している
実験によって頻繁に前処理の仕方が変えるようになった段階で分けた方が良いかも
Trainerは、Trainerクラスで定義している
Experimentは、関数、クラス外で定義されている
Storageは、
「どこに何を保存するか」を決めているコードといえば、
モデルの保存先や学習時のログの出力先は、Trainer内で定義している
/icons/hr.icon
Kerasで実験するときのテンプレート
Modelは、baseフォルダ配下のBaseModelクラスを継承して、modelsフォルダ配下に定義する
Datasetは、baseフォルダ配下のBaseDataLoaderクラスを継承して、data_loaderフォルダ配下に定義する
Transformerは、
各DataLoaderの中に直接書いてる?
Trainerは、BaseTrainクラスを継承して、trainersフォルダ配下に定義する
ModelAPIはどこ?
evaluaterフォルダの下に置くのかな
Experimentは、実験条件はconfigsフォルダ配下のjsonファイルで定義する
Storegeは、
/icons/hr.icon
ML-Schema: Exposing the Semantics of Machine Learning with Schemas and Ontologies
Gustavo Correa Publio, Diego Esteves, Agnieszka Ławrynowicz, Panče Panov, Larisa Soldatova, Tommaso Soru, Joaquin Vanschoren, Hamid Zafar
Submitted on 14 Jul 2018
https://gyazo.com/e18b0c638ff931476f81fd4e45de8c6b
機械学習のコードの設計に役に立ちそう
と思いつつ、今の私には分類が細かすぎてまだ参考にできてない