とある案件の事前検証で、Chainerを使って機械学習モデルを作ってWebアプリケーションに画像ファイルをアップロードして、何の画像かを判定させるデモを作りました。
chainerで、例えばMNIST手書き文字認識のモデルを作ってCUI上で判定までさせる記事はたくさんありましたが、Webアプリ化してGUIっぽく使うデモがあまりなかったので、やったことを公開しておきます。
今回はWebアプリ化するために、モデルを作って保存するとこまでを説明します。
環境の準備からモデル作成まで
Qiitaの記事などを参照して環境構築、MNISTのサンプルコードが動くようにします。
少し古いですが以下の記事が分かりやすいです。
https://qiita.com/kenmatsu4/items/7b8d24d4c5144a686412
モデルの保存
MNISTのサンプルコードの trainer.run() の後ろにモデル保存のためのコードを追加します。
train.pyで再度モデル作成を行うと、カレントディレクトリにmnist.modelファイルが保存されます。ファイルはNumPyオブジェクトとしてバイナリ形式で保存されます。
コードは以下のようになります(抜粋)。
1 2 3 4 5 6 |
# Run the training trainer.run() # モデル保存のためのコードを追加。 chainer.serializers.save_npz('mnist.model', model) if __name__ == '__main__': main() |
これで機械学習モデルを作成して、再利用可能な形に保存できました。
次回は、このモデルを使って判定を行ってみます。