ftnext / PyConTalkSummary

PyConで聞いたトークのサマリーをIssueに蓄積(arXivTimesリスペクト)
0 stars 0 forks source link

[PyConAfrica2020] Serving Deep Neural Networks through Django #29

Open ftnext opened 4 years ago

ftnext commented 4 years ago

一言でいうと

深層学習モデルを訓練し、DjangoでWebアプリとしてサーブするWorkshop (keras製モデルをDjango・DRFでサーブ)

発表資料リンク

https://africa.pycon.org/speakers/psalms-kalu#talk

発表者/所属

Psalms Kalu

発表日付

2020/08/05

概要

問題:スマートフォンの価格帯分類 https://www.kaggle.com/iabhishekofficial/mobile-price-classification Tableデータで20カラム、2000行程度

1. 深層学習モデルの構築

上記リポジトリにJupyter Notebookあり

# 4層のMLP(重みの数は目算〜10000→過学習しにくいモデル選択になっている)
model = Sequential()
model.add(Dense(16, input_dim=20, activation="relu"))
model.add(Dense(12, activation="relu"))
model.add(Dense(4, activation="softmax"))

accuracy: 90%超え model.saveで保存

2. 深層学習モデルをDjangoでサーブ

pages/urls.py

スマホの情報を入力する画面 フォームを表示するのはpages:indexページ フォームはapi:predictへPOSTリクエストを送信する

api:predictはDRFで実装。モデルの予測結果を返す(画面にポップアップが出る)


[以下はオプション]

新規性・差分

Djangoでも機械学習モデルのサーブができることを示すトーク。 Djangoならではのメリット・ノウハウの紹介というよりは、少ないDjangoの例を補強する意図とのこと

モデルのロードを1度だけにする(ビューの中だとリクエストのたびに読み込む0 →apps.pyに書き込む ApiConfig.model (TODO:積ん読)ref: https://docs.djangoproject.com/en/3.0/ref/applications/#how-applications-are-loaded

トークで知って試したいこと

Djangoのコードが荒削りなので、makeoverしたい

感想

タイトルがややミスリーディングで、モデルをDjangoでサーブするノウハウが聞けると期待に齟齬があった。 Djangoのコードは荒削りで、多々気になる(やってみた系の範疇に留まる印象)。 とはいえ、Djangoでの例を示すという意図には納得でき、Django開発者も他のフレームワークを学び直さなくても機械学習モデルをサーブできると背中を押す内容ではある