1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Webアプリケーション開発のお勉強 #7

Last updated at Posted at 2022-02-26

1.この記事の内容

Webアプリケーション開発のお勉強 #6まででブラウザ操作でCNNの学習を実行し,Tensorboardと接続するところまでを実装しました.

本記事では,学習実行前に学習パラメータを変更するビューの追加とその仕組みを紹介します.
ソースコード全体はGitHubで公開しています.
本記事に対応するコミットはa7b5902fa17855dd143d5340969b0738d056e7e5です.

AI_Dashboard自体は引き続き更新を続けますが,これまでの記事でWebアプリ開発における基礎的な要素は紹介できたと思いますので,お勉強の連載記事としては今回で最後とします.

2.実装概要

DataAugmentationや学習時のハイパーパラメータをひとつのjsonファイルでまとめ,これをモデル毎に管理し,Webビューと学習アプリで共有する構成としました.

各パラメータをデータベースとして管理すると,ユーザが設定するパラメータが増加すると,モジュール間の引数も増加し内部仕様の複雑化につながります.
jsonファイルによる管理とすることでモジュール間インターフェースの共通化と簡略化を図ります.

3.実装内容詳細

学習パラメータの初期値はmedia/config/以下にプリセットのjsonファイルを配置しておき,新規モデルの作成時にプリセットのjsonファイルをモデル管理ディレクトリにコピーします.
プロジェクトディレクトリ及びモデルディレクトリはそれぞれ,プロジェクト名・モデル名からハッシュ値を算出し,データベースに保存します.

モデル毎にパラメータを変更する際は,ブラウザ上で変更した値でjsonファイルを更新します.

学習を実行する際は,モデル管理ディレクトリ以下のjsonファイルを学習アプリに渡します.

下図はブラウザ上の操作と内部処理の関係図です.

processing_flow.png

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 ドロップダウンの選択肢

6.関連リンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?