機械学習モデル作成 - yoshitaku55/ai_knowledge GitHub Wiki

機械学習モデル作成

  • モデルの作成と復元

    1. 訓練の途中・あるいは終了後にチェックポイントを保存可能。

    ​ これを利用して、モデルの使用・再訓練(中断時点から)が可能となる。

    2. モデル全体を保存可能。(モデルのアーキテクチャ/重み/訓練設定を出力)

    ​ モデルの出力形式として、2種類用意されている。(SaveModel、HDF5)

    ​ HDF5を使用する場合、以下が必要。

pip install -q pyyaml h5py

以下チュートリアルを参考に、保存処理を実装する。手書き文字サービスではSaveModelを使用

https://www.tensorflow.org/tutorials/keras/save_and_load?hl=ja

参考サイト


メモ

WebAPI動作確認用 JSON POSTコマンド

  1. 画像ファイルパスを渡すパターン

    curl http://127.0.0.1:5000/predict/handwriting -X POST -H "Content-Type: application/json" -d {"image_path":"C:/work/HandWriteService/HandWriteService/image/seo_own_0.png"}

  2. BASE64文字列を渡すパターン

    curl http://127.0.0.1:5000/predict/handwriting -X POST -H "Content-Type: application/json" -d {"image_path":"C:/work/HandWriteService/HandWriteService/image/seo_own_0.png","image_base64":"iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAIAAAD9b0jDAAAAyElEQVRIDa3BUaqjAABFsXv2v+gMPCgo1qkfJmFvC3tb2NvC3hZ2r9oF9l9hN6pt2EG1P9iNsG+qbdg31T6ws7BvKuyXaht2EHZRbcMeqLCDsIsKe6bCDsIuKuyZCjsIO6u2YQ9U27CDsLMKe6bCzsLOKuyZCjsLO6uwZyrsLOys2ob9Um3DzsIuKuyXCrsIu6iwXyrsIuyi2obdqPYHuwj7ptqGfVNhN8JuVPvAPqpt2I2wX6qdYffC3hb2trC3hb0t7G1hb/sH0t65ybFUM6YAAAAASUVORK5CYII="}

→TODO:pathを送信するか、画像データを送信するか。

 いったん画像データを送信する方に決定。


デバッグ動作手順

  • WebAPI

    ①Python:Flask(0.11.x or later) 実行

    ②JSON POSTコマンドを送信

  • 学習モデル作成

    ①train_handwrite.py 選択

    ②Python:Current File 実行


課題

  • 1回request送信後、以下の実行時エラーが発生(WebAPIの起動方法に問題あり?)

    RuntimeError: main thread is not in main loop

    →matplotlibで確認用に画像表示処理を入れていたが、それが問題だった模様。

     コメントアウトして、複数回呼び出しは可能になった。

     plt.clf()→plt.close()でメモリ解放処理を入れる必要あり?かと思ったが、

     入れるとload_model()で上記実行時エラーが複数回発生するようになる。

     https://qiita.com/Masahiro_T/items/bdd0482a8efd84cdd270

  • OpenCVのインテリセンス表示がおかしい

    ※インテリセンスが問題なだけで、実行すると問題なく処理される。

    https://qiita.com/FXsimone/items/577e3924f40aa4a9d4ea

    image-20201106171118500

  image-20201106173044632

以下は未対応

  • JSONのリクエスト、レスポンスパラメータについてIF決定