Deep Learning und OpenVINO Toolkit. Intel Expertenantworten


    Wir führen die nächste Iteration von Habr in der Überschrift "Eine Frage an einen Intel-Experten" aus, die sich mit Deep Learning und dem Intel OpenVINO Toolkit befasst . Aus Gründen, die uns nicht klar waren, war die Aktivität der Leser von Habra dieses Mal viel geringer als üblich, aber Intel nahm keine begeisterten Leute mit - die Fragen, die zur Vollständigkeit fehlten, wurden offline gesammelt. Und ja, wir haben auch den Gewinner des Wettbewerbs um die beste Frage - über ihn traditionell am Ende der Post.

    BildFrage
    Welche Vorteile bietet der OpenVINO-Benutzer und warum sollte er genutzt werden?

    Yuri Gorbachev Der Hauptvorteil des Produkts ist die Leistung, minimale Größe und fast keine Abhängigkeiten. Diese Anforderungen werden von uns als die wichtigsten in der Produktentwicklung herausgestellt.

    Das Produkt ist ideal für die Implementierung von Anwendungen, die zur Lösung von Problemen Deep Learning und Computer Vision verwenden. Zum Beispiel ist die Leistung unseres Produkts beim Berechnen von Netzwerken auf Intel-Plattformen im Vergleich zu gängigen Frameworks um ein Vielfaches höher. Wir haben auch deutlich weniger Speicheranforderungen, was für eine Reihe von Anwendungen wichtig ist. Trite, auf einigen Plattformen ist es aufgrund von Speicherplatzmangel nicht möglich, das Netzwerk mit Frameworks zu starten.

    BildFrage
    Ist es möglich, Netzwerke mit OpenVINO auf Intel-Plattformen zu trainieren? Es ist sehr interessant, auf Nervana-Plattformen zu trainieren.

    Yuri Gorbachev Nein, Trainingsunterstützung ist nicht im Produkt enthalten. Ein anständiger Teil der Verbesserungen, die wir gerade dadurch erzielen, dass wir nicht erwarten, dass das Produkt im Training verwendet wird (z. B. die Wiederverwendung von Speicher, das Verschmelzen von Ebenen usw.).

    BildFrage
    Warum ist es unmöglich, einfach Frameworks zu verwenden, in denen das Netzwerk trainiert wurde, um neuronale Netzwerke zu starten? Was vergleicht die Deep Learning Inference Engine mit Frameworks? Warum muss ich etwas ändern?

    Yuri Gorbachev Verwendung natürlich möglich. Wenn Sie jedoch die beste Leistung benötigen, ist die Entscheidung für OpenVINO leicht zu erklären.

    Die Leistung der Deep Learning Inference Engine ist derzeit auf Intel-Plattformen die beste. Wir veröffentlichen die Ergebnisse im Vergleich zu populären Frameworks, wahrscheinlich ist es sinnlos, 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 die Ausführung verschiedener Betriebssysteme unterstützt. Ich werde die folgenden Szenarien als Beispiele geben:
    • Eine Vernetzung auf FPGA ist nur über OpenVINO möglich.
    • Starten Sie Caffe / TensorFlow / MXNet-Netzwerke auf Intel GPU & Movidius.
    • Vollständiger Start in Netzwerken auf Intel-Plattformen mit Windows-Betriebssystem

    Unter Windows zu laufen ist im Allgemeinen eine eigene Geschichte. Nicht alle Frameworks unterstützen diesen Start "out of the box", beispielsweise ist der Start von Caffe nicht sehr einfach. TensorFlow bietet Binärdateien für Windows an, aber wenn Sie Änderungen vornehmen und neu erstellen müssen, liegt möglicherweise ein Problem vor. Gleichzeitig sehen wir, dass das Laufen unter Windows oft gefragt ist.

    BildFrage S_o_T
    Wie ist das Format der Zwischenpräsentation der Netzwerkarchitektur für die Zukunft? Unterstützt OpenVINO NNEF?

    Yuri Gorbachev Derzeit ist der ONNX-Standard der beliebteste. Es ist vielmehr eine Folge der Unterstützung von Facebook, Microsoft und anderen Playern. Insbesondere akzeptiert WinML ONNX-Eingaben zur Ausführung und bietet gute Werkzeuge für die Arbeit mit diesem Format. Ich bin skeptisch gegenüber der Standardisierung solcher Dinge im Allgemeinen. Leider zeigt die Praxis, dass der Fortschritt, sobald ein Gespräch in die Ebene der Standardisierungskomitees gelangt, in denen Vertreter verschiedener Unternehmen sitzen, die ihre Produkte verkaufen, den Fortschritt erheblich behindert. Es besteht bereits das Problem, dass ONNX nicht ausreicht, um vorhandene Netzwerke auszudrücken. Beispielsweise wird Mask-RCNN, das von Facebook selbst entwickelt wurde, auf ONNX nicht unterstützt. Sowie die SSD- und Faster-RCNN-Netzwerke.

    Wir betrachten keine Unterstützung für NNEF - es gab keine Anfragen von Kunden, und dieser Standard wird objektiv nicht oft verwendet. In der Praxis habe ich diesen Standard nur einmal verwendet. Diese Firma hat übrigens einen Vertrag mit der Khronos-Gruppe.

    Welche Tools gibt es, um die Leistung einer Intel-GPU zu analysieren und gleichzeitig mehrere Netzwerke anzugreifen?

    Yuri Gorbachev Ich denke, das am besten geeignete Produkt wird Intel vTune sein. Wir verwenden es in der Entwicklung selbst, es werden viele nützliche Informationen angezeigt. Wenn dieses Produkt zumindest auf einer Basisebene beherrscht wird, ist dies eine wichtige Hilfe. Die Deep Learning Inference Engine unterstützt übrigens die Möglichkeit, Ebenen selbst zu implementieren. Im Zuge dieser Implementierung wird es wahrscheinlich noch notwendig sein, den Profiler zu verwenden, um die beste Leistung zu erzielen.

    BildFrage von Hanry396
    Die Forscher identifizierten für 17 verschiedene Krankheiten, wie Nierenkrebs oder Parkinson, ein einzigartiges „Respiratory Imprint“ und entwickelten ein Gerät, das Atmungsmuster mit einer Genauigkeit von 86% anzeigt, wobei eine Reihe von Nanosensoren verwendet und die Ergebnisse mithilfe künstlicher Intelligenzmethoden analysiert werden. Und in diesem Zusammenhang stellte sich die Frage: "Wie denken Sie, inwieweit kann sich KI in der Medizin entwickeln und wird es möglich sein, das menschliche Gehirn mit einem Computer zu kombinieren?"

    Yuri Gorbachev Die Entwicklung der KI in der Medizin findet bereits jetzt statt, meist auf relativ niedrigem Niveau, aber die Schritte sind deutlich sichtbar. Ansätze zur Segmentierung von MRI-Bildern über Netzwerke werden immer beliebter. Unsere Kunden analysieren bereits die produktivsten Plattformen für solche Aufgaben - ein Beweis dafür, dass Produkte für die Veröffentlichung vorbereitet werden. Mir erscheint es wichtig, dass die Nutzung von Netzwerken häufig nicht nur das Ziel verfolgt, die Diagnosequalität zu verbessern, sondern auch zu verbessern.

    Es ist beängstigend, über die Synergie eines Computers mit einem menschlichen Gehirn nachzudenken. Zumindest scheinen die derzeitigen Methoden zur Lösung von KI-Problemen im Vergleich zum menschlichen Gehirn ziemlich unbeholfen zu sein.

    BildFrage enginerr_7
    Ich habe versucht, openVINO und ROS zu integrieren, es gelang mir nicht, die Frage ist, wie man OpenVINO richtig in ROS integriert.

    Yuri Gorbachev Die Frage zu beantworten ist etwas schwierig, es ist nicht klar, was nicht funktioniert hat. Die Verbindung eines bestimmten ROS-Knotens mit OpenVINO kann die grundlegendste Methode sein. Wir haben diese Methode selbst angewandt, es hat funktioniert.

    Ich empfehle, eine detailliertere Frage in unserem Forum zu stellen , sie helfen Ihnen dort, unser Team beantwortet dort Fragen mit dem Produktsupportteam.

    Bei der Verarbeitung biomedizinischer Bilder werden häufig fünfdimensionale Eingabedaten, dreidimensionale Faltungen und andere Operationen verwendet. Gibt es Pläne, sie zu unterstützen? Gibt es / ist geplant, rekursive Netzwerke, Netzwerke (oder einzelne Schichten) mit gemeinsamen Parametersätzen zu unterstützen?

    Yuri Gorbachev Ja, wir planen und implementieren Unterstützung für 3D-Konvolutionen und Pooling. Ich denke, wir können bis Ende des Jahres mit der Veröffentlichung der Produktversion mit Support rechnen. Es wird auch Unterstützung für wiederkehrende Netzwerke (LSTM / RNN) geben.

    BildFrage
    Warum ist die OpenCV-Bibliothek in binärer Form in OpenVINO enthalten? Jeder kann es selbst herunterladen und bauen.

    Yuri Gorbachev Die Gründe dafür sind durchaus üblich. OpenCV ist in Quellform verfügbar und das Erstellen ist im Wesentlichen eine einfache Aufgabe. Etwas schwieriger das effizienteste Paket zu bauen. Dies wirft oft Fragen auf und wir haben uns entschieden, nur das fertige Paket bereitzustellen. Wir verwenden keine besondere Magie, bauen Sie einfach richtig und mit den richtigen Optionen.

    Natürlich ist es nicht notwendig, es zu verwenden, aber ich würde empfehlen, die Leistung der Anwendung mit der Anwendung und mit dem benutzerdefinierten Build zu vergleichen. In einigen Fällen konnten Kunden ihre Anwendungen beschleunigen, weil sie zu unserem Vertrieb gewechselt haben.

    Im Falle der Lieferung von OpenVINO verwendet das OpenCV-DNN-Modul die Inference Engine als Engine zum Starten von Netzwerken. Im Durchschnitt ergibt sich eine Beschleunigung von mindestens dem Zweifachen gegenüber dem Code in OpenCV.

    BildFrage
    Die Struktur von OpenVINO umfasst geschulte Modelle. Wie unterscheiden sie sich von den Modellen, die im Internet verfügbar sind? Können sie in Anwendungen verwendet werden und gibt es Einschränkungen für die kommerzielle Nutzung?

    Yuri Gorbachev In der Tat gibt es als Teil von OpenVINO Modelle, deren Verwendung keinerlei Einschränkungen auferlegt (mit Ausnahme von Versuchen, das Originalmodell aus dem Format einer Zwischenpräsentation zu rekonstruieren) und keine Lizenzvereinbarung erfordern.

    Es gibt zwei Unterschiede zu öffentlichen Modellen:
    • Leistung und Größe der Modelle . Alle mitgelieferten Modelle lösen ein enges Problem (z. B. die Erkennung von Fußgängern). Dadurch können wir deren Größe erheblich reduzieren. Bei öffentlichen Modellen wird versucht, ein allgemeineres Problem zu lösen (Erkennung mehrerer Objektklassen), und dies erfordert viel rechenaufwendigere Modelle mit einer großen Anzahl von Parametern. Im obigen Beispiel (Fußgängererkennung) kann unser Modell ein Problem mindestens 10 Mal schneller lösen als ein öffentliches Problem, dessen Qualität nicht die schlechteste ist.
    • Exotische Probleme lösen . Es kommt oft vor, dass die Aufgabe in der akademischen Gemeinschaft nicht viel Interesse weckt und es nicht leicht ist, ein öffentliches Modell zu finden. Zum Beispiel die Erfassung der Rotationswinkel des Kopfes 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.

    BildFrage
    Es sieht so aus, als würden mehrere Modelle dasselbe tun, beispielsweise die Gesichtserkennung. Warum gibt es so viele?

    Yuri Gorbachev Es gibt zwei Unterschiede:
    • Das Verhältnis von Geschwindigkeit zu Qualität . Einige Modelle können aufgrund eines geringfügigen Qualitätsverlusts viel schneller arbeiten. Abhängig von den Anforderungen der Anwendung können Sie die eine oder die andere auswählen.
    • Unterschiedliche Bedingungen der Problemstellung . Zum Beispiel kann der Aufnahmewinkel einer Person die Erkennungsqualität beeinflussen, und wir bieten zwei Modelle für verschiedene Fälle an.

    Es ist zu beachten, dass für Modelle eine Datei mit einer Beschreibung vorhanden ist. Dort können Sie Leistungsdaten, Modellgenauigkeit und Beispiele für Bilder sehen, die an der Eingabe erwartet werden, d. H. Beschreibung des Skripts.

    BildFrage
    Warum werden wiederkehrende Netzwerke nicht unterstützt? Planen Sie die Unterstützung bestimmter Grundelemente und Topologien mit diesen Grundelementen?

    Yuri Gorbachev Unterstützung wird realisiert, es ist eine triviale Angelegenheit von Zeit und Prioritäten. Ich denke, wir sollten bis Ende des Jahres diese Funktionalität und eine Reihe von Neuerungen implementieren.

    BildFrage
    Was ist, wenn ich versuche, das Modell zu importieren und Fehlermeldungen erhalten. Ist es möglich, das Problem selbst zu lösen, oder müssen Sie sich an den Support wenden? Werden sie mich überhaupt unterstützen?

    Yuri Gorbachev Im Moment können Sie sich an das Support-Forum wenden, wir beantworten eine relativ große Anzahl von Fragen und lösen Probleme. Es sollte beachtet werden, dass die Model Optimizer-Komponente eine Gruppe von Python-Skripts ist. Im Prinzip bedeutet dies, dass Sie selbst etwas sehen und reparieren können, wenn Interesse besteht.
    Wir planen auch, Quellcode zu veröffentlichen - dies sollte es uns ermöglichen, komplexere Aufgaben zu erledigen als Fehler zu beheben.

    Nun, der Gewinner des Wettbewerbs ist Habrayuzer S_o_T mit einer Frage bezüglich der Unterstützung von NNEF. Glückwunsch!

    Jetzt auch beliebt: