Wir schließen die
nächste Iteration der Habr-Überschrift „
Stellen Sie einem Intel-Experten eine Frage“ ab, die Deep Learning und dem
Intel OpenVINO Toolkit gewidmet ist . Aus Gründen, die uns nicht sehr klar sind, war die Aktivität der Habra-Leser diesmal viel geringer als gewöhnlich, Intel beschäftigte jedoch keine begeisterten Menschen - die Fragen, die der Vollständigkeit halber fehlten, wurden offline gesammelt. Und ja, wir haben auch einen Gewinner im Wettbewerb um die beste Frage - der Tradition nach am Ende des Beitrags über ihn.

Frage
Welche Vorteile bietet der OpenVINO-Benutzer und warum sollte er es verwenden?
Juri Gorbatschow. Der Hauptvorteil des Produkts ist die Leistung, die Mindestgröße und die Anzahl der Abhängigkeiten nahezu Null. Es sind diese Anforderungen, die wir als die wichtigsten in der Produktentwicklung herausgreifen.
Das Produkt ist ideal für die Implementierung von Anwendungen, die Deep Learning und Computer Vision zur Lösung von Problemen verwenden. Beispielsweise ist die Leistung unseres Produkts beim Rechnen von Netzwerken auf Intel-Plattformen im Vergleich zu gängigen Frameworks um ein Vielfaches höher. Wir haben auch deutlich geringere Anforderungen an den verwendeten Speicher, was für eine Reihe von Anwendungen relevant ist. Auf einigen Plattformen ist es aufgrund fehlenden Speichers unmöglich, ein Netzwerk mit Frameworks zu starten.

Frage
Ist es möglich, Netzwerke mit OpenVINO auf Intel-Plattformen zu trainieren? Sagen wir, es ist sehr interessant, ist es möglich, auf Nervana-Plattformen zu trainieren?
Juri Gorbatschow. Nein, Schulungsunterstützung ist nicht im Produkt enthalten. Der anständige Teil der Verbesserungen, die wir erhalten, ist genau auf die Tatsache zurückzuführen, dass wir nicht erwarten, dass das Produkt im Training verwendet wird (z. B. Wiederverwendung von Speicher, Verschmelzen von Schichten usw.).

Frage
Warum können Sie nicht einfach die Frameworks verwenden, in denen das Netzwerk für die Ausführung neuronaler Netzwerke trainiert wurde? Was bietet die Deep Learning Inference Engine im Vergleich zu Frameworks? Warum muss ich etwas ändern?
Juri Gorbatschow. Verwendung ist natürlich möglich. Wenn Sie jedoch die beste Leistung benötigen, ist die Auswahl von OpenVINO leicht zu erklären.
Die Leistung der Deep Learning Inference Engine ist derzeit auf Intel-Plattformen am besten. Wir veröffentlichen die Ergebnisse im Vergleich zu den gängigen Frameworks, es macht wahrscheinlich keinen Sinn, sie hier zu wiederholen. Ich kann nur sagen, dass selbst Versionen von Frameworks, die Intel-Bibliotheken verwenden, in unserem Produkt an Leistung verlieren.
Darüber hinaus ist die Deep Learning Inference Engine das einzige Produkt, das den Start von Netzwerken beliebter Frameworks auf allen Intel-Plattformen und unter verschiedenen Betriebssystemen unterstützt. Ich werde die folgenden Szenarien als Beispiele geben:
- Das Ausführen von Netzwerken auf FPGA ist nur über OpenVINO möglich
- Start von Caffe / TensorFlow / MXNet-Netzwerken auf Intel GPU & Movidius.
- Vollständiger Start in Netzwerken auf Intel-Plattformen unter Windows
Im Allgemeinen ist das Ausführen von Windows eine andere Geschichte. Nicht alle Frameworks unterstützen einen solchen Out-of-Box-Start. Beispielsweise ist das Ausführen von Caffe nicht sehr einfach. TensorFlow bietet Binärdateien für Windows an. Wenn Sie jedoch Änderungen vornehmen und neu erstellen müssen, liegt möglicherweise ein Problem vor. Gleichzeitig sehen wir, dass das Ausführen unter Windows häufig gefragt ist.

Frage
S_o_TWas ist das zukünftige Format für die Zwischendarstellung der Netzwerkarchitektur? Plant OpenVINO, NNEF zu unterstützen?
Juri Gorbatschow. Derzeit ist ONNX der beliebteste Standard. Es ist vielmehr das Ergebnis der Unterstützung von Facebook, Microsoft und anderen Spielern. Insbesondere akzeptiert WinML ONNX zur Ausführung und bietet gute Tools für die Arbeit mit diesem Format. Ich bin skeptisch, solche Dinge im Allgemeinen zu standardisieren. Leider zeigt die Praxis, dass der Fortschritt stark behindert wird, sobald das Gespräch auf die Ebene der Normungsausschüsse übergeht, in denen Vertreter verschiedener Unternehmen sitzen, die ihre Produkte verkaufen. Es gibt bereits ein Problem, dass ONNX nicht ausreicht, um eine Reihe vorhandener Netzwerke auszudrücken. Beispielsweise wird Mask-RCNN, das von Facebook selbst entwickelt wurde, unter ONNX nicht unterstützt. Sowie Netzwerke der SSD- und Faster-RCNN-Familie.
Wir berücksichtigen keine NNEF-Unterstützung - es gab keine Kundenanfragen, und objektiv gesehen wird dieser Standard nicht häufig verwendet. In der Praxis habe ich diesen Standard nur einmal verwendet. Das Unternehmen hat übrigens einen Vertrag mit der Khronos-Gruppe.
Welche Tools gibt es zur Analyse der Leistung von Intel-GPUs bei gleichzeitiger Inferenz mehrerer Netzwerke?
Juri Gorbatschow. Ich denke, das am besten geeignete Produkt wäre Intel vTune. Wir verwenden es selbst in der Entwicklung, es werden viele nützliche Informationen angezeigt, und wenn dieses Produkt zumindest auf einer grundlegenden Ebene beherrscht wird, ist dies eine wichtige Hilfe. Übrigens unterstützt die Deep Learning Inference Engine die Möglichkeit, Ebenen selbst zu implementieren. Und während dieser Implementierung müssen Sie wahrscheinlich noch den Profiler verwenden, um die beste Leistung zu erzielen.

Frage
Hanry396Forscher haben einen einzigartigen „Atemabdruck“ für 17 verschiedene Krankheiten wie Nierenkrebs oder Parkinson identifiziert und ein Gerät entwickelt, das Atemproben mit einer Genauigkeit von 86% unter Verwendung einer Reihe von nanoskaligen Sensoren anzeigt und die Ergebnisse mit Methoden der künstlichen Intelligenz analysiert. Und im Zusammenhang damit stellte sich die Frage: „Inwieweit kann sich Ihrer Meinung nach in der Medizin die KI entwickeln und wird es möglich sein, das menschliche Gehirn mit einem Computer zu kombinieren?
Juri Gorbatschow. Die Entwicklung der KI in der Medizin findet bereits statt, hauptsächlich auf einer ziemlich grundlegenden Ebene, aber die Schritte sind ziemlich klar nachvollzogen. Ansätze zur Segmentierung von MRT-Bildern mithilfe von Netzwerken werden immer beliebter. Unsere Kunden analysieren bereits die produktivsten Plattformen für solche Aufgaben - ein Beweis dafür, dass die Produkte für die Veröffentlichung vorbereitet werden. Es scheint mir wichtig, dass die Nutzung von Netzwerken häufig nicht nur das Ziel der Beschleunigung verfolgt, sondern auch die Qualität der Diagnose verbessert.
Über die Synergie eines Computers mit einem menschlichen Gehirn ist es beängstigend, bisher zu denken. Zumindest sieht es so aus, als ob die derzeitigen Methoden zur Lösung von KI-Problemen im Vergleich zum menschlichen Gehirn ungeschickt sind.

Frage
enginerr_7Ich habe versucht, openVINO und ROS zu integrieren. Es ist mir nicht gelungen. Die Frage ist, wie OpenVINO korrekt in ROS integriert werden kann.
Juri Gorbatschow. Es ist etwas schwierig, die Frage zu beantworten, es ist nicht klar, was nicht geklappt hat. Der einfachste Weg kann darin bestehen, einen bestimmten ROS-Knoten mit OpenVINO zu verknüpfen. Wir selbst haben diese Methode angewendet, sie hat funktioniert.
Ich empfehle, in
unserem Forum eine detailliertere Frage zu stellen. Sie helfen Ihnen dort. Unser Team beantwortet dort zusammen mit dem Produkt-Support-Team Fragen.
Bei der Verarbeitung biomedizinischer Bilder werden häufig fünfdimensionale Eingabedaten, dreidimensionale Faltungen und andere Operationen verwendet. Ist Unterstützung geplant / geplant? Gibt es / ist geplant, rekursive Netzwerke, Netzwerke (oder separate Schichten) mit gemeinsamen Parametersätzen zu unterstützen?
Juri Gorbatschow. Ja, wir planen und implementieren Unterstützung für dreidimensionale Faltungen und Pooling. Ich denke, wir können die Veröffentlichung einer Version des Produkts mit Unterstützung bis Ende des Jahres erwarten. Es wird auch Unterstützung für wiederkehrende Netzwerke (LSTM / RNN) geben.

Frage
Warum enthält OpenVINO die OpenCV-Bibliothek in binärer Form? Schließlich kann jeder es selbst herunterladen und erstellen.
Juri Gorbatschow. Die Gründe sind ziemlich alltäglich. OpenCV ist in Quellform verfügbar und das Erstellen ist im Wesentlichen eine einfache Aufgabe. Es ist etwas schwieriger, das effizienteste Paket zu erstellen. Oft wirft dies Fragen auf und wir haben uns entschlossen, einfach das fertige Paket bereitzustellen. Wir verwenden keine spezielle Magie, wir bauen nur richtig und mit den richtigen Optionen.
Die Verwendung ist natürlich optional, aber ich würde empfehlen, die Leistung der Anwendung damit und mit einem benutzerdefinierten Build zu vergleichen. In einigen Fällen konnten Kunden ihre Anwendungen beschleunigen, einfach weil sie zu unserer Distribution gewechselt waren.
Bei der Bereitstellung von OpenVINO verwendet das OpenCV-DNN-Modul die Inference Engine als Engine zum Starten von Netzwerken. Im Durchschnitt ergibt dies eine mindestens zweifache Beschleunigung im Vergleich zum Code in OpenCV.

Frage
OpenVINO enthält geschulte Modelle. Was ist ihr Unterschied zu den online verfügbaren Modellen? Kann ich sie in Anwendungen verwenden und gibt es Einschränkungen für die kommerzielle Nutzung?
Juri Gorbatschow. In der Tat enthält OpenVINO Modelle, deren Verwendung keinerlei Einschränkungen unterliegt (mit Ausnahme von Versuchen, das ursprüngliche Modell aus einem Zwischenpräsentationsformat zu rekonstruieren), und erfordert keine Unterzeichnung einer Lizenzvereinbarung.
Es gibt zwei Unterschiede zu öffentlichen Modellen:
- Leistung und Größe der Modelle . Alle mitgelieferten Modelle lösen ein enges Problem (z. B. Fußgängererkennung), wodurch wir ihre Größe erheblich reduzieren können. Bei öffentlichen Modellen wird versucht, ein allgemeineres Problem zu lösen (Erkennen mehrerer Objektklassen), und dies erfordert viel komplexere rechnerisch komplexe Modelle mit einer großen Anzahl von Parametern. Im obigen Beispiel (Fußgängererkennung) kann unser Modell das Problem mehr als zehnmal schneller lösen als ein öffentliches Modell mit nicht schlechterer Qualität.
- Die Entscheidung exotischer Aufgaben . Es kommt häufig vor, dass die Aufgabe in der akademischen Gemeinschaft kein großes Interesse hervorruft und es nicht einfach ist, ein öffentliches Modell zu finden. Zum Beispiel die Erkennung von Kopfdrehwinkeln oder die Analyse von Alter und Geschlecht. In diesem Fall befreit Sie unser Modell von der Notwendigkeit, einen Datensatz zu finden und das Modell zu trainieren.

Frage
Es sieht so aus, als würden mehrere Modelle dasselbe tun, zum Beispiel die Gesichtserkennung. Warum gibt es so viele von ihnen?
Juri Gorbatschow. Es gibt zwei Unterschiede:
- Wert für Geschwindigkeit / Qualität . Einige Modelle können aufgrund eines leichten Qualitätsverlusts viel schneller arbeiten. Abhängig von den Anforderungen der Anwendung können Sie die eine oder andere auswählen.
- Unterschiedliche Bedingungen für die Erklärung des Problems . Zum Beispiel kann der Aufnahmewinkel einer Person die Erkennungsqualität beeinflussen, und wir bieten 2 Modelle für verschiedene Fälle an.
Es ist zu beachten, dass für die Modelle eine Datei mit einer Beschreibung vorhanden ist. Dort können Sie die Leistungsdaten, die Genauigkeit des Modells und Beispiele für Bilder sehen, von denen erwartet wird, dass sie eingegeben werden, d. H. Szenariobeschreibung.

Frage
Warum werden Wiederholungsnetzwerke nicht unterstützt? Ist geplant, bestimmte Grundelemente und Topologien mit diesen Grundelementen zu unterstützen?
Juri Gorbatschow. Unterstützung wird umgesetzt, es ist eine alltägliche Frage der Zeit und der Prioritäten. Ich denke, dass wir diese Funktionalität und eine Reihe von Innovationen bis Ende des Jahres implementieren sollten.

Frage
Was soll ich tun, wenn ich versuche, ein Modell zu importieren und Fehler erhalte? Ist es möglich, dies selbst zu lösen, oder ist es notwendig, zur Unterstützung zu gehen? Werden sie mich überhaupt unterstützen?
Juri Gorbatschow. Im Moment können Sie sich gut an das Support-Forum wenden, wir beantworten eine ziemlich große Anzahl von Fragen und lösen Probleme. Es ist zu beachten, dass die Model Optimizer-Komponente eine Reihe von Python-Skripten ist. Im Prinzip bedeutet dies, dass Sie etwas selbst sehen und reparieren können, wenn Interesse daran besteht.
Wir planen auch, den Quellcode freizugeben - dies sollte es uns ermöglichen, komplexere Dinge zu tun als Fehler zu beheben.
Nun, der Gewinner des Wettbewerbs ist H_Braiser S_o_T mit einer Frage zur Unterstützung von NNEF. Glückwunsch!