R&D チームの奥村(@izariuo440)です。相変わらず深層学習モデルの推論に取り組んでいます。深層学習モデルの推論器として二年前に ONNX Runtime を軽くレビューしましたが、当時と比較するとかなり進歩しており、ONNX Runtime だけでなく ONNX 自体や関連ソフトウェアも成熟が進んでいるので、備忘録として私がお世話になっているものをかいつまんで紹介します。 OPTiM TECH BLOG Advent Calendar 2020 12/18 の記事です。 ONNX や ONNX Runtime は二年前の記事で少し解説しています。必要に応じてご参照ください。 tech-blog.optim.co.jp ONNX チュートリアル ONNX Model Zoo オプティマイザ その他 ONNX 関連のソフトウェア ONNX Runtime onnx-tensorrt
ONNC (Open Neural Network Compiler) is a retargetable compilation framework designed specifically for proprietary deep learning accelerators. Its software architecture expedites porting ONNC to any Deep Learning Accelerator (DLA) design that supports ONNX (Open Neural Network Exchange) operators. ONNC guarantees executability across every DLA by means of transforming ONNX models into DLA-specific
Toggle share menu for: Announcing ONNX Runtime 1.0 Share Share Announcing ONNX Runtime 1.0 on X X Share Announcing ONNX Runtime 1.0 on LinkedIn LinkedIn Share Announcing ONNX Runtime 1.0 on Facebook Facebook Share Announcing ONNX Runtime 1.0 on Email Email Print a copy of Announcing ONNX Runtime 1.0 Print One year after ONNX Runtime’s initial preview release, we’re excited to announce v1.0 of the
機械学習を実際のプロダクションで使う時に大切な概念として serving というものがあります。以下、このservingの概要にさらっと触れ、つい最近しれっとリリースされたMS社製のOSS、ONNX Runtimeでのservingについてまとめたいと思います。 Servingとは? 機械学習の実応用において、推論(inference)をコスパ良く行うことは、モデルの精度を高めることと同様に重要です。というのも、オフラインで実行するのならともかく、現在稼働しているWebサービスなどのシステム上でオンラインで実行する時は、モデルからのレスポンスの速さやその運用コストがサービスのボトルネックになることが多いからです。 学習済みのモデルをサービスとしてデプロイしてオンラインの推論APIを提供することを広くservingと呼びます。servingと対になるのはオフライン実行ですね。例えばデータの塊
この記事の中のソースコードは全てhttps://github.com/akawashiro/sonnxにあります。 概要 ニューラルネットワークから要らなそうな枝を80%削除しても精度が変わらなかった ONNXの中身をいじるのが大変だった onnxruntimeには勝てなかった 背景 機械学習の学習済みモデルを小さなデバイスで動かす、というのが最近流行っているそうです。機械学習では、学習には大きな計算コストがかかりますが、推論はそれほど大きな計算コストがかかりません。このため、学習だけを別のコンピュータで行っておいて、実際の推論は小さなデバイスで行うということが可能です。 ただし、推論だけでもそれなりに計算資源が必要です。そこで、学習済みのモデルの高速化が重要になります。Raspberry Piに搭載されているGPUを使うIdeinとか有名です。 僕も学習済みモデルの推論を高速化できそうな
tkatoです。エッジデバイスでのDeepLearningに興味があります。 近年DeepLearningで学習したモデルをスマートフォンなどのエッジデバイスで動作させる需要が高まっています。 そこで今回は、Chainerの学習済みモデルをAndroidスマートフォンで動かして行きたいと思います。 具体的には、上図のようにChainerのモデルをONNX-ChainerでONNXフォーマットに変換し、NNVM/TVMを使ってAndroidへデプロイします。 結論から言うと、Chainerの学習済みYOLOv2(tiny)をSnapdragon搭載のAndroidスマートフォンのCPU/GPUで動作させることができました。 また、ChainerをONNXフォーマットに変換してNNVM/TVMを使うことで、「Chainerでモデルをつくる → Androidでの動作確認」が全てPythonから
ONNX Runtime is a cross-platform inference and training machine-learning accelerator. ONNX Runtime inference can enable faster customer experiences and lower costs, supporting models from deep learning frameworks such as PyTorch and TensorFlow/Keras as well as classical machine learning libraries such as scikit-learn, LightGBM, XGBoost, etc. ONNX Runtime is compatible with different hardware, driv
シクシク素数列 Advent Calendar 2018 向けです。 ONNX はニューラルネットのモデルをエクスポートして、別の実装でインポートできたりする、相互運用のためのフォーマットです。複雑なモデルをサポートできるようにと、 Loop とか If とかがあるので、チューリング完全です。ただまあ実際にえぐい使われ方してる例は見たことがなかったので、やってみました。 https://github.com/shinh/test/blob/master/onnx_gen_4949_prime.py が、4か9を含む素数を出力する ONNX モデルを出力するプログラムで、 $ wget https://raw.githubusercontent.com/shinh/test/master/onnx_gen_4949_prime.py $ wget https://raw.githubuser
本記事では、最初にGlowの内部で行っている処理の概要を説明します。 そして、Glowを実際にインストールした後、Glowを使って簡単なONNX形式のモデルを実行し、動作を確認します。 Glowがサポートするモデル形式 Glowは、本記事執筆時点で ONNX形式モデル とCaffe2形式のモデルの読み込みをサポートします。 Glowの内部構造 構成 Glowは、ONNXModelLoader と Caffe2ModelLoader を使って、ONNXやCaffe2で作成したモデルを読み込みます。ONNXModelLoader と Caffe2ModelLoader によって読み込まれたモデルは、Glow内部で利用されるモデルに変換され、モデルの実行を担う ExecutionEngine に渡されます。ExecutionEngine は、渡されたモデルを GraphOptimier や IR
ONNXは 1 年以上前から使ってるもののちゃんと仕様しらないな〜、だったので調べた。 https://twitter.com/_tkato_/status/1076019658300346368 とか言ってた。 以下、ONNXv1.4.1 を対象https://github.com/onnx/onnx/tree/v1.4.1ONNX のドキュメントは GitHub にまとまっているLearn about ONNX specこの記事は上記のドキュメントから必要なところをまとめたものONNX 自体は Protobuf で定義した仕様で、ランタイム非依存。ONNX と ONNX-ML があるけど、主に DeepLearning 向けに使いたいので ONNX について調べたonnx.protoIR の仕様は以下で説明されている。 https://github.com/onnx/onnx/blob
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く