onnx.jsのデモンストレーションを動かしてみた
ブラウザでディープラーニングのモデルを動かすonnx.jsのデモを動かしてみました。
目次
onnx.jsとは
ONNXというのは、ディープラーニングの学習済みのモデルをフレームワーク間で交換するためのフォーマットです。Chainerで学習したモデルをWindows MLで使うというようなことに使います。
このONNXのモデルをJavaScriptで使うというのが、onnx.jsです。
マイクロソフトがJavaScriptのライブラリをオープンソースで公開する時代なんですね。
デモを動かしてみる
いくつかサンプルが公開されているのですが、Resnet50を試してみます。
試した環境は、Windows10、Python 3.7、FireFox、Core i5-8250uです。Pythonはローカルのウェブサーバーに使っただけですので、ローカルでウェブサーバーが立てられれば何でも良いです。
サンプルファイルはCDNに置いてあるonnx.jsのライブラリを参照するので、ネットワークにつながっている必要があります。
まずサンプルをダウンロードします。 GitHubのonnx.jsのレポジトリ からgitでクローンするか、zipファイルとしてダウンロードします。
onnxjs-master/examples/browser/resnet50 というフォルダにサンプルファイルがあります。
次に、Resnet50でImagenetの 訓練済みのモデル をダウンロードします。ダウンロードしたonnxファイルは、 onnxjs-master/examples/browser/resnet50 のフォルダに保存します。
次に、ローカルのウェブサーバーを起動します。onnxjs-master/examples/browser をカレントディレクトリにして下記を実行します。
> python -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
そしてブラウザで http://localhost:8000/resnet50/ にアクセスすると猫が表示されます。
この猫が猫かどうかを学習済みモデルで判定します。
猫の写真の下に「Run」というボタンがありますが、これをクリックすると、ちょっと考えてから猫の種類の判定結果が表示されます。
このサンプルはWebGL用になっているようなので、動かなかったらindex.jsの3行目にあるwebglの文字をcpuに変えてみてください。私の環境ではどちらでも動きました。
公開日
広告