1.この記事の内容
Webアプリケーション開発のお勉強 #6まででブラウザ操作でCNNの学習を実行し,Tensorboardと接続するところまでを実装しました.
本記事では,学習実行前に学習パラメータを変更するビューの追加とその仕組みを紹介します.
ソースコード全体はGitHubで公開しています.
本記事に対応するコミットはa7b5902fa17855dd143d5340969b0738d056e7e5です.
AI_Dashboard自体は引き続き更新を続けますが,これまでの記事でWebアプリ開発における基礎的な要素は紹介できたと思いますので,お勉強の連載記事としては今回で最後とします.
2.実装概要
DataAugmentationや学習時のハイパーパラメータをひとつのjsonファイルでまとめ,これをモデル毎に管理し,Webビューと学習アプリで共有する構成としました.
各パラメータをデータベースとして管理すると,ユーザが設定するパラメータが増加すると,モジュール間の引数も増加し内部仕様の複雑化につながります.
jsonファイルによる管理とすることでモジュール間インターフェースの共通化と簡略化を図ります.
3.実装内容詳細
学習パラメータの初期値はmedia/config/
以下にプリセットのjsonファイルを配置しておき,新規モデルの作成時にプリセットのjsonファイルをモデル管理ディレクトリにコピーします.
プロジェクトディレクトリ及びモデルディレクトリはそれぞれ,プロジェクト名・モデル名からハッシュ値を算出し,データベースに保存します.
モデル毎にパラメータを変更する際は,ブラウザ上で変更した値でjsonファイルを更新します.
学習を実行する際は,モデル管理ディレクトリ以下のjsonファイルを学習アプリに渡します.
下図はブラウザ上の操作と内部処理の関係図です.
4.さいごに
機械学習モデルを扱うWebアプリを題材に勉強した内容を連載記事として続けてきました.
フロントエンドとバックエンドの接続の仕組みとプログラムの書き方の,基礎的な内容は学べたと思います.
手探りで試しながらではありましたが,これらの内容が少しでも参考になれば幸いです.
5.[参考]jsonファイルの仕様
パラメータをjsonファイルに記述する際,パラメータ毎に下記のキー構成で登録します.
キー名 | 用途 |
---|---|
name | パラメータ名 パラメータ設定ページの項目名で使用する |
description | パラメータの概要 パラメータ設定ページのテキストボックスのplaceholderで使用する |
dtype | パラメータの型 int, float, str, boolから選択する jsonからロードすると文字列型となる為,dtypeに従ってキャストする |
value | パラメータの値 |
configurable | パラメータの設定可否 True:設定可能,False:設定不可 設定可能なパラメータはブラウザから変更可能 |
selectable | パラメータ設定が選択式か否か True:選択,False:直接入力 Trueはドロップダウンで変更,Falseはテキストボックスに入力して変更する |
items | ドロップダウンの選択肢 |