機械学習を用いたwebアプリケーション作った by Flask
はじめに
「web上で機械学習モデルにデータを投げて、結果を表示する」というサーバーサイド辺りのロジックを知りたかったので、手軽に使えるFlaskを用いて(toy)webアプリケーションを作っていきます。
(完成までの所要時間2時間程度でした)
環境
何を予測すんの?
機械学習のタスクは、右から Taco と Burrito という食べ物の2値分類です。
これらのデータであらかじめ学習しておき、学習した重みをファイルに保存しときます。
Flaskでのwebアプリ
まず、Flaskを勉強
といっても Flask を触るのは初めてだったので、youtubeやqiitaでさらっと勉強しましたが、結構直感的に使えるので学習コストは低く感じました。
webアプリの概要
今回のFlaskで作成したwebアプリのファイル構成です。
├── classification.py # 予測するスクリプト ├── main.py # Flaskのスクリプト ├── model │ └── resnet.prm # 学習済みモデル ├── static │ └── css ├── templates │ └── home.html ├── data │ ├── buritto │ └── taco └── upload # 入力されたデータを格納するファイル
プロセスの流れ
簡単にこのwebアプリのプロセスの流れは以下のようになります。
- "main.py" を実行するとサーバー起動ので接続
- web上で画像を投げると、"upload"にその画像が保存される。
- "classfication.py" の予測モデルにその"upload"に保存された画像を入力し、予測結果を返す。
- web上にその画像と予測結果を表示する
DEMO
実際に動かしてみると....
ソースコード
ソースコードはこちらです。