タグ

schemaと*algorithmに関するsh19910711のブックマーク (7)

  • ディープラーニングフレームワークのncnnを試してみた - NTT Communications Engineers' Blog

    はじめに こんにちは。イノベーションセンターテクノロジー部門の齋藤と申します。普段はコンピュータビジョンの技術開発やAI/MLシステムの検証に取り組んでいます。今回は、モバイル向けの推論フレームワークのncnnに触れてみたので、その結果について書いて行きます。 ncnnとは ncnn1とは、モバイル向けの推論フレームワークでAndroidとiOSにどちらも対応しています。Pytorchの場合モデルは、pthの形式で1つのファイルで構成されています。ncnnの場合モデルは、param(モデル構造)とbin(重み)ファイルに分割されています。 自身のncnnを使用するモチベーションは、ncnnのデータフォーマットにあります。モバイルで使用するフレームワークにTensorFlow Lite2がありますが、他のフレームワークからモデルを変換するためにNCHW形式からNHWC形式に変換する必要があり

    ディープラーニングフレームワークのncnnを試してみた - NTT Communications Engineers' Blog
    sh19910711
    sh19910711 2024/05/27
    "ncnn: モバイル向けの推論フレームワーク + AndroidとiOSにどちらも対応 / Intel CPUを使用した場合ncnnよりもonnxを使用した方が推論時間やメモリ性能上、上回っている / ncnnのリポジトリ 内にあるONNXからncnnに変換するコード" 2022
  • ONNXモデルのチューニングテクニック (応用編2)

    サイバーエージェント AI Lab の Human Computer Interaction Team に所属している兵頭です。今回は私が半年ほど蓄積したONNXのチューニングテクニックを全てブログに残したいと思います。皆さんが既にご存知であろう基的なことから、かなりトリッキーなチューニングまで幅広くご紹介したいと思います。長文になりますがご容赦願います。今回は応用編2です。 8. 各種トリック PyTorchやTensorFlowを経由して生成されたONNXから他のフレームワークへモデルを転用する場合に有効な様々なトリック、ワークアラウンドをご紹介します。あまり真新しい知見ではありませんが、以下でご紹介するようなトリックが記事としてまとまっているものはあまり見かけませんのでご参考になれば幸いです。エンジニアよりもリサーチャーの方々に是非読んでいただきたい内容です。ほとんどの内容が地味で

    ONNXモデルのチューニングテクニック (応用編2)
    sh19910711
    sh19910711 2024/05/26
    "GridSample: opset=16 から使用可能なオペレーション + アテンション系やステレオ画像をインプットとして扱うモデルでのアフィン変換で使用 / Barracuda: Unity がサポートしているデバイス上でONNXによる推論をサポート" 2023
  • ONNXファイルをテキスト形式に変換して直接編集する

    やりたいこと ONNX形式のファイルが手元にあって、ちょっとだけ直したい。できるだけ手軽に。 目的は、 Model Zoo等から入手したONNXファイルの、入出力の形式を変更したい(floatじゃなくてbyteにしたいとか) ONNXファイルA の出力がそのまま ONNXファイルB の入力になるので、2つをくっつけたい 等です。 方針 ONNXファイルを、バイナリ形式からテキスト形式に変換する 適当なテキストエディタで編集する テキスト形式からバイナリ形式に戻す バイナリ形式⇔テキスト形式の相互変換方法さえわかればできたも同然です。 準備 Protocol Buffer Compilerのダウンロード バイナリ形式⇔テキスト形式の変換にはProtocol Buffer Compilerを使います。というのも、そもそもONNXファイルはProtocol Bufferを使って定義された形式だか

    ONNXファイルをテキスト形式に変換して直接編集する
    sh19910711
    sh19910711 2024/04/25
    "Model Zoo等から入手したONNXファイルの、入出力の形式を変更したい(floatじゃなくてbyteにしたいとか) / ONNX: Protocol Bufferを使って定義 + バイナリ形式⇔テキスト形式の変換にはProtocol Buffer Compiler" 2021
  • 機械学習ライブラリの resize_images(bilinear 補間) の振る舞いがバラバラである - Qiita

    背景 Chainer で書かれた automatic portrait image matting のモデルを, ONNX にコンバートしてモバイルで動かしたい resize_images を pyramid pooling で利用している. onnx-chainer では resize_images のエクスポートに対応していなかったので, 対応しようとしたところ, resize_images(より正確には upsampling + bilinear 補間)の振る舞いが Chainer と ONNX で異なる(TensorFlow とも異なる)ことがわかった Chainer, ONNX, TensorFlow いずれもドキュメントでは bilinear 補間するとだけ書いてあり, 実際どのような bilinear 補間をするのかという仕様がありません. 実のところ, bilinear 補

    機械学習ライブラリの resize_images(bilinear 補間) の振る舞いがバラバラである - Qiita
    sh19910711
    sh19910711 2024/04/21
    "モデルをONNXにコンバートしてモバイルで動かしたい / resize_images(より正確には upsampling + bilinear 補間)の振る舞いがChainerとONNXで異なる(TensorFlow とも異なる) / いずれもドキュメントではbilinear補間するとだけ書いてあり" 2019
  • 機械学習モデルのServingとONNX Runtime Serverについて - Qiita

    機械学習を実際のプロダクションで使う時に大切な概念として serving というものがあります。以下、このservingの概要にさらっと触れ、つい最近しれっとリリースされたMS社製のOSS、ONNX Runtimeでのservingについてまとめたいと思います。 Servingとは? 機械学習の実応用において、推論(inference)をコスパ良く行うことは、モデルの精度を高めることと同様に重要です。というのも、オフラインで実行するのならともかく、現在稼働しているWebサービスなどのシステム上でオンラインで実行する時は、モデルからのレスポンスの速さやその運用コストがサービスのボトルネックになることが多いからです。 学習済みのモデルをサービスとしてデプロイしてオンラインの推論APIを提供することを広くservingと呼びます。servingと対になるのはオフライン実行ですね。例えばデータの塊

    機械学習モデルのServingとONNX Runtime Serverについて - Qiita
    sh19910711
    sh19910711 2024/04/16
    "TensorFlow Serving: protocol buffer形式にdumpし、それをC++で実装された実行環境に読み込ませることで高速なservingを実現 / ONNX Runtime: これまではあくまで自分でserving用のサーバーを実装しないといけませんでした" 2019
  • Glowコンパイラの内部構造とONNX形式のモデル実行 - Qiita

    記事では、最初にGlowの内部で行っている処理の概要を説明します。 そして、Glowを実際にインストールした後、Glowを使って簡単なONNX形式のモデルを実行し、動作を確認します。 Glowがサポートするモデル形式 Glowは、記事執筆時点で ONNX形式モデル とCaffe2形式のモデルの読み込みをサポートします。 Glowの内部構造 構成 Glowは、ONNXModelLoader と Caffe2ModelLoader を使って、ONNXやCaffe2で作成したモデルを読み込みます。ONNXModelLoader と Caffe2ModelLoader によって読み込まれたモデルは、Glow内部で利用されるモデルに変換され、モデルの実行を担う ExecutionEngine に渡されます。ExecutionEngine は、渡されたモデルを GraphOptimier や IR

    Glowコンパイラの内部構造とONNX形式のモデル実行 - Qiita
    sh19910711
    sh19910711 2024/04/06
    "Glow: 機械学習の領域に特化された演算ノードから構成される、デバイスに非依存なIR(計算グラフ) + 線形代数演算レベルに分解された演算のリスト + それぞれについて、2段階で最適化" 2018
  • GitHub - microsoft/onnxruntime: ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator

    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

    GitHub - microsoft/onnxruntime: ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
  • 1