取引のためのONNXの学習 - ページ 13

 
Object-Detection Yolov7, ML.NET onnx model
Object-Detection Yolov7, ML.NET onnx model
  • 2023.01.13
  • www.youtube.com
Github:https://github.com/ptiszai/Object-Detection-yolov7-ML.NET-onnx
 
Implement Yolo3 Real-time using C#
Implement Yolo3 Real-time using C#
  • 2021.05.29
  • www.youtube.com
Using Alturos & OpenCvSharp run Object Detection Real-time#yolo #objectdetection #csharp #windowsLink source: https://github.com/duonghb53/YoloOnCSharpGPU
 

C# と OpenCVSharp を使用した顔検出 - 実用的な ML.NET ユーザー グループ 2022 年 1 月 19 日



C# と OpenCVSharp を使用した顔検出 - 実用的な ML.NET ユーザー グループ 2022 年 1 月 19 日

C# で OpenCVSharp を使用した顔検出に関するビデオ チュートリアルは、講演者がコンピューター ビジョン タスク用のオープンソース ライブラリである OpenCVSharp ライブラリを .NET ラッパーと共に紹介するところから始まりました。ビデオでは、目などの検出にさまざまな分類器を使用すること、および分類器の選択における実験の重要性について説明しました。このチュートリアルでは、リスナーが、コード スニペット、ビジュアル スタジオ、および .NET インタラクティブ ノートブックを使用して、Web カメラを使用して顔と目を検出するプログラムを作成するのを支援しました。透明な画像をオーバーレイする方法やマット オブジェクトを適切に処理する方法など、さまざまな側面についても詳しく説明されました。講演者は、OpenCVSharp の使いやすさ、速度、および .NET との互換性を認めましたが、例の欠如と不確実な長期サポートについても指摘しました。

  • 00:00:00 このセクションでは、講演者は C# で OpenCVSharp を使用した顔検出のトピックを紹介し、OpenCV の .NET ラッパーである OpenCVSharp の概要を簡単に説明します。これは、コンピューター ビジョン タスク用のオープンソース ライブラリです。講演者は、画像操作、顔検出、顔認識モデルなど、OpenCVSharp のさまざまな機能について説明します。講演者はまた、OpenCVSharp の C# の例はあまり多くありませんが、API の類似性により C# に簡単に変換できる Python の例はたくさんあることにも言及しています。次にスピーカーは、OpenCVSharp を使用して Python と C# の両方で特定のタスクを実行する方法の例をいくつか挙げます。

  • 00:05:00 このセクションでは、スピーカーは OpenCVSharp のさまざまなフレーバーと、マネージド ライブラリとネイティブ バインディング ライブラリを組み合わせることの重要性について説明します。次に、Visual Studio Code と .NET インタラクティブ ノートブックを使用し、NuGet パッケージを読み込み、ハード カスケード XML ファイルを使用して顔検出を実行する例を示します。このコードでは、ハード カスケード分類器を取り込み、それらを使用して顔を検出し、画像内で顔の周りにボックスを描画する手順を説明します。

  • 00:10:00 このセクションでは、潜在的なメモリ リークを回避するために、OpenCVSharp で「mat オブジェクト」を適切に処理および破棄することの重要性について、プレゼンターが説明します。ソース画像を読み込み、顔検出用に新しい空の「グレー画像」を作成する方法を示します。これは、分類器が白黒画像で最適に機能するためです。次に、「cb2 均等化ヒストグラム」を使用して画像の明るさとコントラストを正規化し、カスケード分類を改善する方法を説明します。プレゼンターは、顔検出の最小サイズ要件を使用して、誤検知やアーティファクトを回避する方法についても説明します。最後に、「cv2 四角形」を使用して検出された顔の周りにボックスを描画し、ウィンドウを開いて結果の画像を表示する方法を示します。ユーザーがウィンドウを閉じる方法としてウェイト キーが使用されます。

  • 00:15:00 ビデオのこのセクションでは、スピーカーは、静止画像を表示するためにウェイト キーが必要ないため、重みキーが入ってくることを期待していないことについて説明しています。ただし、ウェブカメラのデモを見ると、より効果的になります。また、デフォルトの名前空間に関する質問に答え、顔だけでなく目も検出する方法を説明しています。彼らは、2 つのカスケード ファイル (正面の顔と目のカスケード) を取り込むことと、顔の四角形をループして目の追加の検出を試みる方法について説明しています。彼らは、関心領域 (ROI) を作成し、顔の周りに長方形を描くプロセスを説明しています。

  • 00:20:00 このセクションでは、インストラクターは、OpenCVSharp でネストされたカスケードを使用して、顔画像で目を検出するプロセスについて説明します。彼らは、以前に検出された顔の関心領域を取得し、それをグレーに変換してから、特に目を検出するためにネストされたカスケードを適用します。これにより、検出された目の位置を円の中心点として、検出された目の周りに円を描くことができます。彼らは、検出された目のサイズが検出された顔のサイズよりも小さくなければならないことに注意し、いくつかの試行錯誤を通じて、ネストされたカスケードのパラメーターを調整して、さまざまなサイズの顔の目をより適切に検出できるようにします。全体として、プロセスは完全ではありませんが、ほとんどの場合、目を検出するのに効果的です.

  • 00:25:00 このセクションでは、スピーカーは、顔検出に使用できるさまざまな分類器と、特定の状況に最適な分類器を決定するための実験の必要性について説明します。また、スピーカーは、検出プロセスにアーティファクトが存在する可能性があることを認め、プロセスを製品化する場合はロジックを使用してそれらを削除することを提案します。次にスピーカーは、Web カメラの使用と、Web カメラの顔と目の検出のコードが前の例とどのように似ているかについて説明します。唯一の違いは、ビデオ キャプチャの導入とウィンドウ オブジェクトの作成です。最後に、キーが押されたかどうかをフレーム間で 1 ミリ秒待機することの重要性が強調されています。これは、Web カメラでキャプチャされる 1 秒あたりのフレーム数に大きく影響するためです。

  • 00:30:00 このセクションでは、プレゼンターが C# を使用して OpenCVSharp の顔検出機能を実演します。このコードは Web カメラのデータをキャプチャし、被写体の顔をボックスで囲んで検出します。プレゼンターは、ウィンドウに画像を表示するために含める必要がある OpenCVSharp の際立った機能である重みキーについて説明します。彼らは、重みキー メソッドがいつ実行されるかについての質問に答え、それがどのように使用されるかを説明します。このセクションには、1 秒あたりのフレーム数を Web カメラ データ キャプチャ コードに追加する例も含まれています。プレゼンターは、weight キーを忘れると問題が発生する可能性があるため、重みキーを含めることの重要性を指摘し、コード内のすべてのウィンドウを破棄する方法を示します。

  • 00:35:00 このセクションでは、プレゼンターが C# と OpenCVSharp を使用して画面にテキストを配置し、色を制御する方法について説明します。彼らは、顔と目の周りのボックスの色を定義する方法を説明し、fps カラーと呼ばれる別の色を定義します。これは、フレーム レートが毎秒 20 フレーム未満の場合は赤、20 以上の場合は緑です。また、ウェイト キーの遅延の影響と、それがフレーム レートにどのように影響するかを示します。彼らは、それに入るすべての変数を考慮して、1秒あたり20フレーム以上を取得できれば満足していると述べています。これにより、当面の目標を達成できます.

  • 00:40:00 このセクションでは、プレゼンターが画像をオーバーレイする方法を実演し、IamReadModes を変更せずに使用して画像の透明要素を保持することの重要性を説明します。彼らは例としてサングラスを使用し、すべてを完璧にする時間がなかったため、コードが最適化されていないことを認めています。また、顔の四角形の x 座標と y 座標を使用する代わりに、サングラスを着地させたい座標をハードコーディングすることでごまかします。プレゼンターは、実際のシナリオでは、オーバーレイを配置する場所を知るために x 座標と y 座標を MakeOverlay メソッドに渡す必要があると説明しています。さらに、四角形の大きさに基づいてオーバーレイ画像のサイズを変更するために使用する必要がある Resize メソッドについて言及していますが、これは彼らの不正行為の例では必要ありません。

  • 00:45:00 このセクションでは、スピーカーは透明なオーバーレイ イメージをベース イメージにマージするプロセスを説明します。最初に、透明なオーバーレイ イメージは、透明なチャネルを維持しながら RGB に変換されます。次に、元のオーバーレイから RGB チャネルが抽出され、新しいマップにマージされます。その後、透明度チャネルは、「オーバーレイ アルファ 3 チャネル」と呼ばれる新しいマップに 3 回複製し、ビット単位の操作を実行することによって、新しいマップとマージされます。最後に、サングラスが配置される関心領域が定義され、顔の四角形が抽出され、サングラスをマージするための顔の関心領域として機能します。

  • 00:50:00 このセクションでは、スピーカーは OpenCVSharp を使用して検出された顔にサングラスを追加するプロセスを簡単に説明します。ビット演算を使用して、検出された顔の上にサングラスを配置し、透明度を維持して、顔を元の位置に戻します。スピーカーは、使いやすさ、速度、.NET との互換性など、OpenCVSharp のいくつかの長所と短所も強調していますが、例がなく、長期的なサポートが不確実です。スピーカーはさまざまなリソースを提供し、ユーザーが GitHub で OpenCVSharp プロジェクトを後援することを奨励します。参加者は、OpenCVSharp が Raspberry Pi などのマイクロコントローラーで実行できるかどうかを尋ね、スピーカーは Linux Arm フレーバーで実行できるはずだと答えました。
Face Detection Using C# and OpenCVSharp - Practical ML.NET User Group 01/19/2022
Face Detection Using C# and OpenCVSharp - Practical ML.NET User Group 01/19/2022
  • 2022.01.20
  • www.youtube.com
Learn how you can quickly and easily perform face detection in C# using OpenCVSharp. OpenCvSharp is a cross platform wrapper of OpenCV for .NET. We'll explor...
 

ML.NET を使用した Custom Vision ONNX モデルでの予測



ML.NET を使用した Custom Vision ONNX モデルでの予測

この YouTube ビデオでは、プレゼンターが ML.NET を使用してカスタム ビジョン ONNX モデルを予測する方法について説明しています。これには、カスタム ビジョン サービスからのモデルのエクスポートと、ML.NET プロジェクトへのインポートが含まれます。実装には、画像のサイズ変更、画像ピクセルの抽出、画像データを読み込むためのデータ コンテキストと空のデータ リストの作成、ML.NET フレームワークを使用したモデルの予測、および結果の出力が含まれます。このビデオでは、Neuron というツールを使用してモデルの出力名を取得する方法と、特定のテスト画像のモデルからバウンディング ボックス情報を取得する方法も示しています。プレゼンターは、境界ボックスの周りに四角形を描画し、Graphics API を使用して予測されたラベルを表示する方法も示します。 ML.NET API と画像のサイズ変更を使用した ONNX モデルの実装は、実装の最も重要な部分として強調されています。

  • 00:00:00 ML.NET フレームワークを使用して、カスタム ビジョン ONNX モデルを予測します。これを行うには、まずカスタム ビジョン サービスからモデルをエクスポートし、ML.NET プロジェクトにインポートする必要があります。モデルがプロジェクトに追加されたら、モデルで予測を行う前に、画像のサイズを変更して画像ピクセルを抽出するパイプラインを作成できます。これを行うには、いくつかの NuGet パッケージをダウンロードしてプロジェクトに追加し、新しいデータ コンテキストと空のデータ リストを作成して画像データを読み込む必要があります。最後に、ML.NET フレームワークを使用してモデルの予測を行い、結果を出力します。

  • 00:05:00 このセクションでは、スピーカーは、Neuron というツールを使用して、Custom Vision からダウンロードしたモデルの出力名を取得する方法について説明します。 Neuron は、入力と出力を含むモデルに関する情報を提供する小さなデスクトップ アプリです。出力名が取得されると、変換を呼び出してモデルを適用するときに、出力列名として使用できます。スピーカーは、予測エンジンを作成し、ヘルパー メソッドを使用して、特定のテスト画像のモデルからバウンディング ボックス情報を取得する方法も示します。

  • 00:10:00 このセクションでは、スピーカーはオブジェクト検出モデルの実装を続け、境界ボックスを取得し、その周りに長方形を描画し、グラフィック API を使用して画像の予測ラベルを表示する方法を示します。最大信頼度を持つ境界ボックスが 1 つだけ考慮される場合、最大信頼度が取得されて上部境界ボックスが取得されます。また、コードはヘルパー メソッドを使用して四角形を描画し、信頼度を示す説明の文字列が返されます。最後に、後で参照できるように、テスト イメージがファイル システムに保存されます。講演者は、実装の最大の部分は、画像のサイズ変更と、ML.NET API を使用した ONNX モデルの適用であることを強調しています。
Predicting on a Custom Vision ONNX Model with ML.NET
Predicting on a Custom Vision ONNX Model with ML.NET
  • 2020.01.27
  • www.youtube.com
How to use a model from the Custom Vision service in ML.NET to make predictions.Code - https://github.com/jwood803/MLNetExamples/blob/master/MLNetExamples/Cu...
 

ONNX でニューラル ネットワークをポータブルにする



ONNX でニューラル ネットワークをポータブルにする

この YouTube ビデオでは、Ron Dagdag が、機械学習の推論側に焦点を当てて、ONNX を使用してニューラル ネットワークを移植可能にする方法を説明しています。 ONNX は、さまざまな処理ユニットやデバイス間での機械学習モデルの移植を可能にするオープンソース フレームワークです。講演者は、モデルを ONNX に変換し、モデルをデプロイしてアプリケーションと統合し、それをクラウドとエッジのデプロイに使用するプロセスについて説明します。また、Node.js に ONNX モデルをロードし、ONNX ランタイムを使用して画像分類モデルを Web およびモバイル アプリケーションに統合する方法も示します。 ONNX モデルは、さまざまなフレームワークから作成してターゲット プラットフォームに効率的にデプロイできるオープン スタンダードです。

  • 00:00:00 このセクションでは、Ron Dagdag が、機械学習の推論側に焦点を当てて、ONNX を通じてニューラル ネットワークを移植可能にするという概念を紹介します。彼は、プログラミングと機械学習の典型的なプロセス、およびアルゴリズムを作成するためのトレーニング データ、トレーニング フレームワーク、モデル、および推論ランタイムの必要性について説明しています。彼はまた、プレゼンテーションの焦点は、ONNX を使用してモデルをアプリケーションに組み込む推論側にあると述べています。

  • 00:05:00 このセクションでは、講演者は、CPU、GPU、FPGA などのさまざまな処理ユニットや、クラウドや IoT などのさまざまなデバイス間での機械学習モデルの移植性を可能にするフレームワークとして ONNX を紹介します。どこでも使用できる形式であり、GitHub でオープン ソースであるという点で PDF と比較し、11,000 を超えるスターと 200 の貢献者を獲得しています。講演者は、Azure Percept のようなエッジ デバイスで実行するなど、他のアプリケーションと共にデプロイする必要がある、または高い推論レイテンシーを必要とする、Python でトレーニングされたモデルを扱う場合に ONNX を使用することを推奨しています。

  • 00:10:00 このセクションでは、スピーカーは、特定のオペレーティング システム (OS) またはハードウェアでプログラムされたアプリケーションを別の OS またはハードウェアで実行するように変換することが必要になるシナリオについて説明します。解決策は、プログラムを ONNX 形式に変換することです。 ONNX は、異なるフレームワークから作成されたモデルを実行する場合や、トレーニングに時間がかかりすぎる場合に使用されます。次にスピーカーは、ONNX モデルを取得する 4 つの方法を詳しく説明します。その最初の方法は、GitHub の ONNX モデル ズーです。これに続いてカスタム ビジョン サービスがあり、既存のモデルから変換され、Azure 機械学習または自動機械学習を使用してトレーニングされます。

  • 00:15:00 このセクションでは、スピーカーはモデルを ONNX に変換するプロセスについて説明します。このプロセスは、Python で記述されたモデルに限定されず、ML.NET でも実行できます。講演者は、ML.NET モデルを変換してから ONNX に保存する方法を実演します。画像分類やオブジェクト検出モデルなど、ONNX に変換された利用可能なモデルは多数あります。 Custom Vision Service を使用して画像をアップロードし、それらにタグを付けてさまざまな種類のオブジェクトを分類することもできます。 GitHub は、ソフトウェア エンジニアが入力と出力を含めて ONNX モデルがどのように見えるかを視覚化できる Netron と呼ばれるアプリを提供します。講演者は、PyTorch または TensorFlow から変換することで ONNX モデルを生成することもできると説明しています。

  • 00:20:00 このセクションでは、スピーカーは回帰モデルを生成し、それを ONNX にエクスポートする方法を示します。ONNX は、さまざまな機械学習フレームワークを使用する際の移植性を可能にするオープンソース形式です。 C# と ml.net を使用して、スピーカーは給与データをデータ フレームに読み込み、パイプラインを使用してラベル列と入力 (経験年数) を指定して回帰モデルをトレーニングします。モデルを評価した後、モデル、サンプル データ、およびストリームをコンテキストに渡すことで ONNX に変換し、Netron を使用して表示できるファイルを作成します。講演者は、ONNX を中間フォーマットとして使用して、PyTorch や TensorFlow などのフレームワーク間で機械学習モデルを変換することもできると述べています。

  • 00:25:00 このセクションでは、講演者は ONNX モデルをアプリケーションにデプロイして統合するプロセスについて説明します。モデルを ONNX に変換すると、さまざまなフレームワーク間の互換性が確保され、ユーザーは ONNX モデルを転移学習と微調整に使用することもできます。講演者は、バージョン管理と、コンテナー レジストリと同様にモデル レジストリを持つことの重要性を強調し、追跡と展開を容易にします。さらに、講演者は、「レシピ」を構築するデータ サイエンティストに必要なスキル セットと、「ベーカリー」を開始して AI をアプリケーションに統合するエンジニアに必要なスキル セットの違いを強調しています。この講演では、Azure Machine Learning、Ubuntu または Windows Server、IoT エッジ デバイスなど、ONNX モデルのデプロイをサポートするさまざまなフレームワークとプラットフォームについて説明します。

  • 00:30:00 このセクションでは、スピーカーは機械学習モデルの展開について説明し、クラウドとエッジの展開の両方をカバーしています。スピーカーによると、エッジ展開はデータ処理がユーザーにどれだけ近いかということであり、クラウドよりもはるかに近い. AI をエッジで実行することは、クラウドにアップロードせずにローカルでデータを処理できるため、待ち時間が短く、コストを節約するのに理想的です。さらに、ローカルでの実行はより柔軟で、ネットワーク外での画像の共有を禁止するルールを扱う場合に特に重要な、プライバシー コンプライアンスを確保できます。エッジでの機械学習モデルの展開を容易にするために、Microsoft はオープンソースの ONNX ランタイムを開発しました。これは、ニューラル ネットワークだけでなく、従来の機械学習仕様もサポートし、高性能の推論を実行でき、ハードウェア アクセラレータ用の拡張可能なアーキテクチャを備えています。

  • 00:35:00 このセクションでは、スピーカーは、ONNX を使用してニューラル ネットワークを移植可能にする方法について説明します。 ONNX ランタイムを使用すると、ユーザーは GPU、CPU、VPU などのさまざまな処理ユニットでモデルを実行でき、Windows、Web ブラウザー、Node.js、React Native アプリケーションなどのさまざまなプラットフォームで使用できます。スピーカーは、Node.js アプリケーションに ONNX モデルをロードする方法と、入力値を渡して目的の出力を受け取る方法のデモを示します。 ONNX ランタイムを使用することで、開発者はハードウェアの互換性を気にすることなく、機械学習モデルをアプリケーションに簡単に組み込むことができます。

  • 00:40:00 このセクションのビデオでは、最適化された WebAssembly および WebGL テクノロジを使用してブラウザで ONNX モデルを直接実行するために設計された JavaScript ライブラリである ONNX ランタイム Web について説明します。ブラウザで推論するこの方法は、オフラインでの使用も可能にしながら、より速く、より安全で、安価です。ただし、特定のハードウェア仕様を必要とする大規模なモデルでは効率的でなく、ダウンロード時間が長くなる可能性があります。このビデオでは、ONNX ランタイム Web を使用して泣いている赤ちゃんの画像を分析する例を示し、モデルを HTML ファイルに統合し、ランタイムを使用して実行する方法を示しています。

  • 00:45:00 ビデオのこのセクションでは、プレゼンターが ONNX モデル Zoo と ONNX ランタイム Web を使用して、画像分類モデルを Web アプリケーションに統合する方法を示します。彼は画像を Web アプリにアップロードし、サイズを変更してグレースケールとテンソルに変換し、事前トレーニング済みモデル用に準備します。 ONNX ランタイム Web を使用して、モデルが読み込まれ、処理された画像が供給され、画像に表現されている感情が予測されます。次に、プレゼンターは、React Native アプリで事前トレーニング済みの ONNX モデルをスコアリングする方法を示します。

  • 00:50:00 このセクションでは、スピーカーは、Android および iOS プラットフォームで最適化された ONNX モデルを実行するための軽量の推論ソリューションとして、ONNX ランタイム モバイルの使用について説明します。 ONNX ランタイム モバイルをアプリケーションに統合するには、npm install ONNX ランタイム 反応ネイティブを使用できます。これにより、バイナリ サイズが ort 形式と呼ばれる事前に最適化された ONNX モデルに最小化されます。 onnxruntime.ai で利用可能なチュートリアルでは、ノード、Web ブラウザー、React Mobile などのさまざまなプラットフォームを使用して ONNX モデルを展開する方法を段階的に説明しています。互換性チャートは、Chrome が Windows 10、macOS、Ubuntu で Web アセンブリと webGL をサポートしていることを示しています。 、iOS、および Android。 ONNX モデルは、さまざまなフレームワークから作成して、適切なツールを使用してターゲット プラットフォームに効率的にデプロイできるオープン スタンダードです。
Making neural networks portable with ONNX
Making neural networks portable with ONNX
  • 2021.11.28
  • www.youtube.com
Making neural networks portable with ONNXBy Ron Dagdag - Lead Software Engineer at Space and Microsoft MVP#comunidadailive
 

On .NET Live - AI Everywhere: Azure ML と ONNX ランタイム



On .NET Live - AI Everywhere: Azure ML と ONNX ランタイム

ビデオ「On .NET Live - AI Everywhere: Azure ML と ONNX ランタイム」では、C# による機械学習に Azure ML と ONNX ランタイムを使用することに焦点を当てています。スピーカーは、プログラミング言語間でモデルをエクスポートするために ONNX 形式を使用する利点、ハードウェア アクセラレーションと推論のための ONNX ランタイムの最適化、フレームワークの特定のバージョンとの互換性について説明します。また、Python と .NET の Azure ML で ONNX ランタイムを使用する方法、ニューラル ネットワーク モデルを作成してトレーニングする方法、機械学習における推論とその最終ステップについて説明する方法も示します。ビデオは、ARM CPU で OpenVINO を使用できるようにする ONNX ランタイムの新しいプロバイダーの紹介で締めくくられ、デバッグ機能が提供されます。

ビデオのこのセクションでは、ホストが、ONNX ランタイムの柔軟性と構成可能性、およびさまざまなハードウェアおよびソフトウェア プラットフォームで実行する機能について説明します。 ONNX ランタイムは、顧客がクラウド、Android、iOS、または Snapdragon CPU で使用できるため、さまざまなプラットフォームの優れたラッパーと見なされ、より高速な推論が可能になります。

  • 00:00:00 このセクションでは、ホストが人工知能 (AI) の経験を持つイタリアの .NET 開発者である Maro Benici をゲストとして紹介します。このエピソードでは、C# で Azure ML と ONNX ランタイムを使用して機械学習の学習を続ける方法に焦点を当てます。関連するビット セグメントでは、.NET で AutoML ONNX モデルを使用して予測を行うことに関する Azure Machine Learning サイトのドキュメントについて説明します。これは、その日のトピックに密接に関連しています。

  • 00:05:00 このセクションでは、スピーカーは、機械学習モデルを ONNX 形式にエクスポートして、Azure Machine Learning 内の Automl のコンポーネントを使用してフレームワーク間でモデルを共有するオプションについて説明します。 .NET で推論を実行するには、ONNX ランタイム パッケージが使用され、ml.net は ONNX モデルを使用して予測パイプラインを実行します。モデルの入力と出力を理解するためのツールである Netron が紹介され、入力と出力のクラスの作成が示されます。最後に、モデルを含むパイプラインが定義され、入力のインスタンスがエンジンを介して実行されて予測が行われ、結果の出力が予測料金になります。次にスピーカーは、Stable Difussion で ONNX ランタイムを使用して AI 画像を生成することに関する関連記事を簡単に紹介します。

  • 00:10:00 このセクションでは、カスタム ハードウェアからデータ センター、クラウド コンピューティングに至るまで、過去 15 年間に技術がどのように進化したかについてスピーカーが話します。彼は 2006 年に行った最初のプロジェクトの例を挙げています。このプロジェクトでは、手作りのセンサーを使ってブドウ園の鉱物を捕らえ、そのデータをポータブル ハードディスクに保存し、分析のために研究所に送った方法を紹介しています。今日、同じプロジェクトを携帯電話で行うことができ、データはクラウドに収集され、リアルタイムで分析され、瞬時にアラートと調整を行うことができます。講演者はまた、クラウドへの移行によって、以前はオンプレミス コンピューティングに制限されていた顧客がクラウドベースのサービスを利用できるようになり、ビジネスの機会がどのように開かれたかについても説明します。

  • 00:15:00 このセクションでは、スピーカーは、さまざまなプログラミング言語を使用して機械学習モデルを構築および展開する顧客が直面する課題について説明します。彼は、ONNX 形式はこの問題の解決策として作成され、顧客が別のプログラミング言語で再ロードできる言語でモデルを保存できるようにしたと説明しています。彼は続けて、ONNX は数学関数とニューラル ネットワーク内の層の値をエクスポートできるため、異なる言語間で簡単に変換できると説明しています。講演者は、ONNX が多くの企業で使用されていることを強調し、コードをアウトソーシングして、さまざまなプログラミング言語を知っているさまざまな企業を使用できるようにしています。

  • 00:20:00 このセクションのビデオでは、ONNX フレームワークと、さまざまなプラットフォームやプログラミング言語で機械学習モデルをエクスポートして実行するためのその使用について説明しています。 ONNX フレームワークを使用すると、ユーザーはライブラリやフレームワークをリロードせずにモデルをエクスポートして実行できるため、Python や TensorFlow についてよく知らない顧客でも簡単に実行できます。 ONNX ランタイムはオープン ソースであり、GitHub で入手できます。ユーザーは、好みの言語とアーキテクチャを選択してモデルを実行できます。このビデオでは、特定のバージョンのフレームワークとの互換性を確保することが不可欠であるため、op セットの互換性とその影響についても触れています。

  • 00:25:00 このセクションでは、スピーカーは、AI モデルで使用される数学関数が ONNX ランタイム ライブラリと互換性があることを確認する方法について説明します。モデル内のすべての操作をサポートする最新バージョンのライブラリを使用することをお勧めします。また、ONNX のドキュメントが最近更新され、サポートされているアプリとサポートされていないアプリの可視性が向上したことにも言及しています。数学関数がサポートされていない場合、アラートが生成され、サポートされていないオフセットがユーザーに通知されます。スピーカーは、GPU のハードウェア アクセラレーションや AI モデルの最適化など、ONNX ランタイム ライブラリの利点についても説明します。

  • 00:30:00 このセクションでは、スピーカーは ONNX ランタイムの最適化と、それをトレーニングと推論の両方に使用する機能について説明します。 ONNX を使用すると、ゼロから始めることなく、トレーニング プロセスを最適化し、カスタム ハードウェアに対応できます。講演者は、ONNX ランタイムを使用してトレーニング ハードウェアを最適化し、別のハードウェアを推論用に選択できることも確認しました。全体として、講演者は、あらゆるハードウェア環境のモデルを作成およびトレーニングする機能と、ONNX ランタイムの柔軟性を強調しています。

  • 00:35:00 このセクションでは、Azure ML と ONNX ランタイムを使用して、花を分類するためのニューラル ネットワークを作成する方法について話します。彼らは、測定のために標準の S11 マシン内で実行されているアプリケーションを選択することから始めます。次に、会社で一般的に使用されている Tensorflow を使用し、pandas、NumPy、およびその他の前処理ツールを選択します。彼らは、文字列を行列としてエンコードし、トレーニングとテストの間でデータセットを分割することについて議論しています。最後に、顧客のデータ センターで使用できるように、ONNX 形式でエンコードするニューラル ネットワークを作成します。

  • 00:40:00 ビデオのこのセクションでは、講演者が Azure Machine Learning と TensorFlow を使用してニューラル ネットワーク モデルをトレーニングするプロセスを説明します。彼は、モデルのパフォーマンスを評価する前に、モデルをコンパイルして精度を最適化する方法を示しています。モデルがトレーニングされると、彼はモデルを TensorFlow にインポートして顧客用の新しいモデルを作成する方法を示します。顧客にとって簡単にするために、彼は入力仕様を定義し、入力と出力に名前を付けます。また、モデルを顧客に提供する前に、テストのためにモデルを ONNX 形式に変換する利点についても説明しています。

  • 00:45:00 ビデオのこのセクションでは、講演者が Python および .NET 上の Azure ML で ONNX ランタイムを使用する方法を紹介します。 Python で ONNX を 1 回インポートし、プロバイダーを選択して、TensorFlow モデルを無視しながら使用する ONNX ランタイムをロードします。入力を作成し、モデルを実行して出力を取得する前に配列値を入力します。さらに、スピーカーは、Azure で ONNX を直接公開するエンドポイントを作成する方法と、.NET Core のコンソール アプリケーションを使用して IoT デバイスまたはスマートフォンで ONNX を使用する方法を示します。

  • 00:50:00 このセクションでは、主催者が推論の概念を説明します。これは、トレーニング済みのニューラル ネットワークを使用して、これまでにない新しいデータに基づいて結果を予測する機械学習の最終ステップです。また、任意のカスタム テンソル モデルを ONNX ランタイムでサポートされる形式に変換できる ONNX 形式についても説明します。彼らは、モデルの前処理と後処理も ONNX モデル自体にシリアル化できるため、各プラットフォームでの実行が容易になると述べています。ホストは、モデルが読み込まれると、プロセスが異なる言語間で類似していることを示しています。

  • 00:55:00 このセクションでは、スピーカーは ONNX ランタイム用に到着した新しいプロバイダーについて説明し、ARM CPU 用に OpenVINO を使用できるようにし、デバッグを可能にします。講演者はこの力を強調し、モデルがサポートされていて実行可能である場合、コードを変更する必要はなく、常に変換しなくても同じモデルを実行できると述べています。講演者は、モデルのハードウェアを選択することは不可欠ですが、それは ONNX ランタイムが制御するものではなく、モデルを運用化する際の決定ではハードウェア要件を考慮する必要があることに注意しています。さらに、講演者は、クラスターで ONNX ランタイムを使用することが可能であり、推論では、モデルを毎回変換する必要はないと述べています。
On .NET Live - AI Everywhere: Azure ML and ONNX Runtime
On .NET Live - AI Everywhere: Azure ML and ONNX Runtime
  • 2023.03.06
  • www.youtube.com
How can you create and deploy AI models that work across different platforms and environments? On this week’s episode, Mauro Bennici joins the panel to show ...
 

Berlin Buzzwords 2019: Lester Solbakken – 検索における ONNX と TensorFlow モデルの評価のスケーリング



Berlin Buzzwords 2019: Lester Solbakken – 検索における ONNX と TensorFlow モデルの評価のスケーリング

Lester Solbakken が、検索アプリケーションの機械学習をスケーリングする際の課題について説明し、外部モデル サーバーを使用する代わりのソリューションを提案しています。彼は、データを外部モデル サーバーに送信するのではなく、コンテンツ ノードで機械学習モデルを評価して、スケーラビリティを向上させ、レイテンシとスループットを制御することを提案しています。 Solbakken は、Vespa が独自のランキング言語と tensor API 拡張機能を使用して、アプリケーションの状態の宣言型パッケージを簡単に作成できるようにすること、および Vespa で機械学習モデルをサポートするための継続的な取り組みを強調しています。彼は、システム レベルの検索の問題を回避するために、ランキングのさまざまなフェーズ間の相関関係を理解することの重要性を強調し、人々がオープンソース プロジェクトに貢献することを奨励しています。

  • 00:00:00 ビデオのこのセクションでは、Lester Solbakken が、特に検索ベースのアプリケーション向けに機械学習の生産をスケーリングする際の課題について説明しています。彼は、パフォーマンスとスケーラビリティの問題を解決するためにモデル サーバーがますます一般的になってきていることを説明していますが、検索アプリケーションの場合、検索結果ごとにモデルを評価すると、すぐにネットワーク容量のボトルネックにつながります。解決策は、結果の送信データを減らすか、サーバーごとにローカルでモデルを評価する方法を見つけることです。 Solbakken は、これらの問題に対処するために Vespa 検索プラットフォームを使用した彼のチームの取り組みに触れています。

  • 00:05:00 このセクションでは、Lester Solbakken が、検索のための ONNX と TensorFlow モデル評価のスケーリングの課題について説明します。考えられる解決策の 1 つはモデル サーバーに機能を送信することですが、問題は、コンテンツ サーバーとモデル サーバーがさまざまな機能セットに基づいてランキングを評価している可能性があることです。 Solbakken 氏は、コンテンツ サーバーでモデルを評価してより良い結果を達成することを提案しています。これは、Vespa で取り組んできたことです。 Vespa は、世界中で毎秒数十万のクエリで頻繁に使用されており、数百の米国の出版物が実行されており、弾力性、スケーラビリティ、高度な関連スコアリングの能力など、豊富なコア機能を備えています。

  • 00:10:00 このセクションでは、Lester Solbakken が、Vespa が ONNX と TensorFlow を統合して、アプリケーションの状態の宣言型パッケージを簡単に作成できるようにし、機械学習モデルを使いやすくする方法について説明します。 Vespa は独自のランキング言語を使用してこれらのモデルを実行し、テンソル API 拡張機能は、さまざまな種類の計算を表すことができるコア機能の小さなセットを提供します。この利点は、さまざまなソースからのさまざまなモデルをこの形式に変換できるため、最適化が容易になることです。 Solbakken はまた、データの送信は効率的ではないという仮説をテストするために設定したベンチマークを強調し、最初のフェーズでドット積を使用し、2 番目のフェーズでニューラル ネットワークを使用したブログ レコメンデーション システムをエミュレートしました。

  • 00:15:00 このセクションでは、スピーカーは、検索における機械学習の外部モデル サーバーのスケーラビリティの制限について説明し、代替ソリューションを提案します。彼は、コンテンツ ノードを追加してワークロードを分散させると、レイテンシが改善される可能性があると説明し、これらのノードでより多くのドキュメントを書き換えることで、機械学習モデルを使用して結果の数を増やすことができ、より高品質の結果が得られる可能性があることを示唆しています。評価がコンテンツ ノードで行われ、ネットワーク経由でプッシュされるだけでなく、マルチフェーズ ランキングを通じて、レイテンシとスループットをスケーリングおよび制御することができます。スピーカーは、外部モデル サーバーはスケーリングに適したソリューションではないと結論付けており、代わりにコンテンツ ノードで評価することの重要性を強調しています。

  • 00:20:00 このセクションでは、Lester Solbakken が、Vespa のマルチフェーズ ランキングと、システム レベルの検索の問題を回避するために異なるフェーズ間の相関関係を理解することの重要性について話します。彼はまた、機械学習と Vespa でのモデルのサポートは継続的な取り組みであり、人々がオープンソース プロジェクトに貢献することを奨励していると述べています。 Vespa をいじってみたい方は、Vespa AI ホームページで、サンプル アプリケーション、ユース ケース、チュートリアルなど、多くのリソースを見つけることができます。
Berlin Buzzwords 2019: Lester Solbakken – Scaling ONNX and TensorFlow model evaluation in search
Berlin Buzzwords 2019: Lester Solbakken – Scaling ONNX and TensorFlow model evaluation in search
  • 2019.06.20
  • www.youtube.com
With the advances in deep learning and the corresponding increase in machine learning frameworks in recent years, a new class of software has emerged: model ...
 

ONNXを同化する



ONNXを同化する

このビデオでは、プレゼンターは、すべての異なるプラットフォームで機能する機械学習の相互運用性のオープン スタンダードとして ONNX を紹介します。彼らは、ONNX プロジェクトをゼロから作成し、Microsoft リポジトリの例を微調整し、問題をトラブルシューティングし、他の ONNX 関連の Github プロジェクトを探索するプロセスを実行します。次に、GPT2 と CUDA を使用して ONNX バインディングをテストし、将来的に ONNX ランタイム Rust バインディングを調査することに関心を示しています。プレゼンターは、ONNX の多用途性と移植性に注目し、実験や将来的により重要なプロジェクトを構築するための優れたツールと見なしています。

  • 00:00:00 このセクションでは、講演者は ONNX を紹介します。これは、クラウド サービスでの推論にさまざまなフレームワークとアクセラレータを使用できる、機械学習の相互運用性のオープン スタンダードです。彼らは、クロスプラットフォームの高性能 ML 推論およびトレーニング アクセラレータを備えた ONNX ランタイムの安全なラッパーの可用性について言及しています。また、ONNX はすべての異なるプラットフォームで動作するため、ONNX に関連する移植性も強調し、Microsoft Branch の例を使用して新しい ONNX プロジェクトをゼロから作成する方法を示します。講演者は、ONNX が積極的に取り組んでおり、継続的に統合されているため、機械学習をいじるのに適したツールを提供していると述べています。

  • 00:05:00 ビデオのこのセクションでは、プレゼンターが ONNX Web サイトに移動して最新バージョンを取得し、ONNX ランタイムを作成します。また、Microsoft リポジトリから例をコピーして微調整し、makefile を追加する方法も示しています。さらに、トレース サブスクライバーと gbt をコードに統合し、squeeze ネット モデルを追加します。プレゼンターはいくつかのエラーに遭遇しますが、前の例をチェックし、正しいモデルが利用可能であることを確認することで解決します。

  • 00:10:00 このセクションでは、スピーカーは、ONNX の特定のバージョンを使用しようとしているが、エラーが発生しているという問題のトラブルシューティングを行っています。彼らは、動作する例をコピーしてプロジェクトを再構築するなど、問題を修正するためにさまざまな方法を試みますが、どれもうまくいかないようです。最終的に、目的のバージョンで動作する ONNX ドキュメントの古い例を見つけます。彼らはモデルを交換し、プログラムを正常にコンパイルして実行することができます。全体として、このセクションでは、依存関係を徹底的にチェックし、デバッグ時にさまざまなソリューションを試すことの重要性を強調しています。

  • 00:15:00 ビデオのこのセクションでは、スピーカーは、基本的な「Hello world」ONNX の例の制限について説明し、画像を読み込んで操作する例を用意する方が便利だと示唆しています。彼らは、Rust Code Search や Track ONNX など、より高度な機能を持つ ONNX 関連の Github プロジェクトを強調し、それらを試すことに関心を示しています。さらに、CUDA で GPT2 モデルを使用できるようにする GPT-RS プロジェクトを調査し、画像データの操作にどのように使用できるかを説明します。

  • 00:20:00 このセクションでは、ユーザーは GPT2 と CUDA を使用して ONNX バインディングをテストし、コード補完またはテキスト補完のテスト出力を生成します。ユーザーは、この例が有望であることに気づき、将来的に ONNX ランタイム Rust バインディングをさらに調査することに関心を示しています。彼らは自分たちの経験を興味深い実験としてまとめ、ONNX を使った次の試みでより実質的なものを構築したいという願望を表明しています。
Assimilate Onnx
Assimilate Onnx
  • 2023.03.27
  • www.youtube.com
Assimilate OnnxLearn #onnx for #mlopsGitHub Repo: https://github.com/nogibjj/assimilate-onnxWatch on @oreilly: YouTube Playlist: Hashtags: #learnonnx, #m...
 

HITNET対。 ACVNet ニューラル ステレオ深度推定の比較 (ONNX)



HITNET対。 ACVNet ニューラル ステレオ深度推定の比較 (ONNX)

Driving Stereo データセットにおける HITNET と ACVNet のステレオ深度推定モデルの比較。

モデル推論の詳細 (NVIDIA 1660 SUPER):
ヒットネット (640X480): 220ms
ACVNet (640x384): 480 ミリ秒
参考文献:[HITNET推論] https://github.com/ibaiGorordo/ONNX-HITNET-Stereo-Depth-estimation
[ACVNet 推論] https://github.com/ibaiGorordo/ONNX-ACVNet-Stereo-Depth-Estimation
[ドライビングステレオデータセット] https://drivingstereo-dataset.github.io/

HITNET Vs. ACVNet Neural Stereo Depth Estimation Comparison (ONNX)
HITNET Vs. ACVNet Neural Stereo Depth Estimation Comparison (ONNX)
  • 2022.03.26
  • www.youtube.com
Comparison of the HITNET and ACVNet stereo depth estimation models in the Driving Stereo dataset.Model Inference details (NVIDIA 1660 SUPER):HITNET (640X480)...
 

NVIDIA TAO Toolkit を使用して ONNX モデルをインポート、トレーニング、最適化する



NVIDIA TAO Toolkit を使用して ONNX モデルをインポート、トレーニング、最適化する

このビデオでは、NVIDIA TAO Toolkit を使用して ONNX モデルをインポート、トレーニング、および最適化する方法を紹介しています。まず、トレーニング済みの ResNet18 モデルをダウンロードし、Pascal VOC データセットで TAO を使用して微調整し、モデルをインポートして ONNX グラフを視覚化する手順を示します。トレーニングの進行状況は TensorBoard の視覚化を使用して監視でき、ONNX 変換エラーの場合はカスタム レイヤーを使用できます。このビデオでは、損失の減少を観察し、損失を検証し、重みとバイアスを分析することによって、モデルのパフォーマンスを評価する方法についても説明しています。ユーザーは、テスト データセットとサンプル画像でモデルの精度を評価し、刈り込みと最適化を続けてさらに改善することができます。

  • 00:00:00 このセクションのビデオでは、NVIDIA TAO Toolkit を使用して ONNX モデルをインポート、トレーニング、最適化する方法を説明しています。このビデオは、トレーニング済みの ResNet18 モデルをダウンロードすることから始まります。このモデルは、TAO を使用して Pascal VOC データセットで微調整されます。 ONNX モデルをインポートして ONNX グラフを視覚化する手順についても説明します。さらに、このビデオでは、TensorBoard の視覚化を使用してトレーニング ジョブの進行状況を監視する方法について説明しています。最後に、このビデオでは、TAO がカスタム レイヤーを処理できることに言及し、それらを使用して変換に失敗したモデルをインポートする方法についてのガイダンスを提供します。

  • 00:05:00 このセクションでは、スピーカーはトレーニング済みモデルのパフォーマンスを評価する方法について説明します。ユーザーは損失の減少を見て、モデルが改善されていることを確認できます。さらに、検証の損失は、過剰適合を識別するのに役立ちます。上級ユーザーは、グラフとヒストグラムを表示して、モデルの重みとバイアスを理解できます。講演者は、テスト データセットでモデルの全体的な精度を確認する方法と、サンプル画像でモデルのパフォーマンスを評価する方法を実演します。モデルには改善の余地があり、ユーザーはモデルの刈り込みと最適化を続行して精度をさらに高めることができます。
Import, Train, and Optimize ONNX Models with NVIDIA TAO Toolkit
Import, Train, and Optimize ONNX Models with NVIDIA TAO Toolkit
  • 2022.05.19
  • www.youtube.com
The #NVIDIATAO Toolkit, built on TensorFlow and PyTorch, is a low-code AI solution that lets developers create custom AI models using the power of transfer l...
理由: