Qualcomm TensorFlow Lite SDK sagteware gebruikersgids
Hersieningsgeskiedenis
Hersiening | Datum | Beskrywing |
AA | September 2023 | Aanvanklike vrystelling |
AB | Oktober 2023 |
|
Inleiding tot Qualcomm TFLite SDK-gereedskap
Die Qualcomm TensorFlow Lite-sagteware-ontwikkelingskit (Qualcomm TFLite SDK)-nutsgoed verskaf die TensorFlow Lite-raamwerk vir kunsmatige intelligensie (AI)-afleidings op die toestel, wat toepassingsontwikkelaars fasiliteer om geskikte KI-toepassings te ontwikkel of uit te voer.
Hierdie dokument verskaf stap-vir-stap instruksies om 'n selfstandige Qualcomm TFLite SDK saam te stel en die ontwikkelingsomgewing op te stel. Dit maak die ontwikkelaarwerkvloei moontlik, wat die volgende insluit:
- die opstel van die bou-omgewing waar die ontwikkelaar die Qualcomm TFLite SDK kan saamstel
- die ontwikkeling van selfstandige Qualcomm TFLite SDK-toepassings
Vir ondersteuning, sien https://www.qualcomm.com/ondersteuning. Die volgende figuur gee 'n opsomming van die Qualcomm TFLite SDK-werkvloei: ”
Figuur 1-1 Qualcomm TFLite SDK-werkvloei
Die instrument vereis 'n platform SDK en 'n konfigurasie file (JSON-formaat) om die Qualcomm TFLite SDK-artefakte te genereer.
Sien Qualcomm Intelligent Multimedia SDK (QIM SDK) Quick Start Guide (80-50450-51) om 'n end-tot-end-toepassing te bou deur multimedia-, KI- en rekenaarvisie (CV) substelsels te gebruik.
Die tabel toon Qualcomm TFLite SDK weergawe kartering met CodeLinaro vrystelling tag:
Tabel 1-1 Vrystelling inligting
Qualcomm TFLite SDK weergawe | CodeLinaro vrystelling tag |
V1.0 | Qualcomm TFLITE.SDK.1.0.r1-00200-TFLITE.0 |
Tabel 1-2 Ondersteunde Qualcomm TFLite SDK-weergawes
Qualcomm TFLite SDK weergawe | Ondersteunde sagteware produk | Ondersteunde TFLite weergawe |
V1.0 | QCS8550.LE.1.0 |
|
|
||
|
||
|
||
|
||
|
Verwysings
Tabel 1-3 Verwante dokumente
Titel | Nommer |
Qualcomm | |
00067.1 Vrystellingsnota vir QCS8550.LE.1.0 | RNO-230830225415 |
Qualcomm Intelligente Multimedia SDK (QIM SDK) Vinnige Begingids | 80-50450-51 |
Qualcomm Intelligente Multimedia SDK (QIM SDK) Verwysing | 80-50450-50 |
Hulpbronne | |
https://source.android.com/docs/setup/start/initializing | – |
Tabel 1-4 Akronieme en definisies
Akroniem of term | Definisie |
AI | Kunsmatige intelligensie |
BIOS | Basiese toevoer/afvoerstelsel |
CV | Rekenaarvisie |
IPK | Sy pakkie file |
QIM SDK | Qualcomm Intelligente multimedia sagteware-ontwikkelingskit |
SDK | Sagteware-ontwikkelingstel |
TFLite | TensorFlow Lite |
XNN | Xth naaste buurman |
Stel bou-omgewing op vir Qualcomm TFLite SDK-nutsgoed
Die Qualcomm TFLite SDK-nutsgoed word in bronvorm vrygestel; daarom is die vestiging van die bou-omgewing om dit saam te stel 'n verpligte maar eenmalige opstelling.
Voorvereistes
- Maak seker dat jy sudo-toegang tot die Linux-gasheermasjien het.
- Maak seker dat die Linux-gasheerweergawe Ubuntu 18.04 of Ubuntu 20.04 is.
- Verhoog die maksimum gebruikershorlosies en maksimum gebruikergevalle op die gasheerstelsel.
- Voeg die volgende opdraglyne by/etc/sysctl.conf en herlaai die gasheer: fs.inotify.max_user_instances=8192 fs.inotify.max_user_watches=542288
Installeer vereiste gasheerpakkette
Die gasheerpakkette word op die Linux-gasheermasjien geïnstalleer.
Voer die opdragte uit om die gasheerpakkette te installeer: $ sudo apt install -y jq $ sudo apt install -y texinfo chrpath libxml-simple-perl openjdk-8-jdkheadless
Vir Ubuntu 18.04 en hoër:
$ sudo apt-get install git-core gnupg flex bison build-essensial 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 xsltprocfig
Vir meer inligting, sien https://source.android.com/docs/setup/start/initializing.
Stel docker-omgewing op
'n Docker is 'n platform wat gebruik word om sagteware te bou, ontwikkel, toets en lewer. Om die SDK saam te stel, moet die docker op die Linux-gasheermasjien gekonfigureer word.
Maak seker dat SVE-virtualisering op die Linux-gasheermasjien geaktiveer is. As dit nie geaktiveer is nie, doen die volgende om dit te aktiveer vanaf die basiese invoer/afvoer stelsel (BIOS) konfigurasie instellings:
- Aktiveer virtualisering vanaf BIOS:
a. Druk F1 of F2 wanneer die stelsel begin om in BIOS te gaan. Die BIOS-venster word vertoon.
b. Skakel oor na die Gevorderde-oortjie.
c. Stel Virtualiseringstegnologie in die SVE-konfigurasie-afdeling op Geaktiveer.
a. Druk F12 om te stoor en af te sluit, en herbegin dan die stelsel.
As hierdie stappe nie werk nie, volg die spesifieke instruksies van die stelselverskaffer om die virtualisering te aktiveer - Verwyder enige ou gevalle van die docker:
$ sudo apt verwyder docker-desktop
$ rm -r $HOME/.docker/desktop
$ sudo rm /usr/local/bin/com.docker.cli
$ sudo apt purge docker-desktop - Stel die docker-afstandbewaarplek op:
$ sudo apt-get update $ sudo apt-get installeer ca-sertifikate curl gnupg lsb-vrystelling $ 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) stabiel” | sudo tee /etc/apt/sources.list.d/ docker.list > /dev/null - Installeer docker-enjin:
$ sudo apt-get update $ sudo apt-get installeer docker-ce docker-ce-cli - Voeg gebruiker by koppelaargroep:
$ sudo groupadd docker $ sudo usermod -aG docker $USER - Herlaai die stelsel.
Genereer platform SDK
Die platform SDK is 'n verpligte vereiste om die Qualcomm TFLite SDK-nutsgoed saam te stel. Dit bied al die vereiste platformafhanklikhede wat deur die Qualcomm TFLite SDK vereis word.
Doen die volgende om die platform SDK te genereer:
- Skep 'n bou vir die voorkeur sagteware produk.
Die instruksies om die QCS8550.LE.1.0-vrystelling te bou, word in die vrystellingsaantekeninge verskaf. Om toegang tot die vrystellingsnotas te verkry, sien Verwysings.
As die beelde voorheen gebou is, voer stap 2 uit en skep dan 'n skoon bou. - Voer die volgende opdrag uit om die gebruikersruimtebeelde en platform-SDK te bou:
Vir QCS8550.LE.1.0, voeg die masjienkenmerk qti-tflite-delegate by MACHINE_FEATURES in die kalama.conf file en verkry die bou-omgewing volgens instruksies uit die vrystellingsaantekeninge.
Voer die volgende opdrag uit om die platform-SDK te genereer nadat u gebruikersspasie-beelde vanaf build gegenereer het.
$ bitbake -fc populate_sdk qti-robotika-beeld
Bou Qualcomm TFLite SDK-nutsgoed – ontwikkelaarwerkvloei
Die Qualcomm TFLite SDK-nutsmiddelwerkvloei vereis dat die ontwikkelaar die konfigurasie verskaf file met geldige invoerinskrywings. Die helper dop skrifte van die tflite-tools projek (aanwesig in die Qualcomm TFLite SDK bronboom) verskaf helper nutsfunksies om die dop omgewing op te stel, wat gebruik kan word vir die Qualcomm TFLite SDK werkvloei.
Die ontwikkelaar bou die Qualcomm TFLite SDK-projekte binne die houer en genereer die artefakte met behulp van die nutsprogramme wat deur tflite-tools verskaf word.
Nadat 'n Qualcomm TFLite SDK-houer gebou is, kan die ontwikkelaar aan die houer heg en die hulpprogramme in die houerdop-omgewing gebruik vir deurlopende ontwikkeling.
- Daar is 'n voorsiening om die Qualcomm TFLite SDK-artefakte te installeer op 'n Qualcomm-toestel wat via USB/adb aan die Linux-gasheer gekoppel is.
- Daar is ook 'n voorsiening om die Qualcomm TFLite SDK-artefakte van die houer na 'n ander gasheermasjien te kopieer waar die Qualcomm-toestel gekoppel is.
Die volgende figuur lys die stel nutsprogramme wat beskikbaar is nadat die houerbou-omgewing opgestel is met behulp van die helper-skrifte vir die bou van die Qualcomm TFLite SDK.
Die figuur toon die volgorde van uitvoering van die nutsprogramme:
Figuur 4-3 Volgorde van nutsprogramme op gasheer
Sinkroniseer en bou Qualcomm TFLite SDK
Die Qualcomm TFLite SDK word saamgestel wanneer die docker-beeld geskep word. Om die Qualcomm TFLite SDK te sinkroniseer en te bou, doen die volgende:
- Skep 'n gids op die gasheer file stelsel om die Qualcomm TFLite SDK-werkspasie te sinkroniseer. Vir
example: $mkdir $cd - Haal die Qualcomm TFLite SDK-bronkode van CodeLinaro af:
$ 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 vrystelling && repo sync -qc –no-tags -j - Skep 'n gids op die gasheer file stelsel wat in docker gemonteer kan word. Byvoorbeeldample: mkdir-p / Hierdie gids kan enige plek op die Linux-gasheermasjien geskep word, en dit hang nie af van waar die Qualcomm TFLite SDK-projek gesinkroniseer word nie. Nadat die werkvloei binne die houer voltooi is, kan die Qualcomm TFLite SDK-artefakte gevind word by die gids wat in hierdie stap geskep is.
- Wysig die JSON-opstelling file teenwoordig in /tflite-tools/ targets/le-tflite-tools-builder.json met die volgende inskrywings:
“Image”: “tflite-tools-builder”, “Device_OS”: “le”, “Additional_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegates”: { “Hexagon_delegate”: “OFF”, “Gpu_delegate”: “AAN”, “Xnnpack_delegate”: “AAN” }, “TFLite_rsync_destination”: “ /", "SDK_path": "/build-qti-distro-fullstack-perf/tmpglibc/deploy/sdk>", "SDK_shell_file”: “”, “Base_Dir_Location”: “” }
Vir meer inligting oor die inskrywings wat in die json-konfigurasie genoem word file, sien die Docker.md readme file by /tflite-tools/.
LET WEL Vir QCS8550 word die Qualcomm® Hexagon™ DSP-afgevaardigde nie ondersteun nie. - Verkry die skrif om die omgewing op te stel:
$ cd /tflite-tools $ bron ./scripts/host/docker_env_setup.sh - Bou die Qualcomm TFLite SDK-dokter-beeld: $ tflite-tools-host-build-image ./targets/le-tflite-tools-builder.json As die bou-opstelling misluk, sien Foutspoor docker-opstelling. Na suksesvolle voltooiing word die volgende boodskap vertoon: "Status: Bou prent suksesvol voltooi!!" Die uitvoering van hierdie stap bou ook die Qualcomm TFLite SDK.
- Begin die Qualcomm TFLite SDK-dokhouerhouer. Dit begin die houer met die tags verskaf in die JSON-konfigurasie file. $tflite-tools-host-run-container ./targets/le-tflite-tools-builder.json
- Heg aan die houer wat vanaf die vorige stap begin is.
$ docker heg aan
Die Qualcomm TFLite SDK is saamgestel, en die artefakte is gereed om ontplooi te word of verder kan
gebruik om die QIM SDK TFLite-inprop te genereer.
Koppel toestel aan gasheer en ontplooi artefakte]
Na samestelling is daar twee meganismes om die toestel aan 'n gasheer te koppel en die
Qualcomm TFLite SDK artefakte.
- Toestel gekoppel aan 'n plaaslike Linux-gasheer:
'n Ontwikkelaar koppel die toestel aan 'n werkstasie en installeer die Qualcomm TFLite SDK-artefakte vanaf die houer direk op die toestel (QCS8550). - Toestel gekoppel aan 'n afgeleë gasheer:
'n Ontwikkelaar koppel die toestel aan 'n afgeleë werkstasie, en hulle kan die pakketbestuurder installeerder-opdragte op Windows- en Linux-platforms gebruik om die Qualcomm TFLite SDK-artefakte op die toestel te installeer (QCS8550)
Figuur 4-4 Verbinding van toestelbord aan ontwikkelaar en afgeleë werkstasie
Koppel toestel aan werkstasie
Die toestel is aan die werkstasie gekoppel en die ontwikkelingshouer kan toegang tot die toestel kry oor USB/adb.
Die figuur toon die stages in die volgorde van die Qualcomm TFLite SDK-werkvloei:
- Voer die volgende opdragte uit om die artefakte op die toestel te installeer:
$ tflite-tools-device-prepare
$ tflite-tools-device-deploy - Om die artefakte te verwyder, voer die volgende opdrag uit:
$ tflite-tools-device-packages-remove
Koppel toestel aan afgeleë masjien
Die toestel is aan 'n afgeleë masjien gekoppel, en die Qualcomm TFLite SDK-houer kan nie toegang tot die toestel kry oor USB/advertensie b.
Die figuur toon die stages in die volgorde van die Qualcomm TFLite SDK-werkvloei:
Voer die volgende opdragte in die tflite-tools-houer uit om die artefakte na 'n afgeleë masjien te kopieer
afhangende van die pakketbestuurder op die toestel:
$ tflite-tools-remote-sync-ipk-rel-pkg
LET WEL Die afgeleë masjieninligting word in die JSON-konfigurasie verskaf file.
Installeer artefakte vir Windows-platform
Die Qualcomm TFLite SDK-artefakte kan op die toestel geïnstalleer word gebaseer op die bedryfstelsel van die afgeleë masjien.
Vir die Windows-platform, doen die volgende:
Op PowerShell, gebruik die volgende skrif: PS C:
> adb root PS C:> adb deaktiveer-verity PS C:> adb herlaai PS C:> adb wag-vir-toestel PS C:> adb root PS C:> adb hermonteer PS C:> adb shell mount -o remount, rw / PS C:> adb-dop “mkdir -p /tmp” PS C:> adb push /tmp As die pakket 'n ipk is (vir QCS8550.LE.1.0), gebruik die volgende opdragte: PS C:> adb-dop “ opkg –force-depends –force-reinstall –force-overwrite install /tmp/”
Installeer artefakte vir Linux-platform
Gebruik die volgende opdragte:
$ adb root $ adb deaktiveer-verity $ adb herlaai $ adb wag-vir-toestel $ adb root $ adb hermonteer $ adb shell mount -o remount,rw / $ adb shell “mkdir -p /tmp” $ adb push /tmp As die pakket is 'n ipk (vir QCS8550.LE.1.0): $ adb-dop “opkg –force-depends –force-reinstall –force-overwrite install /tmp/”
Maak docker-prent skoon
Nadat die ontwikkelaarwerkvloei voltooi is, moet die docker-omgewing skoongemaak word om die berging op die skyf vry te maak. Deur die koppelaar skoon te maak, word die ongebruikte houers en beelde verwyder, en sodoende word die skyfspasie bevry.
Gebruik die volgende opdragte om die docker-beeld skoon te maak:
- Voer die volgende opdrag op die Linux-werkstasie uit:
$ cd /tflite-gereedskap - Stop die houer:
$ tflite-tools-host-stop-container ./targets/ le-tflite-tools-builder.json - Verwyder die houer:
$ tflite-tools-host-rm-container ./targets/ le-tflite-tools-builder.json - Verwyder die ouer docker-beelde:
$ tflite-tools-host-images-cleanup
Foutspoor docker-opstelling
As die tflite-tools-host-build-image-opdrag 'n Nospace left on device-boodskap gee, skuif dan die docker-gids na/local/mnt. Doen die volgende om die opstelling op te los:
- Rugsteun die bestaande docker files:
$ tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(datum + %s).tar.gz - Stop die dokwerker:
$ diens docker stop - Verifieer dat geen koppelproses aan die gang is nie:
$ ps faux | grep docker - Gaan die docker-gidsstruktuur na:
$ sudo ls /var/lib/docker/ - Skuif die docker-gids na 'n nuwe partisie:
$ mv /var/lib/docker /local/mnt/docker - Maak 'n simskakel na die docker-gids in die nuwe partisie:
$ ln -s /local/mnt/docker /var/lib/docker - Maak seker dat die docker-gidsstruktuur onveranderd bly:
$ sudo ls /var/lib/docker/ - Begin docker:
$ diens docker begin - Herbegin al die houers nadat die docker-gids geskuif is.
Genereer TFLite SDK met Linux-werkstasie
Die TFLite SDK-werkvloei kan sonder houers geaktiveer word deur die Linux-werkstasie te gebruik. Hierdie prosedure is 'n alternatief vir die gebruik van houers.
Om die Qualcomm TFLite SDK te sinkroniseer en te bou, doen die volgende:
- Skep 'n gids op die gasheer file stelsel om die Qualcomm TFLite SDK-werkspasie te sinkroniseer. Byvoorbeeldample:
$mkdir
$cd - Haal die Qualcomm TFLite SDK-bronkode van CodeLinaro af:
$ 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 vrystelling && repo sync -qc –no-tags -j8 && repo-sinkronisering -qc –nee-tags -j8 - 3. Wysig die JSON-konfigurasie file teenwoordig in /tflite-tools/ targets/le-tflite-tools-builder.json met die volgende inskrywings
“Image”: “tflite-tools-builder”, “Device_OS”: “le”, “Additional_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegates”: { “Hexagon_delegate”: “OFF”, “Gpu_delegate”: “AAN”, “Xnnpack_delegate”: “AAN” }, “TFLite_rsync_destination”: “ ”, “SDK_path”: “/build-qti-distro-fullstack-perf/tmpglibc/deploy/sdk>”, “SDK_shell_file": "", "Base_Dir_Location": ""
Vir meer inligting oor die inskrywings wat in die json-konfigurasie genoem word file, sien die Docker.md readme file by /tflite-tools/.
LET WEL Vir QCS8550 word Hexagon DSP-afgevaardigde nie ondersteun nie - Verkry die skrif om die omgewing op te stel:
$ cd /tflite-gereedskap
$ bron ./scripts/host/host_env_setup.sh - Bou die Qualcomm TFLite SDK.
$ tflite-tools-setup targets/le-tflite-tools-builder.json - Voer die volgende nutsopdragte in dieselfde Linux-dop uit om die TFLite SDK-artefakte van te versamel
TFLite_rsync_bestemming.
$ tflite-tools-host-get-rel-package targets/le-tflite-tools-builder.json
$ tflite-tools-host-get-dev-package targets/le-tflite-tools-builder.json - Installeer artefakte gebaseer op die bedryfstelsel
- Vir die Windows-platform, op PowerShell, gebruik die volgende skrif
PS C:> adb root PS C:> adb deaktiveer-verity PS C:> adb herlaai PS C:> adb wag-vir-toestel PS C:> adb root PS C:> adb hermonteer PS C:> adb shell mount - o hermonteer,rw / PS C:> adb-dop “mkdir -p /tmp” PS C:> adb push /tmp
As die pakket 'n ipk is (vir QCS8550.LE.1.0), gebruik die volgende opdragte:
PS C:> adb-dop “opkg –force-depends –force-reinstall –forceoverwrite install /tmp/
Vir die Linux-platform, gebruik die volgende skrif:
$ adb root $ adb deaktiveer-verity $ adb herlaai $ adb wag-vir-toestel $ adb root $ adb hermonteer $ adb shell mount -o remount,rw / $ adb shell “mkdir -p /tmp” $ adb push /tmp As die pakket 'n IPK is (vir QCS8550.LE.1.0):
$ adb-dop “opkg –force-depends –force-reinstall –force-overwrite install /tmp/”
- Vir die Windows-platform, op PowerShell, gebruik die volgende skrif
Genereer Qualcomm TFLite SDK-artefakte vir QIM SDK-bou
Om die artefakte wat gegenereer is te gebruik om die Qualcomm TFLite SDK GStreamer-inprop in QIM SDK te aktiveer, doen die volgende:
- Voltooi die prosedure in Sync en bou Qualcomm TFLite SDK, en voer dan die volgende opdrag uit: $ tflite-tools-host-get-dev-tar-package ./targets/le-tflite-toolsbuilder.json
'n Teer file word gegenereer. Dit bevat die Qualcomm TFLite SDK by die pad verskaf by “TFLite_rsync_destination” - Om die Qualcomm TFLite SDK GStreamer-inprop te aktiveer, gebruik die teer file as 'n argument in die JSON-konfigurasie file vir die QIM SDK-bou.
Vir inligting oor die samestelling van QIM SDK, sien Qualcomm Intelligent Multimedia SDK (QIM SDK) Quick Start Guide (80-50450-51).
Bou Qualcomm TFLite SDK inkrementeel
As jy die Qualcomm TFLite SDK vir die eerste keer bou, sien Bou Qualcomm TFLite SDK-nutsgoed – ontwikkelaarwerkvloei. Dieselfde bou-omgewing kan hergebruik word vir inkrementele ontwikkeling.
Die hulpprogramme (binne die houer) wat in die figuur genoem word, is beskikbaar vir ontwikkelaars om gewysigde toepassings en inproppe saam te stel.
Figuur 5-1 Werkvloei in 'n houer
Nadat die kodeveranderings in die kodegids voltooi is, doen die volgende:
- Stel gewysigde kode saam:
$ tflite-tools-incremental-build-install - Pakket saamgestelde kode:
$ tflite-tools-ipk-rel-pkg of $ tflite-tools-deb-rel-pkg - Sinkroniseer vrystellingspakkette met die gasheer file stelsel:
$ tflite-tools-remote-sync-ipk-rel-pkg
Or
$ tflite-tools-remote-sync-deb-rel-pkg - Berei 'n ontwikkelaarpakket voor:
$ tflite-tools-ipk-dev-pkg
Die saamgestelde artefakte word gevind in die TFLite_rsync_destination-lêergids wat in die JSON genoem word file, wat na enige gids gekopieer kan word.
Werk saam met QNN eksterne TFLite Delegate
'n TFLite Eksterne Delegate laat jou toe om jou modelle (gedeeltelik of geheel) op 'n ander eksekuteur te laat loop deur biblioteke te gebruik wat deur 'n betroubare derde party soos QNN deur Qualcomm verskaf word. Hierdie meganisme kan 'n verskeidenheid versnellers op die toestel gebruik, soos die GPU of Hexagon Tensor Processor (HTP) vir afleiding. Dit bied ontwikkelaars 'n buigsame en ontkoppelde metode van die verstek TFLite om afleiding te bespoedig.
Voorvereistes:
- Maak seker dat jy 'n Ubuntu-werkstasie gebruik om QNN AI-stapel te onttrek.
- Maak seker dat jy 'n QNN weergawe 2.14 gebruik om in samewerking met Qualcomm TFLite SDK te wees
Die Qualcomm TFLite SDK is in staat gestel om afleidings op verskeie QNN-agterkante deur TFLite eksterne Delegate vir QNN uit te voer. Die TFLite-modelle met 'n algemene platbuffer-voorstelling kan op GPU en HTP uitgevoer word.
Nadat die Qualcomm TFLite SDK-pakkette op die toestel geïnstalleer is, doen die volgende om die QNN-biblioteke op die toestel te installeer.
- Laai Qualcomm Package Manager 3 vir Ubuntu af.
a. Klik https://qpm.qualcomm.com/, en klik Tools.
b. Tik QPM in die linkerpaneel, in die Soekgereedskap-veld. Kies Linux uit die Stelsel OS lys.
Die soekresultate vertoon 'n lys van Qualcomm-pakketbestuurders.
c. Kies Qualcomm Package Manager 3 en laai die Linux debian-pakket af. - Installeer Qualcomm Package Manager 3 vir Linux. Gebruik die volgende opdrag:
$ dpkg -i –dwing-oorskryf /pad/na/
QualcommPackageManager3.3.0.83.1.Linux-x86.deb - Laai die Qualcomm® af
AI Engine Direct SDK op die Ubuntu-werkstasie.
a. Klik https://qpm.qualcomm.com/ en klik Tools.
b. Tik AI-stapel in die linkerpaneel, in die Soekgereedskap-veld. Kies Linux uit die Stelsel OS lys.
A aftreklys wat verskeie KI-stapel-enjins bevat, word vertoon.
c. Klik op Qualcomm® AI Engine Direct SDK en laai die Linux v2.14.0-pakket af. - Installeer Qualcomm® AI Engine Direct SDK op die Ubuntu-werkstasie.
a. Aktiveer die lisensie:
qpm-cli –lisensie-aktiveer qualcomm_ai_engine_direct
b Installeer AI Engine Direct SDK:
$ qpm-cli –extract /path/to/ qualcomm_ai_engine_direct.2.14.0.230828.Linux-AnyCPU.qik - Stoot biblioteke na die toestel vanaf die Ubuntu-werkstasie met adb-stoot.
$ 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 druk ./lib/aarch64-oe-linux-gcc11.2/ libQnnTFLiteDelegate.so /usr/lib/ $ adb druk ./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/unsigned/ libQnnHkel.p dus /usr/lib/rfsa/adsp
Toets Qualcomm TFLite SDK
Die Qualcomm TFLite SDK bied sekere example-toepassings, wat gebruik kan word om die modelle wat 'n ontwikkelaar wil assesseer, te valideer, te meet en die akkuraatheid te kry.
Nadat die Qualcomm TFLite SDK-pakkette op die toestel geïnstalleer is, is die looptyd beskikbaar op die toestel om hierdie example toepassings.
Voorvereiste
Skep die volgende gidse op die toestel:
$ adb dop "mkdir /data/Models"
$ adb dop "mkdir /data/Lables"
$ adb dop "mkdir /data/profiling"
Etiketprent
'n Etiketbeeld is 'n hulpmiddel wat deur die Qualcomm TFLite SDK verskaf word wat wys hoe jy 'n voorafopgeleide en omgeskakelde TensorFlow Lite-model kan laai en dit kan gebruik om voorwerpe in beelde te herken. Voorvereistes:
Laai sampdie model en beeld:
Jy kan enige versoenbare model gebruik, maar die volgende MobileNet v1-model bied 'n goeie demonstrasie van 'n model wat opgelei is om 'n 1000 verskillende voorwerpe te herken.
- Kry model
$ 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/ - Kry etikette
$ 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/
Nadat u aan die Qualcomm TFLite SDK-dokhouer gekoppel is, kan die prent gevind word by:
“/mnt/tflite/src/tensorflow/tensorflow/lite/examples/label_image/ testdata/grace_hopper.bmp"
a. Druk hierdie file na/data/Etikette/
b. Voer die opdrag uit:
$ adb dop “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”
Maatstaf
Die Qualcomm TFLite SDK bied die maatstafinstrument om die werkverrigting van verskillende looptye te bereken.
Hierdie maatstafinstrumente meet en bereken tans statistieke vir die volgende belangrike prestasiemaatstawwe:
- Inisialiseringstyd
- Afleidingstyd van opwarmingstoestand
- Afleidingstyd van bestendige toestand
- Geheuegebruik tydens inisialiseringstyd
- Algehele geheuegebruik
Voorvereistes
Druk die modelle wat getoets moet word vanaf TFLite Model Zoo (https://tfhub.dev/) na/data/Modelle/. Begin die volgende skrifte:
- XNN-pak
$ adb dop “benchmark_model –graph=/data/Models/ — enable_op_profiling=true –use_xnnpack=true –num_threads=4 –max_secs=300 –profiling_output_csv_file=/data/profilering/” - GPU afgevaardigde
$ adb dop “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/profilering/” - Eksterne afgevaardigde
QNN Eksterne Afgevaardigde GPU:
Begin afleiding met swaaipuntmodel:
$ adb dop-opdrag “benchmark_model –graph=/data/Models/ .tflite –external_delegate_path=libQnnTFLiteDelegate.so — external_delegate_options='backend_type:gpu;library_path:/usr/lib/ libQnnGpu.so;skel_library/lib:/rfussa_lib: /adsp'"
QNN Eksterne Afgevaardigde HTP:
Begin afleiding met kwantmodel:
$ 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;skel:/fussa_dir/library/dir /adsp'"
Akkuraatheid hulpmiddel
Die Qualcomm TFLite SDK bied 'n akkuraatheidsinstrument om die akkuraatheid van modelle met verskillende looptye te bereken.
- Klassifikasie met GPU-afgevaardigde
Die stappe om die nodige af te laai files om te toets kan gevind word by: "/mnt/tflite/src/tensorflow/tensorflow/lite/tools/evaluation/tasks/ imagenet_image_classificatio/README.md"
Die binêre om hierdie instrument te laat loop is reeds deel van die SDK, so die ontwikkelaar hoef dit nie weer te bou nie.
$ adb dop "image_classify_run_eval — model_file=/data/Models/ –ground_truth_images_path=/data/ — ground_truth_labels=/data/ –model_output_labels=/ data/ –delegate=gpu” - Voorwerpopsporing met XNN-pakket
$ adb dop “inf_diff_run_eval –model_file=/data/Models/ –delegate=xnnpac
REGSINLIGTING
Jou toegang tot en gebruik van hierdie dokument, tesame met enige spesifikasies, verwysingsbord files, tekeninge, diagnostiek en ander inligting hierin vervat (gesamentlik dit "Dokumentasie"), is onderhewig aan jou (insluitend die korporasie of ander regsentiteit wat jy gesamentlik verteenwoordig "Jy" of "Jou") aanvaarding van die bepalings en voorwaardes ("Gebruiksbepalings") hieronder uiteengesit. As jy nie instem tot hierdie Gebruiksvoorwaardes nie, mag jy nie hierdie Dokumentasie gebruik nie en sal enige kopie daarvan onmiddellik vernietig.
- Wettige kennisgewing.
Hierdie dokumentasie word uitsluitlik aan u beskikbaar gestel vir u interne gebruik met daardie produkte en diensaanbiedinge van Qualcomm Technologies, Inc. (“Qualcomm Technologies”) en sy affiliasies wat in hierdie dokumentasie beskryf word, en sal nie vir enige ander doeleindes gebruik word nie. Hierdie Dokumentasie mag nie op enige manier verander, geredigeer of gewysig word sonder Qualcomm Technologies se vooraf skriftelike goedkeuring nie. Ongemagtigde gebruik of openbaarmaking hiervan
Dokumentasie of die inligting hierin vervat is streng verbode, en jy stem in om Qualcomm Technologies, sy affiliasies en lisensiehouers te vrywaar vir enige skade of verliese gely deur Qualcomm Technologies, sy affiliasies en lisensiegewers vir enige sodanige ongemagtigde gebruik of openbaarmaking van hierdie Dokumentasie, in sy geheel of deel. Qualcomm Technologies, sy affiliasies en lisensiehouers behou alle regte en eienaarskap in en tot hierdie Dokumentasie. Geen lisensie vir enige handelsmerk, patent, kopiereg, maskerwerkbeskermingsreg of enige ander intellektuele eiendomsreg word óf toegestaan óf geïmpliseer deur hierdie Dokumentasie of enige inligting wat hierin openbaar gemaak word nie, insluitend, maar nie beperk nie tot, enige lisensie om te maak, gebruik, invoer of verkoop enige produk, diens of tegnologie-aanbieding wat enige van die inligting in hierdie Dokumentasie beliggaam.
HIERDIE DOKUMENTASIE WORD “SOOS IS” VERSKAF SONDER ENIGE OORTE WAARBORG, HETsy UITDRUKKELIJK, geïmpliseer, STATUTÊR OF ANDERS. IN DIE MAKSIMUM MATE WAT DEUR WET TOEGESTAAN WORD, WYS QUALCOMM TECHNOLOGIES, SY AFFILIATE EN LISENSIEGEVERS SPESIFIEK ALLE WAARBORGE VAN TITEL, VERHANDELBAARHEID, NIE-SKENDING, GESKIKTHEID VIR 'N SPESIFIEKE, SAAKLIKHEID, EN ALLE WAARBORGE WAT VOORTKOM UIT HANDELSGEBRUIK OF UIT 'N VERLOOP VAN HANDELING OF VERLOOP VAN PRESTASIE. NOG QUALCOMM TECHNOLOGIES, NOCH ENIGE VAN SY AFFILIATIES OF LISENSIEGEVERS, SAL AAN U OF ENIGE DERDE PARTY AANSPREEKLIK WEES VIR ENIGE UITGAWES, VERLIES, GEBRUIK OF HANDELINGE WAT DEUR U OF DAARNA AANSPRAKEL IS NIE.
Sekere produkstelle, gereedskap en materiaal waarna in hierdie Dokumentasie verwys word, kan vereis dat jy bykomende bepalings en voorwaardes aanvaar voordat jy toegang tot daardie items kry of gebruik.
Tegniese data gespesifiseer in hierdie Dokumentasie kan onderhewig wees aan die VSA en ander toepaslike uitvoerbeheerwette. Uitsending strydig met die VSA en enige ander toepaslike wetgewing is streng verbode.
Niks in hierdie dokumentasie is 'n aanbod om enige van die komponente of toestelle waarna hierin verwys word, te verkoop nie.
Hierdie dokumentasie is onderhewig aan verandering sonder verdere kennisgewing. In die geval van 'n konflik tussen hierdie Gebruiksvoorwaardes en die Webwebwerf Gebruiksvoorwaardes op www.qualcomm.com of die Qualcomm Privaatheidsbeleid waarna verwys word www.qualcomm.com, sal hierdie Gebruiksvoorwaardes beheer. In die geval van 'n konflik tussen hierdie Gebruiksvoorwaardes en enige ander ooreenkoms (geskrewe of deurklik) wat deur U en Qualcomm Technologies of 'n Qualcomm Technologies-geaffilieerde uitgevoer word met betrekking tot U toegang tot en gebruik van hierdie Dokumentasie, sal die ander ooreenkoms beheer .
Hierdie Gebruiksvoorwaardes sal beheer word deur en vertolk en afgedwing word in ooreenstemming met die wette van die staat Kalifornië, met uitsluiting van die VN se Konvensie oor Internasionale Verkoop van Goedere, sonder inagneming van die beginsels van botsing van wette. Enige dispuut, eis of omstredenheid wat voortspruit uit of verband hou met hierdie Gebruiksvoorwaardes, of die verbreking of geldigheid hiervan, sal slegs deur 'n hof van bevoegde jurisdiksie in die graafskap San Diego, staat Kalifornië, bereg word, en u stem hiermee in tot die persoonlike jurisdiksie van sodanige howe vir daardie doel. - Handelsmerk- en produktoeskrywingverklarings.
Qualcomm is 'n handelsmerk of geregistreerde handelsmerk van Qualcomm Incorporated. Arm is 'n geregistreerde handelsmerk van Arm Limited (of sy filiale) in die VSA en/of elders. Die Bluetooth®-woordmerk is 'n geregistreerde handelsmerk wat besit word deur Bluetooth SIG, Inc. Ander produk- en handelsname waarna in hierdie Dokumentasie verwys word, kan handelsmerke of geregistreerde handelsmerke van hul onderskeie eienaars wees.
Snapdragon- en Qualcomm-handelsmerkprodukte waarna in hierdie dokumentasie verwys word, is produkte van Qualcomm Technologies, Inc. en/of sy filiale. Qualcomm gepatenteerde tegnologieë word gelisensieer deur Qualcomm Incorporated.
Dokumente / Hulpbronne
![]() |
Qualcomm TensorFlow Lite SDK-sagteware [pdf] Gebruikersgids TensorFlow Lite SDK Sagteware, Lite SDK Sagteware, SDK Sagteware, Sagteware |