[備忘録] Week11: 自走できるAI人材になるための6ヶ月長期コース
キカガクさんの半年にわたる講義の備忘録
2020.07.18 (土) Week 11
今週はupload した画像を分類するアプリの作成の後半戦でした。講師はポイントポイントでサポート(エラー対応)です。
自分は6種類の動物を判別するアプリを作りました。(先日の講義では5種類で作っていたのですが、考え直して6種類へ変更です。)学習済みモデルをどうDjapngo で動かすのか分からなかったので、時間がかかりましたがなんとか時間以内に完成。しかし、Heroku への deploy までは終わらず、Macbook 上での確認に終わりました。というのも、deploy に何度も失敗してしまいHeroku に怒られてしまったためです。また時間をおいて挑戦をしたいと思います。
Your account has reached its concurrent builds limit
少し追記 @7/19(日)
上記の問題は何とか解決し、Heroku への deploy まで完了しました。学習モデルの精度は良くはないですが、システム構築の最低限のフローは理解できたつもりです。
備忘録
Week 11 実施内容
・画像分類アプリ開発
学習済みモデルの読み込み
pytorch-lightning を Mac へインストール
Flask だけど読み込んだ画像の表示(参考)
推論結果を返す (Switch 文のように)
これだと、elif を繰り返し書かなくても大丈夫
Tensor 形式の一部の場所を取り出す方法
まだ理解は仕切れていないけど、Tensor 形式で[0][対象の数字].item() で行けるハズ
tensor([[0.2054, 0.2118, 0.0799, 0.1943, 0.2423, 0.0663]], grad_fn=<SoftmaxBackward>)
result_softmax[0][num].item()
Heroku へ push した時のエラー (slug size)
どうやら Heroku は500 Mbyte までしか無料で使えないらしい。不要なファイルはHeroku から削除して、.gitignore のように .slugignore ファイルを作った方が良い。
Slug Size の内訳の見方(公式サイト)
Heroku へ push した時のエラー (PyTorch)
色々調べると、そもそもPyTorch のサイズが大きいのが問題らしい。PyTorch はGPU/CPU モデルとCPUモデルの2種類用意されていて、CPUモデルだと容量が小さいようです。Heroku への deploy が再開できるようになったら再度試してみようと思います。
remote: Collecting torch==1.5.1
remote: Downloading torch-1.5.1-cp36-cp36m-manylinux1_x86_64.whl (753.2 MB)
これでもできるのかは次回試す。version の後に「+cpu」をrequirement.txt ファイルに追記する
pip install torch==1.5.1+cpu torchvision==0.6.1+cpu -f https://download.pytorch.org/whl/torch_stable.html
torch==1.5.1+cpu
torchvision==0.6.1+cpu
この書き方ではダメだった
ERROR: No matching distribution found for torch==1.5.1+cpu (from -r /tmp/build_3977f4b0/requirements.txt (line 40))
上記ではダメだったので、このサイトで今回利用するものをURL指定すれば良いみたい。
一応成功したようです。127 MBまで下がってました。
Downloading https://download.pytorch.org/whl/cpu/torch-1.5.1%2Bcpu-cp36-cp36m-linux_x86_64.whl (127.3 MB)
Heroku へ upload したらDB 設定を忘れない
heroku run python manage.py migrate
改善できそうなところ
・CNN のクラスを別のファイルに書く
・入力画像 (Resize後) の出力および保存
あとでじっくり読みたいサイト
numpy とかはheroku でinstall するのに一手間必要らしい