Guida d'utilizatore di u software Qualcomm TensorFlow Lite SDK
Logo Company

Storia di rivisione

Revisione Data Descrizzione
AA settembre 2023 Liberazione iniziale
AB Ottobre 2023

Introduzione à i strumenti Qualcomm TFLite SDK

L'attrezzi di u kit di sviluppu di software Qualcomm TensorFlow Lite (Qualcomm TFLite SDK) furnisce u framework TensorFlow Lite per l'inferenza di intelligenza artificiale (AI) in u dispositivu, chì facilita i sviluppatori di applicazioni à sviluppà o eseguisce applicazioni AI adatte.
Stu documentu furnisce struzzioni step-by-step per cumpilà un SDK Qualcomm TFLite standalone è stabilisce l'ambiente di sviluppu. Questu permette u flussu di travagliu di sviluppatore, chì include:

  • crià l'ambiente di custruzzione induve u sviluppatore pò cumpilà u SDK Qualcomm TFLite
  • Sviluppendu applicazioni standalone Qualcomm TFLite SDK

Per u sustegnu, vede https://www.qualcomm.com/supportu. A figura seguente furnisce un riassuntu di u flussu di travagliu Qualcomm TFLite SDK: "
Figura 1-1 Flussu di travagliu Qualcomm TFLite SDK
L'uttellu richiede un SDK di piattaforma è una cunfigurazione file (formatu JSON) per generà l'artefatti Qualcomm TFLite SDK.

Per custruisce una applicazione end-to-end utilizendu sottosistemi multimediali, AI è visione di computer (CV), vede Qualcomm Intelligent Multimedia SDK (QIM SDK) Quick Start Guide (80-50450-51).
A tavula mostra a mappa di a versione Qualcomm TFLite SDK cù a liberazione di CodeLinaro tag:
Table 1-1 L'infurmazione di liberazione
Cunnessione

Qualcomm TFLite SDK versione Liberazione di CodeLinaro tag
V1.0 Qualcomm TFLITE.SDK.1.0.r1-00200-TFLITE.0

Tabella 1-2 Versioni Qualcomm TFLite SDK supportate

Qualcomm Versione TFLite SDK Pruduttu software supportatu Versione TFLite supportata
V1.0 QCS8550.LE.1.0
  • 2.6.0
  • 2.8.0
  • 2.10.1
  • 2.11.1
  • 2.12.1
  • 2.13.0

Referenze
Table 1-3 Documenti cunnessi

Titulu numeru
Qualcomm
00067.1 Nota di liberazione per QCS8550.LE.1.0 RNO-230830225415
Qualcomm Intelligent Multimedia SDK (QIM SDK) Quick Start Guide 80-50450-51
Riferimentu Qualcomm Intelligent Multimedia SDK (QIM SDK). 80-50450-50
Risorse
https://source.android.com/docs/setup/start/initializing

Table 1-4 Acronimi è difinizzioni

Acronimu o termu Definizione
AI Intelligenza artificiale
BIOS Sistema di basi di input / output
CV Visione informatica
IPK U so pacchettu file
QIM SDK Kit di sviluppu di software multimedia intelligente Qualcomm
SDK Kit di sviluppu di software
TFLite TensorFlow Lite
XNN Xth vicinu più vicinu

Configurate l'ambiente di creazione per i strumenti Qualcomm TFLite SDK

I strumenti Qualcomm TFLite SDK sò liberati in forma di fonte; dunque, stabilisce l'ambiente di custruzzione per cumpilà hè una stallazione obligatoria, ma una volta.

Prerequisites

  • Assicuratevi chì avete sudoaccess à a macchina host Linux.
  • Assicuratevi chì a versione di l'ospite Linux hè Ubuntu 18.04 o Ubuntu 20.04.
  • Aumentà u massimu di vigili di l'utilizatori è u massimu di istanze d'utilizatori nantu à u sistema host.
  • Aghjunghjite e seguenti linee di cumanda à /etc/sysctl.confand reboot the host: fs.inotify.max_user_instances=8192 fs.inotify.max_user_watches=542288

Installa i pacchetti host necessarii

I pacchetti d'ospiti sò stallati nantu à a macchina host Linux.
Eseguite i cumandamenti per installà i pacchetti host: $ sudo apt install -y jq $ sudo apt install -y texinfo chrpath libxml-simple-perl openjdk-8-jdkheadless
Per Ubuntu 18.04 è superiore:
$ sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5- dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontcon
Per più infurmazione, vede https://source.android.com/docs/setup/start/initializing.

Configurate l'ambiente docker

Un docker hè una piattaforma utilizata per custruisce, sviluppà, pruvà è furnisce software. Per cumpilà u SDK, u docker deve esse cunfiguratu nantu à a macchina host Linux.
Assicuratevi chì a virtualizazione di CPU hè attivata nantu à a macchina host Linux. Se ùn hè micca attivatu, fate ciò chì segue per attivà da i paràmetri di cunfigurazione di u sistema di input / output (BIOS) di basa:

  1. Abilita a virtualizazione da u BIOS:
    a. Preme F1 o F2 quandu u sistema hè avviatu per passà in u BIOS. A finestra di u BIOS hè visualizata.
    b. Cambia à a tabulazione Avanzate.
    c. In a sezione Configurazione CPU, stabilisce Tecnulugia di Virtualizazione à Abilitatu.
    a. Press F12 per salvà è esce, è dopu ripigliate u sistema.
    Se sti passi ùn funzionanu micca, seguite l'istruzzioni specifiche da u fornitore di u sistema per attivà a virtualizazione
  2. Eliminate qualsiasi vechji istanze di u docker:
    $ sudo apt remove docker-desktop
    $ rm -r $HOME/.docker/desktop
    $ sudo rm /usr/local/bin/com.docker.cli
    $ sudo apt purge docker-desktop
  3.  Configurate u repositoriu remoto di docker:
    $ sudo apt-get update $ sudo apt-get install ca-certificates curl gnupg lsb-release $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg - dearmor -o /etc/apt/keyrings/docker.gpg $ echo "deb [arch=$(dpkg -print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https:// download.docker.com/linux/ubuntu $ (lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/ docker.list > /dev/null
  4.  Installa u mutore docker:
    $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli
  5.  Aghjunghjite l'utilizatore à u gruppu docker:
    $ sudo groupadd docker $ sudo usermod -aG docker $USER
  6.  Reboot u sistema.

Generate una piattaforma SDK

U SDK di a piattaforma hè un requisitu obligatoriu per cumpilà i strumenti Qualcomm TFLite SDK. Fornisce tutte e dipendenze di a piattaforma richieste da u SDK Qualcomm TFLite.
Fate i seguenti per generà u SDK di a piattaforma:

  1. Crea una build per u pruduttu software preferitu.
    L'istruzzioni per custruisce a QCS8550.LE.1.0release sò furnite in e note di liberazione. Per accede à e note di liberazione, vede References.
    Se l'imaghjini sò stati custruiti prima, eseguite u passu 2, è poi creanu una custruzione pulita.
  2. Eseguite u cumandimu seguitu per custruisce l'imaghjini di u spaziu di l'utilizatori è u SDK di a piattaforma:
    Per QCS8550.LE.1.0, aghjunghje a funzione di a macchina qti-tflite-delegate in MACHINE_FEATURES in u kalama.conf file è fonte l'ambiente di custruzzione secondu l'istruzzioni da e note di liberazione.
    Dopu avè generatu l'imaghjini di u spaziu di l'utilizatori da a custruzione, eseguite u cumandimu seguitu per generà a piattaforma SDK.
    $ bitbake -fc populate_sdk qti-robotics-image

Custruisce strumenti Qualcomm TFLite SDK - flussu di travagliu di sviluppatore

U flussu di travagliu di strumenti Qualcomm TFLite SDK richiede chì u sviluppatore furnisce a cunfigurazione file cù entrate valide di input. I scripts di cunchiglia d'aiutu da u prughjettu tflite-tools (presente in l'arbulu di fonti Qualcomm TFLite SDK) furniscenu funzioni di utilità d'aiutu per stabilisce l'ambiente di cunchiglia, chì pò esse usatu per u flussu di travagliu Qualcomm TFLite SDK.
U sviluppatore custruisce i prughjetti Qualcomm TFLite SDK in u containeru è genera l'artefatti utilizendu l'utilità furnite da tflite-tools.
Dopu chì un cuntinuu Qualcomm TFLite SDK hè custruitu, u sviluppatore pò attaccà à u cuntinuu è aduprà l'utilità di l'aiutu in l'ambiente di cunchiglia di cuntainer per u sviluppu continuu.

  • Ci hè una pruvisione per installà l'artefatti Qualcomm TFLite SDK à un dispositivu Qualcomm cunnessu à l'ospite Linux via USB / adb.
  • Ci hè ancu una pruvisione per copià l'artefatti Qualcomm TFLite SDK da u cuntinuu à una macchina host differente induve u dispusitivu Qualcomm hè cunnessu.
    Cunnessione

A figura seguente elenca l'inseme di utilità dispunibuli dopu a stallazione di l'ambiente di custruzzione di u containeru utilizendu i script d'aiutu per custruisce u SDK Qualcomm TFLite.
Cunnessione

A figura mostra a sequenza di esecuzione di l'utilità:
Figura 4-3 Sequenza di utilità in host
Cunnessione

Sincronizza è custruisce Qualcomm TFLite SDK
U SDK Qualcomm TFLite hè cumpilatu quandu l'imaghjini docker hè creatu. Per sincronizà è custruisce u SDK Qualcomm TFLite, fate u seguente:

  1. Crea un repertoriu nantu à l'ospite file sistema per sincronizà u spaziu di travagliu Qualcomm TFLite SDK. Per
    exampLe: $mkdir $cd
  2. Scaricate u codice fonte Qualcomm TFLite SDK da CodeLinaro:
    $ repo init -u https://git.codelinaro.org/clo/le/sdktflite/tflite/ manifest.git –repo-branch=qc/stable –repo-url=git://git.quicinc.com/ tools/repo.git -m TFLITE.SDK.1.0.r1-00200-TFLITE.0.xml -b release && repo sync -qc –no-tags -j
  3. Crea un repertoriu nantu à l'ospite file sistema chì pò esse muntatu in docker. Per esample: mkdir-p / Stu repertoriu pò esse creatu in ogni locu nantu à a macchina host Linux, è ùn dipende micca da induve u prughjettu Qualcomm TFLite SDK hè sincronizatu. Dopu chì u flussu di travagliu hè cumpletu in u cuntinuu, l'artefatti Qualcomm TFLite SDK ponu esse truvati in u cartulare creatu in questu passu.
  4. Edite a cunfigurazione JSON file presente in /tflite-tools/ targets/le-tflite-tools-builder.json cù e seguenti entrate:
    "Image": "tflite-tools-builder", "Device_OS": "le", "Additional_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegates”: { “Hexagon_delegate”: “OFF”, “Gpu_delegate”: “ON”, “Xnnpack_delegate”: “ON” }, “TFLite_rsync_destination”: “ /", "SDK_path": "/build-qti-distro-fullstack-perf/tmpglibc/deploy/sdk>", "SDK_shell_file”: “”, “Base_Dir_Location”: “” }
    Per più infurmazione nantu à e voci citate in a cunfigurazione json file, vede u Docker.md readme file à /tflite-tools/.
    NOTA Per QCS8550, u delegatu Qualcomm® Hexagon™ DSP ùn hè micca supportatu.
  5. Fonte u script per stabilisce l'ambiente:
    $ cd /tflite-tools $ source ./scripts/host/docker_env_setup.sh
  6.  Custruite l'imaghjini di docker Qualcomm TFLite SDK: $ tflite-tools-host-build-image ./targets/le-tflite-tools-builder.json Se a configurazione di custruzzione falla, vede Risolve i prublemi di a configurazione di docker. Dopu à u cumpletu successu, u missaghju seguente hè visualizatu: "Status: Custruisce l'immagine cumpleta bè !!" Eseguisce stu passu crea ancu u SDK Qualcomm TFLite.
  7.  Eseguite u cuntainer Docker Qualcomm TFLite SDK. Questu principia u cuntinuu cù u tags furnitu in a cunfigurazione JSON file. $tflite-tools-host-run-container ./targets/le-tflite-tools-builder.json
  8. Attach to the container principiatu da u passu precedente.
    $ docker attache

U SDK Qualcomm TFLite hè cumpilatu, è l'artefatti sò pronti per esse implementati o più ponu esse
utilizatu per generà u plug-in QIM SDK TFLite.

Cunnette u dispositivu à l'ospitu è ​​implementà artefatti]

Dopu a compilazione, ci sò dui meccanismi per cunnette u dispusitivu à un òspite è implementà u
Artefatti Qualcomm TFLite SDK.

  • Dispositivu cunnessu à un host Linux locale:
    Un sviluppatore cunnetta u dispusitivu à una stazione di travagliu è stalla l'artefatti Qualcomm TFLite SDK da u containeru direttamente nantu à u dispusitivu (QCS8550).
  • Dispositivu cunnessu à un host remoto:
    Un sviluppatore cunnetta u dispositivu à una stazione di travagliu remota, è ponu utilizà i cumandamenti di l'installatore di u pacchettu di pacchettu nantu à e plataforme Windows è Linux per installà l'artefatti Qualcomm TFLite SDK à u dispusitivu (QCS8550)

Figura 4-4 Cunnessione di a scheda di u dispositivu à u sviluppatore è a stazione di travagliu remota
Cunnessione

Cunnette u dispusitivu à a stazione di travagliu

U dispusitivu hè cunnessu à a stazione di travagliu è u cuntinuu di sviluppu pò accede à u dispusitivu per USB / adb.
A figura mostra u staghè in a sequenza di u flussu di travagliu Qualcomm TFLite SDK:
Cunnessione

  1. Eseguite i seguenti cumandamenti per installà l'artefatti à u dispusitivu:
    $ tflite-tools-device-prepare
    $ tflite-tools-device-deploy
  2. Per disinstallà l'artefatti, eseguite u cumandimu seguente:
    $ tflite-tools-device-packages-remove

Cunnette u dispusitivu à a macchina remota

U dispusitivu hè culligatu à una macchina remota, è u cuntinuu Qualcomm TFLite SDK ùn pò accede à u dispusitivu sopra USB / ad b.
A figura mostra u staghè in a sequenza di u flussu di travagliu Qualcomm TFLite SDK:
Cunnessione

Eseguite i seguenti cumandamenti in u containeru tflite-tools per copià l'artefatti in una macchina remota
secondu u gestore di pacchetti nantu à u dispusitivu:
$ tflite-tools-remote-sync-ipk-rel-pkg
NOTA L'infurmazione di a macchina remota hè furnita in a cunfigurazione JSON file.
Installa artefatti per a piattaforma Windows
L'artefatti Qualcomm TFLite SDK ponu esse installati nantu à u dispusitivu basatu annantu à u sistema operatore di a macchina remota.

Per a piattaforma Windows, fate u seguente:
In PowerShell, utilizate u script seguente: PS C:
> adb root PS C:> adb disable-verity PS C:> adb reboot PS C:> adb wait-for-device PS C:> adb root PS C:> adb remount PS C:> adb shell mount -o remount, rw / PS C:> adb shell "mkdir -p /tmp" PS C:> adb push /tmp Se u pacchettu hè un ipk (per QCS8550.LE.1.0), utilizate i seguenti cumandamenti: PS C:> adb shell " opkg -force-depends -force-reinstall -force-overwrite install /tmp/"

Installa artefatti per a piattaforma Linux
Aduprate i seguenti cumandamenti:
$ adb root $ adb disable-verity $ adb reboot $ adb wait-for-device $ adb root $ adb remount $ adb shell mount -o remount,rw / $ adb shell "mkdir -p /tmp" $ adb push /tmp If u pacchettu hè un ipk (per QCS8550.LE.1.0): $ adb shell "opkg -force-depends -force-reinstall -force-overwrite install /tmp/"

Pulisce l'immagine docker
Dopu avè finitu u flussu di travagliu di u sviluppatore, l'ambiente docker deve esse puliti per liberà l'almacenamiento in u discu. A pulizia di u docker elimina i cuntenituri è l'imaghjini inutilizati, liberendu cusì u spaziu di discu.
Aduprate i seguenti cumandamenti per pulizziari l'imagine docker:

  1. Eseguite u cumandimu seguitu nantu à a stazione di travagliu Linux:
    $ cd /tflite-tools
  2. Ferma u cuntinuu:
    $ tflite-tools-host-stop-container ./targets/ le-tflite-tools-builder.json
  3. Eliminate u cuntinuu:
    $ tflite-tools-host-rm-container ./targets/ le-tflite-tools-builder.json
  4. Eliminate l'imaghjini docker più vechje:
    $ tflite-tools-host-images-cleanup

Risolve i prublemi di cunfigurazione di docker

Se u cumandamentu tflite-tools-host-build-image torna un Nospace lasciatu nantu à u messagiu di u dispositivu, allora move u repertoriu docker à / local / mnt. Fate i seguenti per risolve i prublemi di a stallazione:

  1. Fate una copia di salvezza di u docker esistente files:
    $ tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date + %s).tar.gz
  2. Ferma u docker:
    $ service docker stop
  3. Verificate chì nisun prucessu docker hè in esecuzione:
    $ ps faux | grep docker
  4. Verificate a struttura di u cartulare docker:
    $ sudo ls /var/lib/docker/
  5. Sposta u cartulare docker à una nova partizione:
    $ mv /var/lib/docker /local/mnt/docker
  6. Fate un ligame simbolicu à u cartulare docker in a nova partizione:
    $ ln -s /local/mnt/docker /var/lib/docker
  7. Assicuratevi chì a struttura di u cartulare docker resta invariata:
    $ sudo ls /var/lib/docker/
  8. Start docker:
    $ service docker start
  9. Riavvia tutti i cuntenituri dopu avè spustatu u cartulare docker.

Generate TFLite SDK cù a stazione di travagliu Linux

U flussu di travagliu TFLite SDK pò esse attivatu senza cuntenituri utilizendu a stazione di travagliu Linux. Questa prucedura hè una alternativa à l'usu di cuntenituri.
Per sincronizà è custruisce u SDK Qualcomm TFLite, fate u seguente:

  1. Crea un repertoriu nantu à l'ospite file sistema per sincronizà u spaziu di travagliu Qualcomm TFLite SDK. Per esampLe:
    $mkdir
    $cd
  2. Scaricate u codice fonte Qualcomm TFLite SDK da CodeLinaro:
    $ repo init -u https://git.codelinaro.org/clo/le/sdktflite/tflite/ manifest.git –repo-branch=qc/stable –repo-url=git://git.quicinc.com/ tools/repo.git -m TFLITE.SDK.1.0.r1-00200-TFLITE.0.xml -b release && repo sync -qc –no-tags -j8 && repo sync -qc -no-tags -j8
  3. 3. Edite a cunfigurazione JSON file presente in /tflite-tools/ targets/le-tflite-tools-builder.json cù e seguenti entrate
    "Image": "tflite-tools-builder", "Device_OS": "le", "Additional_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegates”: { “Hexagon_delegate”: “OFF”, “Gpu_delegate”: “ON”, “Xnnpack_delegate”: “ON” }, “TFLite_rsync_destination”: “ ”, “SDK_path”: “/build-qti-distro-fullstack-perf/tmpglibc/deploy/sdk>”, “SDK_shell_file”: “”, “Base_Dir_Location”: “”
    Per più infurmazione nantu à e voci citate in a cunfigurazione json file, vede u Docker.md readme file à /tflite-tools/.
    NOTA Per QCS8550, u delegatu Hexagon DSP ùn hè micca supportatu
  4. Fonte u script per stabilisce l'ambiente:
    $ cd /tflite-tools
    $ source ./scripts/host/host_env_setup.sh
  5. Custruisce u SDK Qualcomm TFLite.
    $ tflite-tools-setup targets/le-tflite-tools-builder.json
  6.  Eseguite i seguenti cumandamenti di utilità in a stessa shell Linux per cullà l'artefatti TFLite SDK da 
    TFLite_rsync_destination.
    $ tflite-tools-host-get-rel-package targets/le-tflite-tools-builder.json
    $ tflite-tools-host-get-dev-package targets/le-tflite-tools-builder.json
  7. Installa artefatti basatu annantu à u sistema operatore
    • Per a piattaforma Windows, nantu à PowerShell, utilizate u script seguente
      PS C:> adb root PS C:> adb disable-verity PS C:> adb reboot PS C:> adb wait-for-device PS C:> adb root PS C:> adb remount PS C:> adb shell mount - o remount,rw / PS C:> adb shell "mkdir -p /tmp" PS C:> adb push /tmp
      Se u pacchettu hè un ipk (per QCS8550.LE.1.0), utilizate i seguenti cumandamenti:
      PS C:> adb shell "opkg -force-depends -force-reinstall -forceoverwrite install /tmp/
      Per a piattaforma Linux, utilizate u script seguente:
      $ adb root $ adb disable-verity $ adb reboot $ adb wait-for-device $ adb root $ adb remount $ adb shell mount -o remount,rw / $ adb shell "mkdir -p /tmp" $ adb push /tmp Se u pacchettu hè un ipk (per QCS8550.LE.1.0):
      $ adb shell "opkg -force-depends -force-reinstall -force-overwrite install /tmp/"

Genera artefatti Qualcomm TFLite SDK per a creazione di QIM SDK

Per utilizà l'artefatti generati per attivà u plug-in Qualcomm TFLite SDK GStreamer in QIM SDK, fate u seguente:

  1. Cumplete a prucedura in Sync è custruisce Qualcomm TFLite SDK, è poi eseguite u cumandimu seguente: $ tflite-tools-host-get-dev-tar-package ./targets/le-tflite-toolsbuilder.json
    Un catrame file hè generatu. Contene u SDK Qualcomm TFLite à u percorsu furnitu à "TFLite_rsync_destination"
  2. Per attivà u plug-in Qualcomm TFLite SDK GStreamer, utilizate u tar file cum'è un argumentu in a cunfigurazione JSON file per a creazione di QIM SDK.
    Per informazioni nantu à cumpilà QIM SDK, vede Qualcomm Intelligent Multimedia SDK (QIM SDK) Quick Start Guide (80-50450-51).

Custruisce Qualcomm TFLite SDK in modu incrementale

Se custruite u Qualcomm TFLite SDK per a prima volta, vede Custruisce strumenti Qualcomm TFLite SDK - flussu di travagliu di sviluppatore. U listessu ambiente di custruzzione pò esse riutilizatu per u sviluppu incrementale.
L'utilità d'aiutu (in u cuntinuu) citati in a figura sò dispunibuli per i sviluppatori per cumpilà l'applicazioni modificate è i plug-in.
Figura 5-1 Workflow in un containeru

Cunnessione

Dopu chì i cambiamenti di codice sò finiti in u cartulare di codice, fate u seguente:

  1. Cumpilà u codice mudificatu:
    $ tflite-tools-incremental-build-install
  2. Codice compilatu di u pacchettu:
    $ tflite-tools-ipk-rel-pkg o $ tflite-tools-deb-rel-pkg
  3. Sincronizza i pacchetti di liberazione cù l'ospite file sistema:
    $ tflite-tools-remote-sync-ipk-rel-pkg
    Or
    $ tflite-tools-remote-sync-deb-rel-pkg
  4. Preparate un pacchettu di sviluppu:
    $ tflite-tools-ipk-dev-pkg
    L'artefatti compilati si trovanu in u cartulare TFLite_rsync_destination citatu in u JSON. file, chì pò esse copiatu in ogni repertoriu.

U travagliu cù u Delegatu TFLite esternu di QNN

Un Delegatu Esternu TFLite permette di eseguisce i vostri mudelli (parte o sanu) nantu à un altru esecutore utilizendu biblioteche furnite da un terzu di fiducia cum'è QNN da Qualcomm. Stu mecanismu pò sfruttà una varietà di acceleratori in u dispositivu cum'è a GPU o Hexagon Tensor Processor (HTP) per inferenza. Questu furnisce i sviluppatori un metudu flessibile è disaccoppiatu da u TFLite predeterminatu per accelerà l'inferenza.

Prerequisites:

  • Assicuratevi di utilizà una stazione di travagliu Ubuntu per estrarre a pila QNN AI.
  • Assicuratevi chì aduprate una versione QNN 2.14 per esse in cunghjunzione cù Qualcomm TFLite SDK

U SDK Qualcomm TFLite hè attivatu per eseguisce inferenze nantu à parechji back-end QNN attraversu Delegatu esternu TFLite per QNN. I mudelli TFLite cù una rapprisintazioni flatbuffer cumuni ponu esse eseguiti in GPU è HTP.
Dopu chì i pacchetti Qualcomm TFLite SDK sò stallati nantu à u dispusitivu, fate u seguente per installà e librerie QNN in u dispusitivu.

  1. Scaricate Qualcomm Package Manager 3 per Ubuntu.
    a. Cliccate https://qpm.qualcomm.com/, è cliccate Strumenti.
    b. In u pane di manca, in u campu di Strumenti di ricerca, scrivite QPM. Da a lista System OS, selezziunate Linux.
    I risultati di ricerca mostranu una lista di Qualcomm Package Managers.
    c. Selezziunate Qualcomm Package Manager 3 è scaricate u pacchettu Linux Debian.
  2. Installa Qualcomm Package Manager 3 per Linux. Aduprate u cumandimu seguitu:
    $ dpkg -i –force-overwrite /path/to/
    QualcommPackageManager3.3.0.83.1.Linux-x86.deb
  3. Scaricate u Qualcomm®
    AI Engine Direct SDK nantu à a stazione di travagliu Ubuntu.
    a. Cliccate https://qpm.qualcomm.com/ è cliccate Strumenti.
    b. In u pane di manca, in u campu di Strumenti di ricerca, scrivite AI stack. Da a lista System OS, selezziunate Linux.
    A A lista a discesa chì cuntene diversi mutori di stack AI hè visualizata.
    c. Cliccate Qualcomm® AI Engine Direct SDK è scaricate u pacchettu Linux v2.14.0.
  4. Installa Qualcomm® AI Engine Direct SDK nantu à a stazione di travagliu Ubuntu.
    a. Attivà a licenza:
    qpm-cli -license-activate qualcomm_ai_engine_direct
    b Installa AI Engine Direct SDK:
    $ qpm-cli –extract /path/to/qualcomm_ai_engine_direct.2.14.0.230828.Linux-AnyCPU.qik
  5. Push biblioteche à u dispusitivu da a stazione di travagliu Ubuntu cù adb push.
    $ cd /opt/qcom/aistack/qnn/2.14.0.230828 $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnDsp.so /usr/lib/ $ adb push ./lib/aarch64-oe- linux-gcc11.2/ libQnnDspV66Stub.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnGpu.so /usr/lib/ $ adb push ./lib/aarch64-oe- linux-gcc11.2/ libQnnHtpPrepare.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnHtp.so /usr/lib/ $ adb push ./lib/aarch64-oe- linux-gcc11.2/ libQnnHtpV68Stub.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnSaver.so /usr/lib/ $ adb push ./lib/aarch64-oe- linux-gcc11.2/ libQnnSystem.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnTFLiteDelegate.so /usr/lib/ $ adb push ./lib/hexagon-v65/ unsigned/ libQnnDspV65Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-v66/unsigned/ libQnnDspV66Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-v68/unsigned libQnnHtpV68Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-v69/unsigned/ libQnnHtpV69Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-v73/nSkelt/V libQ73/nSkelt. cusì /usr/lib/rfsa/adsp

Pruvate Qualcomm TFLite SDK

U SDK Qualcomm TFLite furnisce certi example applicazioni, chì ponu esse aduprate per validà, benchmark, è uttene l'accuratezza di i mudelli chì un sviluppatore vole valutà.
Dopu chì i pacchetti Qualcomm TFLite SDK sò stallati nantu à u dispusitivu, u runtime hè dispunibule nantu à u dispusitivu per eseguisce questi ex.ample applicazioni.
Prerequisite
Crea i seguenti cartulari nantu à u dispusitivu:
$ adb shell "mkdir /data/Models"
$ adb shell "mkdir /data/Lables"
$ adb shell "mkdir /data/profiling"

L'immagine di l'etichetta

Una maghjina di l'etichetta hè una utilità furnita da u SDK Qualcomm TFLite chì mostra cumu pudete carricà un mudellu TensorFlow Lite pretrained è cunvertitu è ​​l'utilizanu per ricunnosce l'uggetti in l'imaghjini. Prerequisites:
Scarica sampu mudellu è l'imagine:
Pudete utilizà qualsiasi mudellu cumpatibile, ma u seguente mudellu MobileNet v1 offre una bona dimustrazione di un mudellu furmatu per ricunnosce 1000 oggetti diffirenti.

  • Pigliate un mudellu
    $ curl https://storage.googleapis.com/download.tensorflow.org/models/ mobilenet_v1_2018_02_22/mobilenet_v1_1.0_224.tgz | tar xzv -C /data $ mv /data/mobilenet_v1_1.0_224.tflite /data/Models/
  • Pigliate etichette
    $ curl https://storage.googleapis.com/download.tensorflow.org/models/ mobilenet_v1_1.0_224_frozen.tgz | tar xzv -C /data mobilenet_v1_1.0_224/ labels.txt
    $ mv /data/mobilenet_v1_1.0_224/labels.txt /data/Labels/
    Dopu avè cunnessu à u container docker Qualcomm TFLite SDK, l'imaghjini pò esse truvata à:
    "/mnt/tflite/src/tensorflow/tensorflow/lite/examples/label_image/testdata/grace_hopper.bmp"
    a. Spingi questu file à/dati/etichette/
    b. Eseguite u cumandimu:
    $ adb shell "label_image -l /data/Labels/labels.txt -i /data/Labels/grace_hopper.bmp -m /data/Models/mobilenet_v1_1.0_224.tflite -c 10 -j 1 -p 1"

Benchmark

Qualcomm TFLite SDK furnisce l'uttellu di benchmarking per calculà u rendiment di diversi tempi di esecuzione.
Questi strumenti di benchmark attualmente misuranu è calculanu statistiche per e seguenti metriche di rendiment impurtanti:

  • Tempu di inizializazione
  • U tempu di inferenza di u statu di riscaldamentu
  • U tempu di inferenza di u statu stazionariu
  • Usu di memoria durante u tempu di inizializazione
  • L'usu generale di a memoria

Prerequisites

Spingi i mudelli per esse pruvati da TFLite Model Zoo (https://tfhub.dev/) à/data/Models/. Corri u seguenti scripts:  

  • XNN Pack
    $ adb shell "benchmark_model –graph=/data/Models/ — enable_op_profiling=true –use_xnnpack=true –num_threads=4 –max_secs=300 –profiling_output_csv_file=/data/profiling/”
  • Delegatu GPU
    $ adb shell “benchmark_model –graph=/data/Models/ — enable_op_profiling=true –use_gpu=true –num_runs=100 –warmup_runs=10 – max_secs=300 –profiling_output_csv_file=/data/profiling/”
  • Delegatu Esternu
    QNN Delegatu Esternu GPU:
    Eseguite l'inferenza cù u mudellu à virgola flottante:
    $ adb shell-command “benchmark_model –graph=/data/Models/ .tflite –external_delegate_path=libQnnTFLiteDelegate.so — external_delegate_options='backend_type:gpu;library_path:/usr/lib/ libQnnGpu.so;skel/rfussrry/_libQnnGpu.so; /adsp'"
    QNN Delegatu Esternu HTP:
    Eseguite inferenza cù u mudellu quant:
    $ adb shell-command “benchmark_model –graph=/data/Models/ .tflite –external_delegate_path=libQnnTFLiteDelegate.so — external_delegate_options='backend_type:htp;library_path:/usr/lib/ libQnnHtp.so;libQnnHtp.so;lib/dirrlisbrary_ /adsp'"

Strumentu di precisione

U SDK Qualcomm TFLite furnisce un strumentu di precisione per calculà l'accuratezza di mudelli cù diversi run-times.

  • Classificazione cù u delegatu GPU
    I passi per scaricà u necessariu files per pruvà si trova à: "/mnt/tflite/src/tensorflow/tensorflow/lite/tools/evaluation/tasks/ imagenet_image_classificatio/README.md"
    U binariu per eseguisce stu strumentu hè digià parte di u SDK, perchè u sviluppatore ùn hà micca bisognu di custruisce di novu.
    $ adb shell "image_classify_run_eval - model_file=/data/Models/ –ground_truth_images_path=/data/ — ground_truth_labels=/data/ –model_output_labels=/ data/ –delegate=gpu”
  • Rilevamentu di l'ughjettu cù u pacchettu XNN
    $ adb shell "inf_diff_run_eval -model_file=/data/Models/ –delegate=xnnpac

INFORMAZIONI LEGALI

U vostru accessu è usu di stu documentu, cù qualsiasi specificazioni, bordu di riferimentu files, disegni, diagnostichi è altre informazioni cuntenute quì (collettivamente questu "Documentazione"), hè sottumessu à u vostru (cumpresa a corporazione o altra entità giuridica chì rapprisentanu, cullettivamente "Tu" o "U vostru") accettazione di i termini è e cundizioni ("Condizioni di usu") stabilitu quì sottu. Se ùn avete micca d'accordu à sti Termini d'Usu, ùn pudete micca aduprà sta Documentazione è distrughjerà immediatamente ogni copia.

  1. Avvisu Legale.
    Sta Documentazione hè dispunibule per voi solu per u Vostru usu internu cù quelli prudutti è offerte di serviziu di Qualcomm Technologies, Inc. ("Qualcomm Technologies") è i so affiliati descritti in sta Documentazione, è ùn deve esse aduprata per altri scopi. Sta Documentazione ùn pò esse alterata, editata o mudificata in ogni modu senza l'appruvazioni scritta di Qualcomm Technologies. Usu micca autorizatu o divulgazione di questu
    A documentazione o l'infurmazioni cuntenute quì hè strettamente pruibita, è accettate di indemnizà Qualcomm Technologies, i so affiliati è licenziatori per qualsiasi danni o perdite subiti da Qualcomm Technologies, i so affiliati è licenziatori per tali usi o divulgazioni non autorizati di sta Documentazione, in tuttu o. parte. Qualcomm Technologies, i so affiliati è i licenziatori conservanu tutti i diritti è a pruprietà in questa Documentazione. Nisuna licenza à alcuna marca, patente, copyright, u dirittu di prutezzione di u travagliu di maschera o qualsiasi altru dirittu di pruprietà intellettuale hè cuncessa o implicata da sta Documentazione o qualsiasi informazione divulgata quì, cumprese, ma senza limitazione, qualsiasi licenza per fà, utilizà, impurtà o vende qualsiasi pruduttu, serviziu o offerta di tecnulugia chì incarna l'infurmazioni in questa Documentazione.
    STA DOCUMENTAZIONE SERA FORNITA "COME E'" SENZA GARANTIA DI ALCUNA TIPI, SIA ESPRESSA, IMPLICITA, STATUTARIA O ALTRU. À LA MASSIMA MESSA PERMISSATA DA LEGGE, QUALCOMM TECHNOLOGIES, I SO AFFILIATI È I LICENZIANTI SPECIFICAMENTE DECLINAN TUTTE GARANTIE DI TITOLU, COMMERCIABILITÀ, NON VIOLAZIONE, IDONEITÀ PER UN SCOPO PARTICULARI, SODDISFATTU, QUALITÀ DI GARANTITÀ, A SATISFATTIZZA USU COMMERCIALE OR FORA D'UN CURSU DI TRATTÀ O CURSU DI PRESTA. D'OLTRE, NÈ QUALCOMM TECHNOLOGIES, NÈ NÈ SUE AFFILIATE O LICENSORS, SERA RESPONSABILE DI VOI O DI TERZI PER QUALSIASI SPESE, PERDITE, USU, O ACZIONI IN QUANTO TU IMPRENDITI O FATTI DA VOI IN RELICUMENTA.
    Certi kits di prudutti, arnesi è materiali riferiti in sta Documentazione ponu esse bisognu di accettà termini è cundizioni supplementari prima di accede o di utilizà quelli elementi.
    I dati tecnichi specificati in sta Documentazione ponu esse sottumessi à i Stati Uniti è altre lege di cuntrollu di l'esportazione applicabili. A trasmissione contru à i Stati Uniti è qualsiasi altra legge applicabile hè strettamente pruibita.
    Nunda in questa Documentazione ùn hè una offerta per vende qualsiasi di i cumpunenti o di i dispositi riferiti quì.
    Questa Documentazione hè sughjetta à cambià senza più avvisu. In casu di cunflittu trà sti Termini d'usu è u WebTermini di usu di u situ nantu à www.qualcomm.com o a Politica di privacy di Qualcomm riferita www.qualcomm.com, sti Termini d'Usu cuntrulleranu. In casu di cunflittu trà questi Termini d'Usu è qualsiasi altru accordu (scrittu o clicatu) eseguitu da Voi è Qualcomm Technologies o un affiliatu Qualcomm Technologies in quantu à u Vostru accessu è l'usu di sta Documentazione, l'altru accordu cuntrullà. .
    Questi Termini d'Usu seranu guvernati è interpretati è infurzati in cunfurmità cù e lege di u Statu di California, escludendu a Cunvenzione di l'ONU nantu à a Vendita Internaziunale di Merchandise, senza riguardu à i principii di cunflittu di liggi. Qualchese disputa, rivendicazione o cuntruversia derivante da o in relazione cù questi Termini d'Usu, o a violazione o a validità di queste, serà ghjudicata solu da un tribunale di ghjuridizione competente in u conte di San Diego, Statu di California, è voi accunsentite a ghjuridizione persunale di tali tribunale per questu scopu.
  2. Dichjarazioni d'attribuzione di marca è produttu.
    Qualcomm hè una marca o una marca registrata di Qualcomm Incorporated. Arm hè una marca registrata di Arm Limited (o i so filiali) in i Stati Uniti è / o in altrò. A marca Bluetooth® hè una marca registrata di Bluetooth SIG, Inc. Altri prudutti è nomi di marca riferiti in questa Documentazione ponu esse marchi o marchi registrati di i so rispettivi pruprietarii.
    I prudutti di Snapdragon è Qualcomm riferiti in questa Documentazione sò prudutti di Qualcomm Technologies, Inc. è / o di e so filiali. I tecnulugii patentati Qualcomm sò licenziati da Qualcomm Incorporated.

Logo Company

Documenti / Risorse

Software Qualcomm TensorFlow Lite SDK [pdfGuida di l'utente
Software TensorFlow Lite SDK, Software Lite SDK, Software SDK, Software

Referenze

Lascia un cumentu

U vostru indirizzu email ùn serà micca publicatu. I campi obbligatori sò marcati *