Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

マイクロソフトのONNXランタイム



 ・残念ながらOSSではない
 ・pip でインストールするもの
 ・ONNX 1.3ではなく、1.2なのは、何故? 
 ・Cuda 9.1 なんだけど、何故?今は、Cuda 9.2 から Cuda 10.0 なんだけどね。
 ・CPU、MKL-DNN、nGraph、CUDA、TensorRT
  つまり、IntelNVIDIAは、おさえた。。。
 ・Azure、.NET、Windows Device
  あれ、nGraph って、Windowsでも動くの? あー、Azureで Ubuntu VM が動くからね。

下記の図は、引用です。
https://azurecomcdn.azureedge.net/mediahandler/acomblog/media/Default/blog/228d22d3-6e3e-48b1-811c-1d48353f031c.png

中を見たら、グラフを分割して、並列・分散処理をするようですね。
これが特徴なのかな。。。
この部分って、Brainwaveのシステムを利用しているのかな。。。。


何といっても、ONNXがディープラーニングのエコシステムの中心になったので、
皆でONNXのランタイムを開発中、なんだね。。。


ここにあるサンプルコードは、下記のようなもの。ONNXモデルを読み込んで、入力を設定して、runを実行するだけ。
簡単ね。。。。

    import onnxruntime as rt
    sess = rt.InferenceSession("model.onnx")
    input_name = sess.get_inputs()[0].name
    pred_onnx = sess.run(None, {input_name: X})

マイクロソフトのONNXランタイム、