Zum Hauptinhalt wechseln
Support-Wissensdatenbank

Schritte zur Konvertierung und Inferenzerkennung2*- und Layout-LM*-Modelle mit OpenVINO™ Toolkit

Inhaltstyp: Fehlerbehebung   |   Artikel-ID: 000095500   |   Letzte Überprüfung: 23.06.2023

Umgebung

OpenVINO™ toolkit 2022.3 LTS Ubuntu* 20.04 LTS Python* 3.8.10

Beschreibung

Es konnte nicht ermittelt werden, wie Detectron2*- und Layout-LM*-Modelle in OpenVINO™ Intermediate Representation (IR) und Inferencierung mit CPU-Plugin konvertiert werden.

Lösung

Zur Konvertierung des Detectron2-Modells folgen Sie dem Colab-Tutorial , um das Detectron2*-Modell mit PyTorch* zu trainieren und zu inferenzen, und befolgen Sie auch die unten beschriebenen Schritte, um das Modell in das ONNX*-Format und dann in das IR-Format zu konvertieren.

  1. Exportieren Sie das Detectron2* PyTorch*-Modell in das ONNX*-Format, indem Sie die offiziellen Detectron2, colab2 Tutorials verwenden, indem Sie die export_model.py mit der Tracing-Funktion verwenden.

    $ python export_model.py --config-file ./output.yaml --sample-image ./new.jpg --output ./model/ --export-method tracing --format onnx MODEL. GEWICHTE ./output/model_final.pth-MODELL. GERÄT, CPU

  2. Erstellen Sie für output.yaml die Konfigurationsdatei, indem Sie die folgenden Zeilen im Colab-Tutorial hinzufügen:

    print(cfg.dump())
    mit open("output.yaml", "w") als f:
    f.write(cfg.dump())

  3. Installieren OpenVINO über pip*:

    $ pip install openvino-dev

  4. Konvertieren ONNX* Modell zu Zwischendarstellung (IR):

    $ mo --input_model ./model/model.onnx

  5. Führen Sie benchmark_app zur Inferenz mit OpenVINO aus:

    Mit ONNX* Modell:
    $ benchmark_app -m model.onnx -d CPU -niter 100 -api async -hint Durchsatz
    $ benchmark_app -m model.onnx -d CPU -niter 100 -api async -hint Latenz

    Mit IR-Modell:
    $ benchmark_app -m model.xml -d CPU -niter 100 -api async -hint Durchsatz
    $ benchmark_app -m model.xml -d CPU -niter 100 -api async -hint Latenz

So konvertieren Sie das Layout-LM-Modell. Führen Sie die unten beschriebenen Schritte aus, um das Layout-LM-Modell und die Inferenz mit OpenVINO™ zu konvertieren.

  1. C-Onvertierung des PyTorch*-Modells in das ONNX*-Modellformat:

    $pip install transformers[onnx]
    $ python3 -m transformers.onnx --model=microsoft/layoutlm-base-uncased onnx

  2. Installieren OpenVINO über pip*:

    $ pip install openvino-dev

  3. Konvertieren ONNX* Modell zu Zwischendarstellung (IR):

    $ mo --input_model ./onnx/model.onnx

  4. Führen Sie benchmark_app zur Inferenz mit OpenVINO aus:

    Mit ONNX* Modell:
    $ benchmark_app -m onnx/model.onnx -d CPU -niter 100 -api async -hint throughput -data_shape input_ids[1,1], bbox[1,1,4], attention_mask[1,1], token_type_ids[1,1]
    $ benchmark_app -m onnx/model.onnx -d CPU -niter 100 -api async -hint latency -data_shape input_ids[1,1], bbox[1,1,4], attention_mask[1,1], token_type_ids[1,1]

    Mit IR-Modell:
    $ benchmark_app -m model.xml -d CPU -niter 100 -api async -hint throughput -data_shape input_ids[1,1], bbox[1,1,4], attention_mask[1,1], token_type_ids[1,1]
    $ benchmark_app -m model.xml -d CPU -niter 100 -api async -hint latency -data_shape input_ids[1,1], bbox[1,1,4], attention_mask[1,1], token_type_ids[1,1]

    Hinweis

    Eingabeformen (definiert durch -data_shape in den oben genannten Befehlen) können je nach Anwendungsfall unterschiedlich sein.

Zugehörige Produkte

Dieser Artikel bezieht sich auf 1-Produkte.

Disclaimer / Rechtliche Hinweise

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.