Node-REDで機械学習 その3

17th October 2021 at 8:44pm

その2でNode-RedとLobeの連携ができました。

次はLobeからエクスポートしたTensorFlowモデルをPythonでREST API化してみます。と言っても、こちらの「flask-server」を使いますので、そんなに難しくはありません。

Pythonは私が良く使うWinPythonを使います。本記事は2021/10/2のものです。バージョンなどは少し古くなっているかもしれません。

Pythonの仮想環境の構築

flask-serverの説明にあるように、まず仮想環境を構築します。

WinPythonはポータブルなPythonです。展開すればインストール作業無しにすぐに使えます。私は現在バージョン3.9を標準に使っていますが、flask-serverは3.6か3.7を推奨しています。こんな時にもすぐに対応できます。環境変数の変更などは必要ですが。。。

今回は、こちらの軽量版のWinpython64-3.7.7.1dot.exeを使いました。

展開して、所望のフォルダに変更してください。私はC:¥WinPython37としました。

環境変数のPATHをチェックして、すでにあるPythonのパスをC:\WinPython37\python-3.7.7.amd64に変更してください。あとC:\WinPython37\scriptsを追加してください。

@echo off
call "%~dp0env_for_icons.bat"
rem backward compatibility for  python command-line users
"%WINPYDIR%\Scripts\pip.exe"  %*

上のDOSのコマンドをpip.batとして、C:\WinPython37\scriptsにコピーしてください。BATファイルはこちらに置いておきます。よろしければ右クリックでダウンロードしてお使いください。

こちらの「flask-server」から、zipをダウンロードしてください。

展開して適当なフォルダ名にしてください。エクスプローラでフォルダを開き、右クリックして[アドレスの編集]を押し、cmdと入力し実行してください。

以下を実行します。

python -m venv .venv

続けて以下も実行します。

python -m pip install --upgrade pip && pip install -r requirements.txt

後は、以下を実行すれば良いのですが、その前にLobeでモデルをエクスポートします。

python app.py

Lobeからモデルのエクスポート

Lobeを起動し、所望のプロジェクトを開き、[Use]を押します。

さらに、[Export] -> [TensorFlow]

適当なフォルダを選択します。出来上がったフォルダの中身だけ、flask-server-mainフォルダのmodelフォルダにコピーしてください。

Flaskサーバーの起動とNode-REDからの利用

flask-server-mainフォルダを作業フォルダにして以下を実行してください。

python app.py

使い方はLobeをAPI化した時と同じ使い方です。ただし、URLがhttp://127.0.0.1:5000/predictとなります。

Node-REDの「http request」ノードのURLを上記に書き換えてください。同じように動作します。

app.pyの以下を編集すると、外部からアクセスすることも可能です。

app.run(host='127.0.0.1', port=5000, debug=True)
↓
app.run(host='0.0.0.0', port=5000)

HomeへNode-REDの記事Topへ