Lernen mit ONNX für den Handel - Seite 13

 
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
 

Gesichtserkennung mit C# und OpenCVSharp - Praktische ML.NET-Benutzergruppe 19.01.2022



Gesichtserkennung mit C# und OpenCVSharp - Praktische ML.NET-Benutzergruppe 19.01.2022

Das Video-Tutorial zur Gesichtserkennung mit OpenCVSharp in C# begann damit, dass der Referent die OpenCVSharp-Bibliothek vorstellte, eine Open-Source-Bibliothek für Computer-Vision-Aufgaben mit einem .NET-Wrapper. In dem Video wurde die Verwendung verschiedener Klassifikatoren zur Erkennung, einschließlich für Augen, und die Bedeutung des Experimentierens bei der Auswahl von Klassifikatoren erörtert. Das Tutorial unterstützte den Zuhörer beim Erstellen eines Programms zur Gesichts- und Augenerkennung mithilfe von Webcams mit Hilfe von Codeschnipseln, Visual Studio und interaktiven .NET-Notebooks. Verschiedene Aspekte, darunter das Überlagern von transparenten Bildern und der richtige Umgang mit Mattenobjekten, wurden ebenfalls ausgearbeitet. Der Redner würdigte die Benutzerfreundlichkeit, Geschwindigkeit und Kompatibilität von OpenCVSharp mit .NET, wies aber auch auf das Fehlen von Beispielen und den unsicheren langfristigen Support hin.

  • 00:00:00 In diesem Abschnitt führt der Referent in das Thema Gesichtserkennung mit OpenCVSharp in C# ein und gibt einen kurzen Überblick darüber, was OpenCVSharp ist, ein .NET-Wrapper für OpenCV, eine Open-Source-Bibliothek für Computer-Vision-Aufgaben. Der Referent erörtert die verschiedenen Funktionen von OpenCVSharp, einschließlich Bildmanipulation, Gesichtserkennung und Gesichtserkennungsmodelle. Der Referent merkt auch an, dass es zwar nicht viele C#-Beispiele für OpenCVSharp gibt, aber viele Python-Beispiele, die aufgrund der Ähnlichkeiten in den APIs leicht in C# konvertiert werden können. Der Referent listet dann einige Beispiele auf, wie bestimmte Aufgaben sowohl in Python als auch in C# mit OpenCVSharp ausgeführt werden können.

  • 00:05:00 In diesem Abschnitt erörtert der Referent die verschiedenen Varianten von OpenCVSharp und die Wichtigkeit, verwaltete Bibliotheken mit nativen Bindungsbibliotheken zu paaren. Anschließend demonstrieren sie einige Beispiele mit Visual Studio Code und interaktiven .NET-Notebooks, laden NuGet-Pakete und verwenden die Hard-Cascade-XML-Dateien zur Durchführung der Gesichtserkennung. Der Code führt durch das Einbringen der harten Kaskadenklassifikatoren und verwendet sie, um Gesichter zu erkennen und Kästchen um sie herum in Bildern zu zeichnen.

  • 00:10:00 In diesem Abschnitt erklärt der Moderator, wie wichtig die ordnungsgemäße Handhabung und Entsorgung von „Mattenobjekten“ in OpenCVSharp ist, um potenzielle Speicherlecks zu vermeiden. Sie demonstrieren, wie man ein Quellbild einlädt und ein neues leeres „graues Bild“ für die Gesichtserkennung erstellt, da der Klassifikator am besten mit Schwarzweißbildern funktioniert. Anschließend erklären sie, wie man „cb2 equalized histogram“ verwendet, um die Helligkeit und den Kontrast des Bildes zu normalisieren, was zu einer verbesserten Kaskadenklassifikation führt. Der Referent erörtert auch, wie Mindestgrößenanforderungen für die Gesichtserkennung verwendet werden können, um Fehlalarme und Artefakte zu vermeiden. Schließlich zeigen sie, wie man „cv2-Rechteck“ verwendet, um ein Kästchen um erkannte Gesichter zu ziehen und ein Fenster zu öffnen, um das resultierende Bild anzuzeigen, wobei die Gewichtstaste als Möglichkeit für den Benutzer verwendet wird, das Fenster zu schließen.

  • 00:15:00 In diesem Abschnitt des Videos erläutert der Sprecher, dass er nicht erwartet, dass ein Gewichtsschlüssel eingeht, da er ihn nicht benötigt, um ein statisches Bild anzuzeigen. Es wird jedoch mehr ins Spiel kommen, wenn sie sich die Webcam-Demo ansehen. Sie beantworten auch eine Frage zu Standard-Namespaces und erklären weiter, wie sie nicht nur das Gesicht, sondern auch die Augen im Gesicht erkennen werden. Sie besprechen das Einbringen von zwei Kaskadendateien – der frontalen Gesichts- und der Augenkaskade – und wie sie die Gesichtsrechtecke durchlaufen, um zu versuchen, eine zusätzliche Erkennung der Augen durchzuführen. Sie erklären den Prozess, der zum Erstellen einer Region of Interest (ROI) und zum Zeichnen eines Rechtecks um das Gesicht gehört.

  • 00:20:00 In diesem Abschnitt geht der Kursleiter durch den Prozess der Erkennung von Augen in einem Gesichtsbild mit verschachtelten Kaskaden in OpenCVSharp. Sie nehmen den zuvor erkannten interessierenden Gesichtsbereich, wandeln ihn in Grau um und wenden dann eine verschachtelte Kaskade speziell zur Erkennung von Augen an. Auf diese Weise können sie Kreise um die erkannten Augen ziehen, wobei der Mittelpunkt des Kreises der Ort der erkannten Augen ist. Sie stellen fest, dass die Größe der erkannten Augen kleiner sein sollte als die Größe des erkannten Gesichts, und passen durch einige Versuche und Irrtümer die Parameter der verschachtelten Kaskade an, um Augen in unterschiedlich großen Gesichtern besser zu erkennen. Insgesamt ist der Prozess zwar nicht perfekt, aber in den meisten Fällen effektiv bei der Erkennung von Augen.

  • 00:25:00 In diesem Abschnitt erörtert der Referent verschiedene Klassifikatoren, die für die Gesichtserkennung verwendet werden können, und die Notwendigkeit von Experimenten, um festzustellen, welcher Klassifikator für bestimmte Situationen am besten geeignet ist. Der Redner erkennt auch an, dass es Artefakte im Erkennungsprozess geben kann, und schlägt vor, Logik zu verwenden, um sie zu entfernen, wenn der Prozess produktiv wird. Der Redner fährt dann fort, um die Verwendung von Webcams zu diskutieren und wie der Code für die Webcam-Gesichts- und Augenerkennung den vorherigen Beispielen ähnelt, mit dem einzigen Unterschied, dass die Videoaufnahme und die Erstellung eines Fensterobjekts eingeführt wurden. Schließlich wird hervorgehoben, wie wichtig es ist, zwischen den Bildern eine Millisekunde zu warten, um zu sehen, ob eine Taste gedrückt wird, da dies die in der Webcam erfassten Bilder pro Sekunde stark beeinflusst.

  • 00:30:00 In diesem Abschnitt demonstriert der Moderator die Gesichtserkennungsfunktion in OpenCVSharp mit C#. Der Code erfasst Webcam-Daten und erkennt das Gesicht der Person, indem er einen Rahmen darum legt. Der Moderator erklärt den Gewichtsschlüssel, ein Unterscheidungsmerkmal von OpenCVSharp, das enthalten sein muss, damit das Fenster ein Bild anzeigt. Anschließend beantworten sie eine Frage, wann die Weight-Key-Methode ausgeführt wird, und beschreiben, wie sie verwendet wird. Der Abschnitt enthält auch ein Beispiel für das Hinzufügen von Frames pro Sekunde zum Webcam-Datenerfassungscode. Der Moderator weist darauf hin, wie wichtig es ist, den Gewichtsschlüssel einzuschließen, da es zu Problemen führen kann, wenn er vergessen wird, und demonstriert, wie alle Fenster im Code zerstört werden.

  • 00:35:00 In diesem Abschnitt erläutert der Moderator, wie er mithilfe von C# und OpenCVSharp Text auf dem Bildschirm anzeigen und die Farbe steuern kann. Sie erklären, wie sie eine Farbe für den Rahmen um Gesichter und Augen definieren, und definieren eine andere Farbe namens FPS-Farbe, die rot ist, wenn die Bildrate weniger als 20 Bilder pro Sekunde beträgt, und grün, wenn sie größer oder gleich 20 ist. Sie demonstrieren Sie auch die Auswirkung der Verzögerung im Gewichtsschlüssel und wie sie sich auf die Bildraten auswirkt. Sie erwähnen, dass sie mit all den Variablen, die darin einfließen, glücklich sind, wenn sie 20 oder mehr Bilder pro Sekunde erreichen können, was es ihnen ermöglicht, ihre Ziele für den Moment zu erreichen.

  • 00:40:00 In diesem Abschnitt zeigt der Moderator, wie Bilder überlagert werden, und erklärt, wie wichtig es ist, IamReadModes unverändert zu verwenden, um das Transparenzelement eines Bilds beizubehalten. Sie verwenden Sonnenbrillen als Beispiel und geben zu, dass der Code nicht optimiert ist, da sie nicht die Zeit hatten, alles perfekt zu machen. Sie betrügen auch, indem sie die Koordinaten fest codieren, wo die Sonnenbrille landen soll, anstatt die x- und y-Koordinaten des Gesichtsrechtecks zu verwenden. Der Moderator erklärt, dass man in realen Szenarien x- und y-Koordinaten an die MakeOverlay-Methode übergeben müsste, um zu wissen, wo die Überlagerung platziert werden soll. Außerdem erwähnen sie die Resize-Methode, die verwendet werden müsste, um die Größe des Overlay-Bildes basierend auf der Größe des Rechtecks zu ändern, aber dies ist in ihrem Betrugsbeispiel nicht notwendig.

  • 00:45:00 In diesem Abschnitt erläutert der Sprecher den Vorgang des Zusammenführens eines transparenten Overlay-Bildes mit einem Basisbild. Zuerst wird das transparente Überlagerungsbild in RGB konvertiert, während der transparente Kanal beibehalten wird. Dann werden die RGB-Kanäle aus dem ursprünglichen Overlay extrahiert und zu einer neuen Karte zusammengeführt. Danach wird der Transparenzkanal mit der neuen Karte zusammengeführt, indem er dreimal in eine neue Karte mit dem Namen "Overlay Alpha 3-Kanal" dupliziert und eine bitweise Operation durchgeführt wird. Schließlich wird der interessierende Bereich definiert, in dem die Sonnenbrille platziert wird, und das Gesichtsrechteck wird extrahiert, um als der interessierende Gesichtsbereich zum Zusammenführen der Sonnenbrille zu dienen.

  • 00:50:00 In diesem Abschnitt erklärt der Sprecher kurz, wie mit OpenCVSharp einem erkannten Gesicht eine Sonnenbrille hinzugefügt wird. Sie verwenden bitweise Operationen, um die Sonnenbrille auf dem erkannten Gesicht zu platzieren, die Transparenz aufrechtzuerhalten und das Gesicht wieder an seiner ursprünglichen Position zu platzieren. Der Referent hebt auch einige Vor- und Nachteile von OpenCVSharp hervor, wie die Benutzerfreundlichkeit, Geschwindigkeit und Kompatibilität mit .NET, aber das Fehlen von Beispielen und die unsichere langfristige Unterstützung. Der Redner stellt verschiedene Ressourcen bereit und ermutigt Benutzer, das OpenCVSharp-Projekt auf GitHub zu sponsern. Ein Teilnehmer fragt, ob OpenCVSharp auf einem Mikrocontroller wie Raspberry Pi laufen kann, und der Sprecher antwortet, dass dies mit der Linux-Arm-Variante möglich sein sollte.
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...
 

Vorhersage auf einem Custom Vision ONNX-Modell mit ML.NET



Vorhersage auf einem Custom Vision ONNX-Modell mit ML.NET

In diesem YouTube-Video erörtert der Moderator die Verwendung von ML.NET zur Vorhersage eines benutzerdefinierten Vision-ONNX-Modells. Dazu muss das Modell aus dem benutzerdefinierten Vision-Dienst exportiert und in das ML.NET-Projekt importiert werden. Die Implementierung umfasst das Ändern der Größe von Bildern, das Extrahieren von Bildpixeln, das Erstellen eines Datenkontexts und einer leeren Datenliste zum Laden der Bilddaten, das Verwenden des ML.NET-Frameworks zum Treffen von Vorhersagen für das Modell und das Ausgeben der Ergebnisse. Das Video zeigt auch, wie man den Ausgabenamen eines Modells mit einem Tool namens Neuron erhält und wie man Begrenzungsrahmeninformationen aus dem Modell für ein bestimmtes Testbild erhält. Der Moderator zeigt auch, wie Sie ein Rechteck um den Begrenzungsrahmen zeichnen und die vorhergesagten Bezeichnungen mithilfe der Grafik-API anzeigen. Als wichtigster Teil der Implementierung wird die Implementierung des ONNX-Modells unter Verwendung der ML.NET-API und der Größenanpassung von Bildern hervorgehoben.

  • 00:00:00 Wir werden das ML.NET-Framework verwenden, um auf einem benutzerdefinierten Vision-ONNX-Modell Vorhersagen zu treffen. Dazu müssen wir zunächst das Modell aus dem Custom Vision Service exportieren und in unser ML.NET-Projekt importieren. Sobald sich das Modell in unserem Projekt befindet, können wir eine Pipeline erstellen, die die Größe der Bilder ändert und die Bildpixel extrahiert, bevor die Vorhersage für das Modell getroffen wird. Dazu müssen wir mehrere NuGet-Pakete herunterladen und zu unserem Projekt hinzufügen sowie einen neuen Datenkontext und eine leere Datenliste erstellen, um die Bilddaten zu laden. Schließlich verwenden wir das ML.NET-Framework, um Vorhersagen für das Modell zu treffen und die Ergebnisse auszugeben.

  • 00:05:00 In diesem Abschnitt erläutert der Redner die Verwendung eines Tools namens Neuron, um den Ausgabenamen eines von Custom Vision heruntergeladenen Modells abzurufen. Neuron ist eine kleine Desktop-App, die Informationen zu einem Modell bereitstellt, einschließlich Eingaben und Ausgaben. Sobald der Ausgabename abgerufen wurde, kann er beim Aufrufen der Transformation zum Anwenden des Modells als Ausgabespaltenname verwendet werden. Der Referent demonstriert auch, wie man eine Vorhersage-Engine erstellt und Hilfsmethoden verwendet, um Begrenzungsrahmeninformationen aus dem Modell für ein bestimmtes Testbild zu erhalten.

  • 00:10:00 In diesem Abschnitt fährt der Referent mit der Implementierung des Objekterkennungsmodells fort, indem er demonstriert, wie man die Begrenzungsrahmen erhält, ein Rechteck darum zeichnet und die vorhergesagten Bezeichnungen für die Bilder mithilfe der Grafik-API anzeigt. Das maximale Vertrauen wird erhalten, um den oberen Begrenzungsrahmen zu erhalten, wobei nur ein Begrenzungsrahmen mit dem maximalen Vertrauen berücksichtigt wird. Der Code verwendet auch Hilfsmethoden, um das Rechteck zu zeichnen, und die Zeichenfolge der Beschreibung wird zurückgegeben, um den Konfidenzprozentsatz anzugeben. Schließlich wird das Testbild zur späteren Bezugnahme im Dateisystem gespeichert. Der Referent betont, dass der größte Teil der Implementierung die Größenänderung von Bildern und die Anwendung des ONNX-Modells mithilfe der ML.NET-API ist.
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...
 

Mit ONNX neuronale Netze portabel machen



Mit ONNX neuronale Netze portabel machen

In diesem YouTube-Video erklärt Ron Dagdag, wie man neuronale Netze mit ONNX portabel macht, wobei er sich auf die Inferenzseite des maschinellen Lernens konzentriert. ONNX ist ein Open-Source-Framework, das die Portabilität von Modellen für maschinelles Lernen über verschiedene Verarbeitungseinheiten und Geräte hinweg ermöglicht. Der Referent erörtert den Prozess der Konvertierung von Modellen in ONNX, die Bereitstellung und Integration des Modells in Anwendungen und seine Verwendung für die Cloud- und Edge-Bereitstellung. Sie demonstrieren auch, wie man ein ONNX-Modell in Node.js lädt und Bildklassifizierungsmodelle mithilfe von ONNX Runtime in Web- und mobile Anwendungen integriert. ONNX-Modelle sind ein offener Standard, der aus verschiedenen Frameworks erstellt werden kann, um effizient auf der Zielplattform bereitgestellt zu werden.

  • 00:00:00 In diesem Abschnitt stellt Ron Dagdag das Konzept vor, neuronale Netze über ONNX portierbar zu machen, wobei er sich auf die Inferenzseite des maschinellen Lernens konzentriert. Er erklärt den typischen Prozess des Programmierens im Vergleich zum maschinellen Lernen und die Notwendigkeit von Trainingsdaten, einem Trainingsframework, einem Modell und einer Inferenzlaufzeit, um Algorithmen zu erstellen. Er erwähnt auch, dass der Schwerpunkt der Präsentation auf der Inferenzseite liegen wird, bei der ONNX verwendet wird, um das Modell in eine Anwendung zu integrieren.

  • 00:05:00 In diesem Abschnitt stellt der Referent ONNX als Framework vor, das die Portabilität von Modellen für maschinelles Lernen über verschiedene Verarbeitungseinheiten wie CPUs, GPUs und FPGAs sowie verschiedene Geräte wie die Cloud oder das IoT ermöglicht. Sie vergleichen es mit einem PDF, da es ein Format ist, das überall konsumiert werden kann und Open Source auf GitHub ist, nachdem es über 11.000 Sterne und 200 Mitwirkende gesammelt hat. Der Referent empfiehlt die Verwendung von ONNX, wenn es um in Python trainierte Modelle geht, die mit anderen Anwendungen bereitgestellt werden müssen oder eine hohe Inferenzlatenz erfordern, wie z. B. die Ausführung auf Edge-Geräten wie Azure Percept.

  • 00:10:00 In diesem Abschnitt erörtert der Referent Szenarien, in denen es notwendig wird, eine auf einem bestimmten Betriebssystem (OS) oder einer bestimmten Hardware programmierte Anwendung zu konvertieren, damit sie auf einem anderen Betriebssystem oder einer anderen Hardware ausgeführt werden kann. Die Lösung besteht darin, das Programm in das ONNX-Format zu konvertieren. ONNX wird verwendet, wenn Modelle ausgeführt werden, die aus verschiedenen Frameworks erstellt wurden, und wenn das Training zu lange dauert. Der Redner geht dann auf vier Möglichkeiten ein, um ein ONNX-Modell zu erhalten, von denen die erste der ONNX-Modellzoo auf GitHub ist. Darauf folgt ein benutzerdefinierter Vision-Service, der aus einem vorhandenen Modell konvertiert und mit Azure Machine Learning oder automatisiertem Machine Learning trainiert wird.

  • 00:15:00 In diesem Abschnitt erläutert der Referent den Prozess der Konvertierung von Modellen in ONNX. Der Prozess ist nicht auf in Python geschriebene Modelle beschränkt und kann auch mit ML.NET durchgeführt werden. Der Referent demonstriert, wie ein ML.NET-Modell konvertiert und dann in ONNX gespeichert wird. Es sind viele Modelle verfügbar, die in ONNX konvertiert wurden, darunter Bildklassifizierungs- und Objekterkennungsmodelle. Custom Vision Service kann auch verwendet werden, um Bilder hochzuladen und sie mit Tags zu versehen, um verschiedene Arten von Objekten zu klassifizieren. GitHub bietet eine App namens Netron, mit der Softwareingenieure visualisieren können, wie ein ONNX-Modell aussieht, einschließlich seiner Eingabe und Ausgabe. Der Referent erklärt, dass man auch ein ONNX-Modell generieren kann, indem man es aus PyTorch oder TensorFlow konvertiert.

  • 00:20:00 In diesem Abschnitt demonstriert der Referent, wie ein Regressionsmodell generiert und in ONNX exportiert wird, ein Open-Source-Format, das Portabilität bei der Verwendung verschiedener Frameworks für maschinelles Lernen ermöglicht. Mit C# und ml.net lädt der Referent Gehaltsdaten in einen Datenrahmen und trainiert ein Regressionsmodell, wobei er die Label-Spalte und die Eingabe (Jahre Erfahrung) über eine Pipeline spezifiziert. Nach der Bewertung des Modells konvertieren sie es in ONNX, indem sie das Modell, die Beispieldaten und den Stream an den Kontext übergeben, was zu einer Datei führt, die mit Netron angezeigt werden kann. Der Referent merkt an, dass ONNX auch als Zwischenformat verwendet werden kann, um maschinelle Lernmodelle zwischen Frameworks wie PyTorch und TensorFlow zu konvertieren.

  • 00:25:00 In diesem Abschnitt erläutert der Referent den Prozess der Bereitstellung und Integration eines ONNX-Modells in eine Anwendung. Das Konvertieren von Modellen in ONNX ermöglicht die Kompatibilität zwischen verschiedenen Frameworks, und Benutzer können ONNX-Modelle auch zum Transferlernen und zur Feinabstimmung verwenden. Der Referent betont die Bedeutung der Versionierung und einer Modellregistrierung, genau wie eine Containerregistrierung, für eine einfache Nachverfolgung und Bereitstellung. Darüber hinaus hebt der Redner die unterschiedlichen Fähigkeiten hervor, die für Datenwissenschaftler erforderlich sind, um das „Rezept“ zu erstellen, im Vergleich zu denen, die für Ingenieure erforderlich sind, die eine „Bäckerei“ gründen und KI in Anwendungen integrieren. Der Vortrag behandelt verschiedene Frameworks und Plattformen, die die Bereitstellung von ONNX-Modellen unterstützen, wie z. B. Azure Machine Learning, Ubuntu oder Windows Server und IoT-Edge-Geräte.

  • 00:30:00 In diesem Abschnitt erörtert der Referent die Bereitstellung von Modellen für maschinelles Lernen, die sowohl die Cloud- als auch die Edge-Bereitstellung abdecken. Laut dem Redner geht es beim Edge-Einsatz darum, wie nah die Datenverarbeitung an den Benutzern ist, und sie ist viel näher als die Cloud. Das Ausführen von KI am Rand ist ideal für geringe Latenz und Kosteneinsparung, da es Daten lokal verarbeiten kann, ohne sie in die Cloud hochzuladen. Darüber hinaus ist die lokale Ausführung flexibler und kann die Einhaltung der Datenschutzbestimmungen gewährleisten, was besonders wichtig ist, wenn es um Regeln geht, die das Teilen von Bildern außerhalb des Netzwerks verbieten. Um die Bereitstellung von Modellen für maschinelles Lernen am Rand zu erleichtern, hat Microsoft eine Open-Source-ONNX-Laufzeitumgebung entwickelt, die nicht nur neuronale Netze, sondern auch herkömmliche Spezifikationen für maschinelles Lernen unterstützt, Hochleistungsinferenzen durchführen kann und über eine erweiterbare Architektur für Hardwarebeschleuniger verfügt.

  • 00:35:00 In diesem Abschnitt erörtert der Referent, wie man neuronale Netze mit ONNX portabel macht. Die ONNX-Laufzeit ermöglicht es Benutzern, Modelle auf verschiedenen Verarbeitungseinheiten auszuführen, einschließlich GPUs, CPUs und VPUs, und kann auf verschiedenen Plattformen wie Windows, Webbrowsern, Node.js und React Native-Anwendungen verwendet werden. Der Referent zeigt in einer Demo, wie man ein ONNX-Modell in eine Node.js-Anwendung lädt und Eingabewerte übergibt, um die gewünschte Ausgabe zu erhalten. Durch die Verwendung von ONNX Runtime können Entwickler Modelle für maschinelles Lernen einfach in ihre Anwendungen integrieren, ohne sich Gedanken über die Hardwarekompatibilität machen zu müssen.

  • 00:40:00 In diesem Abschnitt behandelt das Video ONNX Runtime Web, eine JavaScript-Bibliothek, die für die Ausführung von ONNX-Modellen direkt in einem Browser mit optimierten WebAssembly- und WebGL-Technologien entwickelt wurde. Diese Methode der Inferenz im Browser ist schneller, sicherer und billiger und ermöglicht auch die Offline-Nutzung. Es ist jedoch möglicherweise nicht effizient für größere Modelle, die bestimmte Hardwarespezifikationen erfordern, und kann zu längeren Downloadzeiten führen. Das Video bietet ein Beispiel für die Verwendung von ONNX Runtime Web zur Analyse eines Bildes eines weinenden Babys und zeigt, wie das Modell in eine HTML-Datei integriert und mit der Laufzeit ausgeführt wird.

  • 00:45:00 In diesem Abschnitt des Videos demonstriert der Moderator, wie der ONNX-Modellzoo und das ONNX-Laufzeitweb verwendet werden, um ein Bildklassifizierungsmodell in eine Webanwendung zu integrieren. Er lädt ein Bild in die Web-App hoch, ändert die Größe und konvertiert es in Graustufen und einen Tensor, um es für das vortrainierte Modell vorzubereiten. Unter Verwendung des ONNX-Laufzeitwebs wird das Modell geladen und mit dem verarbeiteten Bild gespeist, was zu einer Vorhersage für die im Bild ausgedrückte Emotion führt. Der Moderator demonstriert dann das Scoring eines vortrainierten ONNX-Modells in einer React Native-App.

  • 00:50:00 In diesem Abschnitt erörtert der Referent die Verwendung von ONNX Runtime Mobile als leichtgewichtige Inferenzlösung zum Ausführen optimierter ONNX-Modelle auf Android- und iOS-Plattformen. Um ONNX Runtime Mobile in die Anwendung zu integrieren, kann man npm install ONNX Runtime React Native verwenden, wodurch die Binärgröße auf ein voroptimiertes ONNX-Modell namens Ort-Format minimiert wird. Das unter onnxruntime.ai verfügbare Tutorial erklärt Schritt für Schritt, wie ONNX-Modelle mithilfe verschiedener Plattformen wie Node, Webbrowser, React Mobile usw. bereitgestellt werden. Die Kompatibilitätstabelle zeigt, dass Chrome Webassembly und webGL unter Windows 10, macOS und Ubuntu unterstützt , iOS und Android. ONNX-Modelle sind ein offener Standard, der aus verschiedenen Frameworks erstellt werden kann, um ihn mit den richtigen Tools effizient auf der Zielplattform bereitzustellen.
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
 

Auf .NET Live – AI Everywhere: Azure ML und ONNX Runtime



Auf .NET Live – AI Everywhere: Azure ML und ONNX Runtime

Das Video „On .NET Live – AI Everywhere: Azure ML and ONNX Runtime“ konzentriert sich auf die Verwendung von Azure ML und ONNX Runtime für maschinelles Lernen mit C#. Die Referenten diskutieren die Vorteile der Verwendung des ONNX-Formats für den Export von Modellen in Programmiersprachen, die Optimierung der ONNX-Laufzeit für Hardwarebeschleunigung und Inferenz sowie ihre Kompatibilität mit bestimmten Versionen des Frameworks. Sie zeigen auch, wie Sie ONNX Runtime mit Azure ML in Python und .NET verwenden, ein neuronales Netzwerkmodell erstellen und trainieren und die Inferenz und ihren letzten Schritt beim maschinellen Lernen erklären. Das Video endet mit der Einführung eines neuen Anbieters für die ONNX-Laufzeit, der die Verwendung von OpenVINO für die ARM-CPU ermöglicht und Debugging-Funktionen bereitstellt.

In diesem Abschnitt des Videos diskutieren die Gastgeber die Flexibilität und Konfigurierbarkeit der ONNX-Laufzeit und ihre Fähigkeit, auf verschiedenen Hardware- und Softwareplattformen ausgeführt zu werden. Die ONNX-Laufzeit wird als großartiger Wrapper für verschiedene Plattformen angesehen, da Kunden sie auf einer Cloud, Android, iOS oder der Snapdragon-CPU verwenden können und schnellere Rückschlüsse ermöglichen.

  • 00:00:00 In diesem Abschnitt stellen die Gastgeber den Gast vor, Maro Benici, einen italienischen .NET-Entwickler mit Erfahrung in künstlicher Intelligenz (KI). Die Episode konzentriert sich auf die Verwendung von Azure ML und ONNX Runtime mit C#, um das Studium des maschinellen Lernens fortzusetzen. Im zugehörigen Bits-Segment diskutieren sie ein Dokument auf der Azure Machine Learning-Website über das Erstellen von Vorhersagen mit AutoML ONNX-Modellen in .NET, das eng mit dem Thema des Tages zusammenhängt.

  • 00:05:00 In diesem Abschnitt erörtert der Referent die Option zum Exportieren von Modellen für maschinelles Lernen in das ONNX-Format, um Modelle mithilfe von Komponenten in Automl innerhalb von Azure Machine Learning über Frameworks hinweg gemeinsam zu nutzen. Um Inferenzen in .NET durchzuführen, wird das ONNX-Laufzeitpaket verwendet, wobei ml.net die Vorhersagepipeline mit dem ONNX-Modell ausführt. Netron, ein Werkzeug zum Verständnis von Eingaben und Ausgaben eines Modells, wird vorgestellt, und die Erstellung von Klassen für Eingaben und Ausgaben wird demonstriert. Schließlich wird die Pipeline einschließlich des Modells definiert, und eine Eingabeinstanz wird durch die Engine geleitet, um Vorhersagen zu treffen, wobei die resultierende Ausgabe der vorhergesagte Fahrpreis ist. Der Referent stellt dann kurz einen verwandten Artikel über die Verwendung der ONNX-Laufzeitumgebung mit Stable Difussion zur Generierung von KI-Bildern vor.

  • 00:10:00 In diesem Abschnitt spricht der Redner darüber, wie sich die Technologie in den letzten 15 Jahren entwickelt hat, von kundenspezifischer Hardware zu Rechenzentren und Cloud Computing. Er gibt ein Beispiel für sein erstes Projekt aus dem Jahr 2006, bei dem es um handgefertigte Sensoren zum Auffangen von Mineralien in einem Weinberg ging und wie die Daten auf tragbaren Festplatten gespeichert und zur Analyse an ein Labor geschickt wurden. Heute könnte dasselbe Projekt mit einem Mobiltelefon durchgeführt werden, wobei die Daten in der Cloud gesammelt und in Echtzeit analysiert werden, wodurch sofortige Warnungen und Anpassungen möglich sind. Der Redner erörtert auch, wie der Wechsel in die Cloud Möglichkeiten für Unternehmen eröffnet hat, da Cloud-basierte Dienste jetzt für Kunden verfügbar sind, die zuvor auf On-Premise-Computing beschränkt waren.

  • 00:15:00 In diesem Abschnitt erörtert der Referent die Herausforderungen, mit denen Kunden konfrontiert sind, die verschiedene Programmiersprachen zum Erstellen und Bereitstellen ihrer Modelle für maschinelles Lernen verwenden. Er erklärt, dass das ONNX-Format als Lösung für dieses Problem geschaffen wurde, das es Kunden ermöglicht, ihre Modelle in einer Sprache zu speichern, die in einer anderen Programmiersprache geladen werden kann. Er erklärt weiter, dass ONNX die mathematischen Funktionen und Werte der Schichten im neuronalen Netzwerk exportieren kann, was eine einfache Konvertierung zwischen verschiedenen Sprachen ermöglicht. Der Referent betont, dass ONNX von vielen Unternehmen genutzt wird, wodurch es möglich ist, Code auszulagern und verschiedene Unternehmen zu verwenden, die unterschiedliche Programmiersprachen beherrschen.

  • 00:20:00 In diesem Abschnitt behandelt das Video das ONNX-Framework und seine Verwendung zum Exportieren und Ausführen von Modellen für maschinelles Lernen auf verschiedenen Plattformen und Programmiersprachen. Das ONNX-Framework ermöglicht es Benutzern, Modelle zu exportieren und auszuführen, ohne Bibliotheken oder Frameworks neu laden zu müssen, was es für Kunden einfacher macht, die Python und TensorFlow möglicherweise nicht kennen. Die ONNX-Laufzeit ist Open Source und auf GitHub verfügbar, und Benutzer können ihre bevorzugte Sprache und Architektur zum Ausführen des Modells auswählen. Das Video berührt auch die Op-Set-Kompatibilität und wie sie beeinflusst wird, da es wichtig ist, die Kompatibilität mit bestimmten Versionen des Frameworks sicherzustellen.

  • 00:25:00 In diesem Abschnitt erörtern die Referenten, wie sichergestellt werden kann, dass in KI-Modellen verwendete mathematische Funktionen mit der ONNX-Laufzeitbibliothek kompatibel sind. Sie empfehlen die Verwendung der neuesten Version der Bibliothek, die alle Operationen im Modell unterstützt. Sie erwähnen auch, dass es ein aktuelles Update der ONNX-Dokumentation gibt, das einen besseren Überblick darüber bietet, welche Apps unterstützt werden und welche nicht. Wenn eine mathematische Funktion nicht unterstützt wird, wird eine Warnung generiert und der Benutzer darüber informiert, welcher Offset nicht unterstützt wird. Die Referenten diskutieren auch die Vorteile der ONNX-Laufzeitbibliothek, wie z. B. Hardwarebeschleunigung für GPUs und Optimierung für KI-Modelle.

  • 00:30:00 In diesem Abschnitt erörtert der Referent die Optimierung für die ONNX-Laufzeit und die Möglichkeit, sie sowohl für das Training als auch für die Inferenz zu verwenden. Mit ONNX kann man den Schulungsprozess optimieren und benutzerdefinierte Hardware integrieren, ohne bei Null anfangen zu müssen. Der Referent bestätigt auch, dass die ONNX-Laufzeit zur Optimierung der Trainingshardware verwendet werden kann, während eine andere Hardware für die Inferenz ausgewählt werden kann. Insgesamt betont der Referent die Fähigkeit, Modelle für jede Hardwareumgebung zu erstellen und zu trainieren, sowie die Flexibilität der ONNX-Laufzeit.

  • 00:35:00 In diesem Abschnitt spricht der Referent über die Verwendung von Azure ML und ONNX Runtime zum Erstellen eines neuronalen Netzwerks zum Klassifizieren von Blumen. Sie beginnen mit der Auswahl der Anwendung, die in einer Standard-S11-Maschine zum Messen läuft. Dann verwenden sie Tensorflow, wie es ihr Unternehmen im Allgemeinen verwendet, und wählen Pandas, NumPy und andere Vorverarbeitungstools. Sie besprechen die Codierung von Zeichenfolgen als Matrizen und die Aufteilung des Datensatzes zwischen Training und Test. Sie erstellen schließlich das neuronale Netzwerk, das sie im ONNX-Format codieren, damit es im Rechenzentrum ihres Kunden verwendet werden kann.

  • 00:40:00 In diesem Abschnitt des Videos erklärt der Sprecher den Prozess des Trainierens eines neuronalen Netzwerkmodells mit Azure Machine Learning und TensorFlow. Er demonstriert, wie das Modell kompiliert und auf Genauigkeit optimiert wird, bevor die Leistung des Modells bewertet wird. Sobald das Modell trainiert ist, zeigt er, wie das Modell in TensorFlow importiert wird, um ein neues Modell für den Kunden zu erstellen. Um es dem Kunden einfach zu machen, definiert er die Input-Spezifikation und benennt Input und Output. Er erläutert auch die Vorteile der Konvertierung des Modells in das ONNX-Format zum Testen, bevor es an den Kunden geliefert wird.

  • 00:45:00 In diesem Abschnitt des Videos zeigt der Referent, wie ONNX Runtime mit Azure ML auf Python und .NET verwendet wird. Sie importieren ONNX einmal in Python, wählen einen Anbieter aus und laden die zu verwendende ONNX-Laufzeitumgebung, während sie das TensorFlow-Modell ignorieren. Sie erstellen Eingaben und füttern sie mit Array-Werten, bevor sie das Modell ausführen, um die Ausgabe zu erhalten. Darüber hinaus zeigt der Referent, wie man einen Endpunkt erstellt, um ONNX direkt in Azure verfügbar zu machen, und wie man ONNX auf einem IoT-Gerät oder Smartphone mit einer Konsolenanwendung auf .NET Core verwendet.

  • 00:50:00 In diesem Abschnitt erklären die Moderatoren das Konzept der Inferenz, dem letzten Schritt des maschinellen Lernens, bei dem das trainierte neuronale Netzwerk verwendet wird, um Ergebnisse auf der Grundlage neuer Daten vorherzusagen, die es noch nie zuvor gesehen hat. Sie diskutieren auch das ONNX-Format, das beliebige benutzerdefinierte Tensormodelle in ein von der ONNX-Laufzeit unterstütztes Format konvertieren kann. Sie erwähnen, dass die Vor- und Nachbearbeitung des Modells auch in das ONNX-Modell selbst serialisiert werden kann, was die Ausführung auf jeder Plattform erleichtert. Die Hosts demonstrieren, dass der Prozess nach dem Laden des Modells in verschiedenen Sprachen ähnlich ist.

  • 00:55:00 In diesem Abschnitt geht der Referent auf den neuen Anbieter ein, der für die ONNX-Laufzeit eingetroffen ist und es ermöglicht, OpenVINO für die ARM-CPU zu verwenden und das Debuggen zu ermöglichen. Der Redner betont die Stärke davon und erklärt, dass, wenn das Modell unterstützt wird und ausgeführt werden kann, keine Notwendigkeit besteht, den Code zu ändern, und es möglich ist, dasselbe Modell auszuführen, ohne es ständig zu konvertieren. Der Redner merkt an, dass die Auswahl der Hardware für das Modell zwar wesentlich ist, dies jedoch nicht von der ONNX-Laufzeit gesteuert wird und die Entscheidungen zur Operationalisierung des Modells die Hardwareanforderungen berücksichtigen müssen. Darüber hinaus erwähnt der Referent, dass es möglich ist, die ONNX-Laufzeit auf einem Cluster zu verwenden, und im Ergebnis muss das Modell nicht jedes Mal konvertiert werden.
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 – Scaling ONNX and TensorFlow Model Evaluation in Search



Berlin Buzzwords 2019: Lester Solbakken – Scaling ONNX and TensorFlow Model Evaluation in Search

Lester Solbakken erörtert die Herausforderungen bei der Skalierung von maschinellem Lernen für Suchanwendungen und schlägt eine alternative Lösung zur Verwendung externer Modellserver vor. Er schlägt vor, maschinelle Lernmodelle auf Inhaltsknoten zu evaluieren, anstatt Daten an externe Modellserver zu senden, um die Skalierbarkeit zu verbessern und Latenz und Durchsatz zu kontrollieren. Solbakken hebt Vespas Verwendung seiner eigenen Ranking-Sprache und Tensor-API-Erweiterung hervor, um das Erstellen eines deklarativen Zustandspakets für eine Anwendung zu vereinfachen, sowie die laufenden Bemühungen, maschinelle Lernmodelle in Vespa zu unterstützen. Er betont, wie wichtig es ist, die Korrelation zwischen verschiedenen Phasen des Rankings zu verstehen, um Probleme beim Abrufen auf Systemebene zu vermeiden, und ermutigt die Menschen, zum Open-Source-Projekt beizutragen.

  • 00:00:00 In diesem Abschnitt des Videos erörtert Lester Solbakken die Herausforderungen bei der Skalierung der maschinellen Lernproduktion speziell für suchbasierte Anwendungen. Er erklärt, wie Modellserver immer beliebter werden, um Leistungs- und Skalierbarkeitsprobleme zu lösen, aber bei Suchanwendungen führt die Auswertung des Modells für jedes der Suchergebnisse schnell zu einem Engpass bei der Netzwerkkapazität. Die Lösung besteht darin, entweder weniger Daten für Ergebnisse zu senden oder einen Weg zu finden, das Modell lokal für jeden Server auszuwerten. Solbakken geht auf die Arbeit seines Teams mit der Vespa-Suchplattform ein, um diese Probleme anzugehen.

  • 00:05:00 In diesem Abschnitt erörtert Lester Solbakken die Herausforderung der Skalierung von ONNX- und TensorFlow-Modellbewertungen für die Suche. Eine mögliche Lösung besteht darin, Merkmale an Modellserver zu senden, aber das Problem besteht darin, dass Inhalts- und Modellserver möglicherweise eine Rangfolge basierend auf unterschiedlichen Sätzen von Merkmalen bewerten, was die Wahrscheinlichkeit verringern kann, global beste Ergebnisse zu erzielen. Stattdessen schlägt Solbakken vor, Modelle auf Inhaltsservern zu evaluieren, um bessere Ergebnisse zu erzielen, woran bei Vespa gearbeitet wurde. Vespa, das weltweit mit Hunderttausenden von Abfragen pro Sekunde stark genutzt wird und Hunderte von US-Publikationen laufen, verfügt über umfangreiche Kernfunktionen, einschließlich Elastizität, Skalierbarkeit und Kapazität für erweitertes relevantes Scoring.

  • 00:10:00 In diesem Abschnitt erläutert Lester Solbakken, wie Vespa ONNX und TensorFlow integriert, um das Erstellen eines deklarativen Zustandspakets für eine Anwendung zu vereinfachen und die Verwendung von Modellen für maschinelles Lernen zu vereinfachen. Vespa verwendet seine eigene Ranking-Sprache, um diese Modelle auszuführen, und die Tensor-API-Erweiterung bietet eine kleine Reihe von Kernfunktionen, die verschiedene Arten von Berechnungen darstellen können. Dies hat den Vorteil, dass verschiedene Modelle aus unterschiedlichen Quellen in dieses Format übersetzt werden können, was die Optimierung erleichtert. Solbakken hebt auch einen Benchmark hervor, den sie aufgestellt haben, um die Hypothese zu testen, dass das Versenden von Daten nicht effizient ist, indem sie ein Blog-Empfehlungssystem emulieren, bei dem sie in der ersten Phase ein Punktprodukt und in der zweiten Phase ein neuronales Netzwerk verwendeten.

  • 00:15:00 In diesem Abschnitt erörtert der Referent die Skalierbarkeitsbeschränkungen externer Modellserver für maschinelles Lernen in der Suche und schlägt eine alternative Lösung vor. Er erklärt, dass das Hinzufügen zusätzlicher Inhaltsknoten zur Verteilung der Arbeitslast die Latenz verbessern kann, und schlägt vor, dass Sie die Anzahl der Ergebnisse mit maschinellen Lernmodellen erhöhen können, indem Sie diese Knoten eine größere Anzahl von Dokumenten neu schreiben lassen, was zu potenziell qualitativ hochwertigeren Ergebnissen führt. Durch ein mehrphasiges Ranking, bei dem die Bewertung auf dem Inhaltsknoten erfolgt und nicht nur durch ein Netzwerk geschoben wird, ist es möglich, Latenz und Durchsatz zu skalieren und zu steuern. Der Referent kommt zu dem Schluss, dass externe Modellserver keine gute Lösung für die Skalierung sind, und betont, wie wichtig es ist, stattdessen auf dem Inhaltsknoten zu evaluieren.

  • 00:20:00 In diesem Abschnitt spricht Lester Solbakken über das Mehrphasen-Ranking in Vespa und wie wichtig es ist, die Korrelation zwischen den verschiedenen Phasen zu verstehen, um Abrufprobleme auf Systemebene zu vermeiden. Er erwähnt auch, dass die Modellunterstützung für maschinelles Lernen und Vespa eine kontinuierliche Anstrengung ist, und ermutigt die Menschen, zum Open-Source-Projekt beizutragen. Für diejenigen, die daran interessiert sind, mit Vespa herumzuspielen, finden sie auf der Vespa AI-Homepage viele Ressourcen, darunter Beispielanwendungen, Anwendungsfälle und Tutorials.
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 assimilieren



ONNX assimilieren

In diesem Video stellt der Moderator ONNX als einen offenen Standard für die Interoperabilität des maschinellen Lernens vor, der auf allen verschiedenen Plattformen funktionieren kann. Sie durchlaufen den Prozess der Erstellung eines ONNX-Projekts von Grund auf neu, optimieren ein Beispiel aus dem Microsoft-Repo, beheben Probleme und erkunden andere ONNX-bezogene Github-Projekte. Anschließend testen sie eine ONNX-Bindung mit GPT2 und CUDA und bekunden ihr Interesse an der weiteren Erforschung von Rust-Bindungen für die ONNX-Runtime in der Zukunft. Der Moderator weist auf die Vielseitigkeit und Portabilität von ONNX hin und sieht darin ein gutes Werkzeug für Experimente und den Aufbau umfangreicherer Projekte in der Zukunft.

  • 00:00:00 In diesem Abschnitt stellt der Referent ONNX vor, einen offenen Standard für die Interoperabilität des maschinellen Lernens, der die Verwendung vieler verschiedener Frameworks und Beschleuniger für Rückschlüsse auf Cloud-Dienste ermöglicht. Sie erwähnen die Verfügbarkeit eines sicheren Wrappers um die ONNX-Laufzeit mit einem plattformübergreifenden Hochleistungs-ML-Inferenz- und Trainingsbeschleuniger. Sie heben auch die mit ONNX verbundene Portabilität hervor, da es auf allen verschiedenen Plattformen funktionieren kann, und zeigen anhand von Beispielen aus der Microsoft-Zweigstelle, wie ein neues ONNX-Projekt von Grund auf neu erstellt wird. Der Referent stellt fest, dass ONNX, an dem aktiv gearbeitet und kontinuierlich integriert wird, ein gutes Werkzeug darstellt, um mit maschinellem Lernen herumzuspielen.

  • 00:05:00 In diesem Abschnitt des Videos navigiert der Moderator zur ONNX-Website, um die neueste Version abzurufen und eine ONNX-Laufzeitumgebung zu erstellen. Sie zeigen auch, wie man ein Beispiel aus dem Microsoft-Repo kopiert und optimiert und ein Makefile hinzufügt. Außerdem integrieren sie den Tracing Subscriber und gbt in den Code und fügen das Squeeze-Net-Modell hinzu. Der Moderator stößt auf einige Fehler, behebt sie jedoch, indem er ein vorheriges Beispiel überprüft und sicherstellt, dass die richtigen Modelle verfügbar sind.

  • 00:10:00 In diesem Abschnitt behebt der Redner ein Problem, bei dem er versucht, eine bestimmte Version von ONNX zu verwenden, aber auf Fehler stößt. Sie probieren verschiedene Methoden aus, um das Problem zu beheben, z. B. das Kopieren eines funktionierenden Beispiels und das erneute Erstellen des Projekts, aber keine davon scheint zu funktionieren. Schließlich finden sie in der ONNX-Dokumentation ein älteres Beispiel, das mit ihrer gewünschten Version funktioniert. Sie tauschen das Modell aus und können das Programm erfolgreich kompilieren und ausführen. Insgesamt hebt dieser Abschnitt hervor, wie wichtig es ist, Abhängigkeiten gründlich zu überprüfen und bereit zu sein, beim Debuggen verschiedene Lösungen auszuprobieren.

  • 00:15:00 In diesem Abschnitt des Videos erörtert der Sprecher die Einschränkungen des grundlegenden ONNX-Beispiels „Hallo Welt“ und schlägt vor, dass es nützlicher wäre, ein Beispiel zu haben, das ein Bild lädt und manipuliert. Sie heben einige andere ONNX-bezogene Github-Projekte wie Rust Code Search und Track ONNX hervor, die über fortgeschrittenere Funktionalitäten verfügen, und zeigen Interesse, sie auszuprobieren. Darüber hinaus untersuchen sie das GPT-RS-Projekt, das die Verwendung von GPT2-Modellen mit CUDA ermöglicht, und erklären, wie es möglicherweise zur Manipulation von Bilddaten verwendet werden könnte.

  • 00:20:00 In diesem Abschnitt testet der Benutzer eine ONNX-Bindung mit GPT2 und CUDA, die Testausgaben für die Codevervollständigung oder Textvervollständigung generiert. Der Benutzer findet dieses Beispiel vielversprechend und bekundet Interesse daran, die ONNX-Runtime-Bindings von Rust in Zukunft weiter zu erforschen. Sie fassen ihre Erfahrung als interessantes Experiment zusammen und äußern den Wunsch, bei ihrem nächsten Versuch mit ONNX etwas Substanzielleres aufzubauen.
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 vs. Vergleich der neuronalen Stereotiefenschätzung von ACVNet (ONNX)



HITNET vs. Vergleich der neuronalen Stereotiefenschätzung von ACVNet (ONNX)

Vergleich der HITNET- und ACVNet-Stereotiefenschätzungsmodelle im Driving Stereo-Datensatz.

Modellrückschlussdetails (NVIDIA 1660 SUPER):
HITNET (640X480): 220 ms
ACVNet (640 x 384): 480 ms
Referenzen: [HITNET-Inferenz] https://github.com/ibaiGorordo/ONNX-HITNET-Stereo-Depth-estimation
[ACVNet-Inferenz] https://github.com/ibaiGorordo/ONNX-ACVNet-Stereo-Depth-Estimation
[Driving Stereo-Datensatz] 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)...
 

Importieren, trainieren und optimieren Sie ONNX-Modelle mit dem NVIDIA TAO Toolkit



Importieren, trainieren und optimieren Sie ONNX-Modelle mit dem NVIDIA TAO Toolkit

Das Video zeigt, wie das NVIDIA TAO Toolkit zum Importieren, Trainieren und Optimieren von ONNX-Modellen verwendet wird. Es beginnt mit dem Herunterladen eines vortrainierten ResNet18-Modells, dessen Feinabstimmung mit TAO auf dem Pascal VOC-Datensatz und bietet Schritte zum Importieren des Modells und zum Visualisieren des ONNX-Diagramms. Der Trainingsfortschritt kann mithilfe der TensorBoard-Visualisierung überwacht werden, und im Falle von ONNX-Konvertierungsfehlern können benutzerdefinierte Ebenen verwendet werden. Das Video erklärt auch, wie Sie die Leistung des Modells bewerten, indem Sie den abnehmenden Verlust beobachten, den Verlust validieren und Gewichtungen und Verzerrungen analysieren. Benutzer können die Genauigkeit des Modells anhand des Testdatensatzes und der Beispielbilder beurteilen und mit der Bereinigung und Optimierung fortfahren, um es weiter zu verbessern.

  • 00:00:00 In diesem Abschnitt erklärt das Video, wie Sie ONNX-Modelle mit dem NVIDIA TAO Toolkit importieren, trainieren und optimieren. Das Video beginnt mit dem Herunterladen eines vortrainierten ResNet18-Modells, das dann mit TAO auf dem Pascal VOC-Datensatz feinabgestimmt wird. Die Schritte zum Importieren des ONNX-Modells und zum Visualisieren des ONNX-Diagramms werden ebenfalls behandelt. Darüber hinaus erläutert das Video, wie der Fortschritt des Trainingsauftrags mithilfe der TensorBoard-Visualisierung überwacht werden kann. Schließlich erwähnt das Video, dass TAO mit benutzerdefinierten Ebenen umgehen kann, und bietet eine Anleitung, wie man sie zum Importieren von Modellen verwendet, die nicht konvertiert werden können.

  • 00:05:00 In diesem Abschnitt erläutert der Sprecher, wie die Leistung des trainierten Modells bewertet werden kann. Benutzer können sich den abnehmenden Verlust ansehen, um sicherzustellen, dass sich das Modell verbessert. Darüber hinaus kann der Validierungsverlust dabei helfen, eine Überanpassung zu erkennen. Fortgeschrittene Benutzer können Diagramme und Histogramme anzeigen, um die Gewichtungen und Verzerrungen des Modells zu verstehen. Der Referent demonstriert, wie die Gesamtgenauigkeit des Modells am Testdatensatz überprüft und die Leistung des Modells anhand von Beispielbildern bewertet wird. Das Modell bietet Raum für Verbesserungen, und Benutzer können mit der Modellbereinigung und -optimierung fortfahren, um die Genauigkeit weiter zu verbessern.
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...
 

NVAITC-Webinar: Bereitstellen von Modellen mit TensorRT



NVAITC-Webinar: Bereitstellen von Modellen mit TensorRT

In diesem Abschnitt des NVAITC-Webinars stellt die Lösungsarchitektin Nikki Loppie TensorRT vor, NVIDIAs Software-Entwicklungskit für leistungsstarke Deep-Learning-Inferenz. TensorRT bietet einen Inferenzoptimierer und eine Laufzeit für Inferenz mit geringer Latenz und hohem Durchsatz auf einer Reihe von Plattformen, von eingebetteten Geräten bis hin zu Rechenzentren. Loppie erklärt die fünf Technologien, die TensorRT verwendet, um die Inferenzleistung zu optimieren, einschließlich Kernel-Fusion und Präzisionskalibrierung. Entwickler können die Python- und C++-APIs von TensorRT verwenden, um diese Optimierungen in ihre eigenen Anwendungen zu integrieren, und Konverterbibliotheken wie trtorch können verwendet werden, um PyTorch-Modelle für Inferenzen zu optimieren. Loppie demonstriert, wie TensorRT-optimierte Modelle mithilfe der trtorch-Bibliothek gespeichert werden, und vergleicht die optimierten Modelle mit nicht optimierten Modellen für die Bildklassifizierung und zeigt signifikante Beschleunigungen mit halber Genauigkeit.

  • 00:00:00 In diesem Abschnitt des Webinars erörtert die Lösungsarchitektin Nikki Loppie die Bedeutung der Effizienz bei der Inferenz und die Notwendigkeit der Plattformportabilität. Sie stellt TensorRT vor, ein Software-Entwicklungskit von NVIDIA für leistungsstarke Deep-Learning-Inferenz, das diese beiden Herausforderungen angeht. TensorRT enthält einen Inferenzoptimierer und eine Laufzeit für Inferenz mit geringer Latenz und hohem Durchsatz auf einer Vielzahl von Plattformen, von eingebetteten Geräten bis hin zu Rechenzentren. Es ist auch mit allen wichtigen Deep-Learning-Frameworks kompatibel. Anschließend erläutert Loppie die fünf Technologien, die TensorRT zur Optimierung der Inferenzleistung implementiert, darunter Kernel-Fusion, Präzisionskalibrierung und Kernel-Autotuning.

  • 00:05:00 In diesem Abschnitt stellt das Webinar die Fähigkeiten von TensorRT vor, um die Kernel-Ausführungszeit zu optimieren, den Speicherbedarf zu reduzieren und die parallele Inferenz mithilfe der Multi-Stream-Ausführung zu unterstützen. Entwickler können die Python- und C++-APIs von TensorRT verwenden, um diese Optimierungen in ihre eigenen Anwendungen zu integrieren. Das Webinar erklärt auch, wie Sie Konverterbibliotheken wie tr Torch verwenden, um ein PyTorch-Modell für die Inferenz zu optimieren. Die Schritte umfassen das Speichern des Modells, das Laden, das Initialisieren eines ResNet-Modells, das Kompilieren mit TorchScript und schließlich das Konvertieren in das TensorRT-Format. Das optimierte Modell kann dann auf der Zielplattform bereitgestellt werden.

  • 00:10:00 In diesem Abschnitt des Webinars demonstriert der Referent, wie TensorRT-optimierte Modelle für die spätere Verwendung oder für den Einsatz auf anderen Plattformen mithilfe der trtorch-Bibliothek gespeichert werden. Der Referent verwendet ein Bildklassifizierungsbeispiel mit ResNet-18- und ResNet-50-Modellen, die auf einem ImageNet-Datensatz ausgeführt werden. Die für trtorch optimierten Modelle zeigen signifikante Beschleunigungen mit halber Genauigkeit im Vergleich zu den nicht optimierten Modellen, mit einem Beschleunigungsfaktor von 5,5x für ResNet-18 und 6,4x für ResNet-50. Der Referent betont auch die Bedeutung von unvoreingenommenem Benchmarking und gibt Anweisungen, wie man mit trtorch loslegt.
NVAITC Webinar: Deploying Models with TensorRT
NVAITC Webinar: Deploying Models with TensorRT
  • 2020.11.30
  • www.youtube.com
Learn how to accelerate deep learning (DL) inference with TensorRT via TRTorch library. https://developer.nvidia.com/tensorrt, https://nvidia.github.io/TRTorch/