Qualcomm TensorFlow Lite SDK programinės įrangos vartotojo vadovas

Qualcomm TensorFlow Lite SDK Software User Guide

Qualcomm TensorFlow Lite SDK programinės įrangos vartotojo vadovas
Įmonės logotipas

Revizijų istorija

Peržiūra Data Aprašymas
AA 2023 m. rugsėjo mėn Pradinis išleidimas
AB 2023 m. spalio mėn

Įvadas į Qualcomm TFLite SDK įrankius

„Qualcomm TensorFlow Lite“ programinės įrangos kūrimo rinkinio („Qualcomm TFLite SDK“) įrankiai suteikia „TensorFlow Lite“ sistemą, leidžiančią įrenginyje daryti išvadas apie dirbtinį intelektą (AI), kuri palengvina programų kūrėjams kurti arba paleisti tinkamas AI programas.
Šiame dokumente pateikiamos nuoseklios instrukcijos, kaip sudaryti atskirą Qualcomm TFLite SDK ir nustatyti kūrimo aplinką. Tai įgalina kūrėjo darbo eigą, kurią sudaro:

  • sukurti kūrimo aplinką, kurioje kūrėjas gali kompiliuoti Qualcomm TFLite SDK
  • kuriant atskiras Qualcomm TFLite SDK programas

Norėdami gauti pagalbos, žr. https://www.qualcomm.com/palaikymas. Toliau pateiktame paveikslėlyje pateikiama Qualcomm TFLite SDK darbo eigos santrauka:
1-1 pav. Qualcomm TFLite SDK darbo eiga
Įrankiui reikalingas platformos SDK ir konfigūracija file (JSON formatu), kad sugeneruotumėte Qualcomm TFLite SDK artefaktus.

Norėdami sukurti visapusišką programą naudojant daugialypės terpės, dirbtinio intelekto ir kompiuterinės vizijos (CV) posistemes, žr. Qualcomm Intelligent Multimedia SDK (QIM SDK) greitosios pradžios vadovą (80-50450-51).
Lentelėje rodomas Qualcomm TFLite SDK versijos susiejimas su CodeLinaro leidimu tag:
1-1 lentelė Išleidimo informacija
Ryšys

Qualcomm TFLite SDK versija CodeLinaro išleidimas tag
V1.0 Qualcomm TFLITE.SDK.1.0.r1-00200-TFLITE.0

1-2 lentelė Palaikomos Qualcomm TFLite SDK versijos

Qualcomm TFLite SDK versija Palaikomas programinės įrangos produktas Palaikoma TFLite versija
V1.0 QCS8550.LE.1.0
  • 2.6.0
  • 2.8.0
  • 2.10.1
  • 2.11.1
  • 2.12.1
  • 2.13.0

Nuorodos
1-3 lentelė Susiję dokumentai

Pavadinimas Skaičius
Qualcomm
00067.1 QCS8550.LE.1.0 išleidimo pastaba RNO-230830225415
„Qualcomm Intelligent Multimedia SDK“ (QIM SDK) trumpos pradžios vadovas 80-50450-51
Qualcomm Intelligent Multimedia SDK (QIM SDK) nuoroda 80-50450-50
Ištekliai
https://source.android.com/docs/setup/start/initializing

1-4 lentelė Akronimai ir apibrėžimai

Akronimas arba terminas Apibrėžimas
AI Dirbtinis intelektas
BIOS Pagrindinė įvesties/išvesties sistema
CV Kompiuterinis matymas
IPK Jo pakuotė file
QIM SDK Qualcomm Intelligent daugialypės terpės programinės įrangos kūrimo rinkinys
SDK Programinės įrangos kūrimo rinkinys
TFLite TensorFlow Lite
XNN Xth artimiausias kaimynas

Nustatykite Qualcomm TFLite SDK įrankių kūrimo aplinką

Qualcomm TFLite SDK įrankiai išleidžiami šaltinio forma; todėl kūrimo aplinkos sukūrimas jai sudaryti yra privalomas, bet vienkartinis nustatymas.

Būtinos sąlygos

  • Įsitikinkite, kad turite sudo prieigą prie „Linux“ pagrindinio kompiuterio.
  • Įsitikinkite, kad Linux pagrindinio kompiuterio versija yra Ubuntu 18.04 arba Ubuntu 20.04.
  • Padidinkite maksimalų naudotojų stebėjimą ir didžiausią naudotojų skaičių pagrindinėje sistemoje.
  • Pridėkite šias komandų eilutes prie/etc/sysctl.confand perkraukite pagrindinį kompiuterį: fs.inotify.max_user_instances=8192 fs.inotify.max_user_watches=542288

Įdiekite reikiamus pagrindinio kompiuterio paketus

Pagrindinio kompiuterio paketai yra įdiegti „Linux“ pagrindiniame kompiuteryje.
Vykdykite komandas, kad įdiegtumėte pagrindinio kompiuterio paketus: $ sudo apt install -y jq $ sudo apt install -y texinfo chrpath libxml-simple-perl openjdk-8-jdkheadless
Ubuntu 18.04 ir naujesnėms versijoms:
$ sudo apt-get įdiegti 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 un libxml2-utils xsltconfc
Daugiau informacijos rasite https://source.android.com/docs/setup/start/initializing.

Nustatykite doko aplinką

Dockeris yra platforma, naudojama programinei įrangai kurti, kurti, testuoti ir pristatyti. Norint kompiliuoti SDK, dokeris turi būti sukonfigūruotas Linux pagrindiniame kompiuteryje.
Įsitikinkite, kad „Linux“ pagrindiniame kompiuteryje įjungtas procesoriaus virtualizavimas. Jei jis neįjungtas, atlikite šiuos veiksmus, kad jį įjungtumėte iš pagrindinių įvesties / išvesties sistemos (BIOS) konfigūracijos nustatymų:

  1. Įgalinti virtualizaciją iš BIOS:
    a. Paspauskite F1 arba F2, kai sistema paleidžiama, kad pereitumėte į BIOS. Rodomas BIOS langas.
    b. Perjunkite į skirtuką Išplėstinė.
    c. Skiltyje „CPU konfigūracija“ nustatykite „Virtualizavimo technologiją“ į „Įjungta“.
    a. Paspauskite F12, kad išsaugotumėte ir išeitumėte, tada iš naujo paleiskite sistemą.
    Jei šie veiksmai neveikia, vykdykite konkrečias sistemos tiekėjo instrukcijas, kad įgalintumėte virtualizaciją
  2. Pašalinkite visus senus dokerio egzempliorius:
    $ sudo apt pašalinti docker-desktop
    $ rm -r $HOME/.docker/desktop
    $ sudo rm /usr/local/bin/com.docker.cli
    $ sudo apt purge docker-desktop
  3.  Nustatykite Docker nuotolinę saugyklą:
    $ sudo apt-get naujinimas $ sudo apt-get įdiegti 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) stabilus“ | sudo tee /etc/apt/sources.list.d/ docker.list > /dev/null
  4.  Įdiekite dokerio variklį:
    $ sudo apt-get update $ sudo apt-get įdiegti docker-ce docker-ce-cli
  5.  Pridėti naudotoją prie dokų grupės:
    $ sudo groupadd docker $ sudo usermod -aG docker $USER
  6.  Perkraukite sistemą.

Sukurkite platformos SDK

Platformos SDK yra privalomas reikalavimas norint sudaryti Qualcomm TFLite SDK įrankius. Jame pateikiamos visos reikiamos platformos priklausomybės, kurių reikalauja Qualcomm TFLite SDK.
Norėdami sugeneruoti platformos SDK, atlikite šiuos veiksmus:

  1. Sukurkite pageidaujamo programinės įrangos produkto versiją.
    Instrukcijos, kaip sukurti QCS8550.LE.1.0 laidą, pateiktos laidos pastabose. Norėdami pasiekti laidos pastabas, žr. Nuorodos.
    Jei vaizdai buvo sukurti anksčiau, atlikite 2 veiksmą ir sukurkite švarų kūrimą.
  2. Vykdykite šią komandą, kad sukurtumėte vartotojo erdvės vaizdus ir platformos SDK:
    Jei naudojate QCS8550.LE.1.0, pridėkite įrenginio funkciją qti-tflite-delegate MACHINE_FEATURES faile kalama.conf file ir gaukite kūrimo aplinką pagal instrukcijas iš laidos pastabų.
    Sugeneravę vartotojo erdvės vaizdus iš kūrimo, paleiskite šią komandą, kad sugeneruotumėte platformos SDK.
    $ bitbake -fc populate_sdk qti-robotics-image

Sukurkite Qualcomm TFLite SDK įrankius – kūrėjo darbo eigą

Qualcomm TFLite SDK įrankių darbo eiga reikalauja, kad kūrėjas pateiktų konfigūraciją file su galiojančiais įvesties įrašais. Pagalbiniai apvalkalo scenarijai iš projekto tflite-tools (esami Qualcomm TFLite SDK šaltinio medyje) teikia pagalbinių paslaugų funkcijas, skirtas nustatyti apvalkalo aplinką, kurią galima naudoti Qualcomm TFLite SDK darbo eigai.
Kūrėjas sukuria Qualcomm TFLite SDK projektus konteineryje ir generuoja artefaktus naudodamas tflite-tools teikiamas paslaugas.
Sukūręs „Qualcomm TFLite SDK“ konteinerį, kūrėjas gali prisijungti prie konteinerio ir naudoti pagalbines priemones konteinerio apvalkalo aplinkoje nuolatiniam vystymuisi.

  • Yra nuostata įdiegti Qualcomm TFLite SDK artefaktus į Qualcomm įrenginį, prijungtą prie Linux pagrindinio kompiuterio per USB / adb.
  • Taip pat yra nuostata nukopijuoti Qualcomm TFLite SDK artefaktus iš konteinerio į kitą pagrindinį kompiuterį, prie kurio prijungtas Qualcomm įrenginys.
    Ryšys

Toliau pateiktame paveikslėlyje pateikiamas paslaugų rinkinys, pasiekiamas nustačius sudėtinio rodinio kūrimo aplinką naudojant pagalbinius scenarijus kuriant Qualcomm TFLite SDK.
Ryšys

Paveikslėlyje parodyta komunalinių paslaugų vykdymo seka:
4-3 pav. Prieglobos paslaugų seka
Ryšys

Sinchronizuokite ir sukurkite Qualcomm TFLite SDK
Qualcomm TFLite SDK sukompiliuojamas, kai sukuriamas docker vaizdas. Norėdami sinchronizuoti ir sukurti Qualcomm TFLite SDK, atlikite šiuos veiksmus:

  1. Sukurkite katalogą pagrindiniame kompiuteryje file sistema, skirta sinchronizuoti Qualcomm TFLite SDK darbo sritį. Dėl
    exampLe: $mkdir $ cd
  2. Gaukite Qualcomm TFLite SDK šaltinio kodą iš 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 leidimas && repo sinchronizavimas -qc –no-tags -j
  3. Sukurkite katalogą pagrindiniame kompiuteryje file sistema, kurią galima montuoti į dokerį. Pavyzdžiui,ample: mkdir-p / Šį katalogą galima sukurti bet kurioje „Linux“ pagrindinio kompiuterio vietoje ir jis nepriklauso nuo to, kur sinchronizuojamas Qualcomm TFLite SDK projektas. Baigus darbo eigą konteineryje, Qualcomm TFLite SDK artefaktus galima rasti kataloge, sukurtame atliekant šį veiksmą.
  4. Redaguokite JSON konfigūraciją file yra /tflite-tools/ targets/le-tflite-tools-builder.json su šiais įrašais:
    „Vaizdas“: „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": "" }
    Norėdami gauti daugiau informacijos apie įrašus, nurodytus json konfigūracijoje file, žr. Docker.md readme file adresu /tflite-tools/.
    PASTABA QCS8550 atveju Qualcomm® Hexagon™ DSP delegatas nepalaikomas.
  5. Išveskite scenarijų aplinkai nustatyti:
    $ CD /tflite-tools $ šaltinis ./scripts/host/docker_env_setup.sh
  6.  Sukurkite „Qualcomm TFLite SDK“ doko atvaizdą: $ tflite-tools-host-build-image ./targets/le-tflite-tools-builder.json Jei kūrimo sąranka nepavyksta, žr. „Docker“ sąrankos trikčių šalinimas. Sėkmingai užbaigus, rodomas toks pranešimas: „Būsena: vaizdas baigtas sėkmingai!“ Vykdant šį veiksmą taip pat sukuriamas „Qualcomm TFLite SDK“.
  7.  Paleiskite „Qualcomm TFLite SDK“ doko konteinerį. Tai paleidžia konteinerį su tags pateikta JSON konfigūracijoje file. $tflite-tools-host-run-container ./targets/le-tflite-tools-builder.json
  8. Pritvirtinimas prie konteinerio prasidėjo nuo ankstesnio veiksmo.
    $ docker pridėti

Qualcomm TFLite SDK yra sudarytas, o artefaktai yra paruošti diegti arba gali būti toliau
naudojamas QIM SDK TFLite papildiniui generuoti.

Prijunkite įrenginį prie prieglobos ir įdiekite artefaktus]

Po kompiliavimo yra du mechanizmai, kaip prijungti įrenginį prie pagrindinio kompiuterio ir įdiegti
Qualcomm TFLite SDK artefaktai.

  • Prie vietinio „Linux“ pagrindinio kompiuterio prijungtas įrenginys:
    Kūrėjas prijungia įrenginį prie darbo stoties ir įdiegia Qualcomm TFLite SDK artefaktus iš konteinerio tiesiai įrenginyje (QCS8550).
  • Prie nuotolinio pagrindinio kompiuterio prijungtas įrenginys:
    Kūrėjas prijungia įrenginį prie nuotolinės darbo stoties ir gali naudoti paketų tvarkyklės diegimo komandas Windows ir Linux platformose, kad įrenginyje įdiegtų Qualcomm TFLite SDK artefaktus (QCS8550)

4-4 pav. Įrenginio plokštės prijungimas prie kūrėjo ir nuotolinės darbo vietos
Ryšys

Prijunkite įrenginį prie darbo vietos

Įrenginys prijungtas prie darbo stoties, o kūrimo konteineris gali pasiekti įrenginį per USB / adb.
Paveiksle pavaizduotas stagesančiame Qualcomm TFLite SDK darbo eigos sekoje:
Ryšys

  1. Vykdykite šias komandas, kad įdiegtumėte artefaktus įrenginyje:
    $ tflite-tools-device-prepare
    $ tflite-tools-device-deploy
  2. Norėdami pašalinti artefaktus, paleiskite šią komandą:
    $ tflite-tools-device-packages-remove

Prijunkite įrenginį prie nuotolinio įrenginio

Įrenginys prijungtas prie nuotolinio įrenginio, o „Qualcomm TFLite SDK“ konteineris negali pasiekti įrenginio per USB / skelbimą b.
Paveiksle pavaizduotas stagesančiame Qualcomm TFLite SDK darbo eigos sekoje:
Ryšys

Vykdykite šias komandas konteineryje tflite-tools, kad nukopijuotumėte artefaktus į nuotolinį kompiuterį
priklausomai nuo įrenginio paketų tvarkyklės:
$ tflite-tools-remote-sync-ipk-rel-pkg
PASTABA Nuotolinio įrenginio informacija pateikiama JSON konfigūracijoje file.
Įdiekite „Windows“ platformos artefaktus
Qualcomm TFLite SDK artefaktus galima įdiegti įrenginyje pagal nuotolinio įrenginio operacinę sistemą.

Jei naudojate „Windows“ platformą, atlikite šiuos veiksmus:
„PowerShell“ naudokite šį scenarijų: PS C:
> adb root PS C:> adb disable-verity PS C:> adb paleisti iš naujo PS C:> adb laukti įrenginio PS C:> adb šakninis PS C:> adb remount PS C:> adb apvalkalo prijungimas -o perjungti, rw / PS C:> adb apvalkalas “mkdir -p /tmp” PS C:> adb push /tmp Jei paketas yra ipk (skirtas QCS8550.LE.1.0), naudokite šias komandas: PS C:> adb apvalkalas “ opkg – priverstinai priklauso – priverstinai diegti iš naujo – priverstinai perrašyti diegimą /tmp/“

Įdiekite „Linux“ platformos artefaktus
Naudokite šias komandas:
$ adb root $ adb disable-verity $ adb perkrovimas $ adb laukti įrenginio $ adb šaknis $ adb perjungimas $ adb apvalkalo prijungimas -o remount,rw / $ adb apvalkalas "mkdir -p /tmp" $ adb push /tmp If paketas yra ipk (skirtas QCS8550.LE.1.0): $ adb apvalkalas „opkg –force-depends –force-reinstall –force-overwrite install /tmp/“

Išvalykite doko vaizdą
Užbaigus kūrėjo darbo eigą, reikia išvalyti doko aplinką, kad būtų atlaisvinta saugykla diske. Išvalius doką pašalinami nenaudojami konteineriai ir vaizdai, taip atlaisvinama vietos diske.
Norėdami išvalyti dockerio vaizdą, naudokite šias komandas:

  1. „Linux“ darbo stotyje paleiskite šią komandą:
    $ CD /tflite-tools
  2. Sustabdykite konteinerį:
    $ tflite-tools-host-stop-container ./targets/ le-tflite-tools-builder.json
  3. Išimkite konteinerį:
    $ tflite-tools-host-rm-container ./targets/ le-tflite-tools-builder.json
  4. Pašalinkite senesnius „Docker“ vaizdus:
    $ tflite-tools-host-images-cleanup

Pašalinkite doko sąrankos triktis

Jei komanda tflite-tools-host-build-image pateikia pranešimą, kad įrenginyje neliko vietos, perkelkite docker katalogą į/local/mnt. Norėdami pašalinti sąrankos triktis, atlikite šiuos veiksmus:

  1. Sukurkite esamo doko atsarginę kopiją files:
    $ tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(data + %s).tar.gz
  2. Sustabdykite dokerį:
    $ Service Docker stotelė
  3. Patikrinkite, ar nevyksta joks doko procesas:
    $ ps dirbtinis | grep docker
  4. Patikrinkite docker katalogo struktūrą:
    $ sudo ls /var/lib/docker/
  5. Perkelkite docker katalogą į naują skaidinį:
    $ mv /var/lib/docker /local/mnt/docker
  6. Naujame skaidinyje sukurkite simbolinę nuorodą į docker katalogą:
    $ ln -s /local/mnt/docker /var/lib/docker
  7. Įsitikinkite, kad docker katalogo struktūra išlieka nepakitusi:
    $ sudo ls /var/lib/docker/
  8. Paleisti doką:
    $ Service Docker pradžia
  9. Perkėlę docker katalogą, iš naujo paleiskite visus konteinerius.

Sukurkite TFLite SDK su Linux darbo stotimi

TFLite SDK darbo eigą galima įjungti be konteinerių naudojant Linux darbo vietą. Ši procedūra yra konteinerių naudojimo alternatyva.
Norėdami sinchronizuoti ir sukurti Qualcomm TFLite SDK, atlikite šiuos veiksmus:

  1. Sukurkite katalogą pagrindiniame kompiuteryje file sistema, skirta sinchronizuoti Qualcomm TFLite SDK darbo sritį. Pavyzdžiui,ampLe:
    $mkdir
    $ cd
  2. Gaukite Qualcomm TFLite SDK šaltinio kodą iš 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 leidimas && repo sinchronizavimas -qc –no-tags -j8 && repo sinchronizavimas -qc -ne-tags -j8
  3. 3. Redaguokite JSON konfigūraciją file esantis /tflite-tools/ targets/le-tflite-tools-builder.json su šiais įrašais
    „Vaizdas“: „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": ""
    Norėdami gauti daugiau informacijos apie įrašus, nurodytus json konfigūracijoje file, žr. Docker.md readme file adresu /tflite-tools/.
    PASTABA QCS8550 šešiakampis DSP delegatas nepalaikomas
  4. Išveskite scenarijų aplinkai nustatyti:
    $ CD /tflite-tools
    $ šaltinis ./scripts/host/host_env_setup.sh
  5. Sukurkite Qualcomm TFLite SDK.
    $ tflite-tools-setup targets/le-tflite-tools-builder.json
  6.  Vykdykite šias paslaugų komandas tame pačiame „Linux“ apvalkale, kad surinktumėte TFLite SDK artefaktus iš 
    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. Įdiekite artefaktus pagal operacinę sistemą
    • „Windows“ platformoje „PowerShell“ naudokite šį scenarijų
      PS C:> adb root PS C:> adb disable-verity PS C:> adb paleisti iš naujo PS C:> adb laukti įrenginio PS C:> adb šaknis PS C:> adb remount PS C:> adb apvalkalo prijungimas - o remount,rw / PS C:> adb apvalkalas "mkdir -p /tmp" PS C:> adb push /tmp
      Jei paketas yra ipk (skirta QCS8550.LE.1.0), naudokite šias komandas:
      PS C:> adb apvalkalas „opkg –force-depends –force-reinstall –forceoverwrite įdiegti /tmp/
      Linux platformai naudokite šį scenarijų:
      $ adb root $ adb disable-verity $ adb perkrauti $ adb laukti įrenginio $ adb root $ adb perjungti $ adb apvalkalo prijungimas -o remount,rw / $ adb apvalkalas "mkdir -p /tmp" $ adb push /tmp Jei paketas yra ipk (skirta QCS8550.LE.1.0):
      $ adb apvalkalas „opkg – priverstinai priklauso – priverstinai diegti iš naujo – priverstinai perrašyti diegimą /tmp/“

Generuokite „Qualcomm TFLite“ SDK artefaktus, kad galėtumėte kurti QIM SDK

Norėdami naudoti artefaktus, sugeneruotus įgalinti Qualcomm TFLite SDK GStreamer papildinį QIM SDK, atlikite šiuos veiksmus:

  1. Užbaikite sinchronizavimo ir kūrimo Qualcomm TFLite SDK procedūrą, tada paleiskite šią komandą: $ tflite-tools-host-get-dev-tar-package ./targets/le-tflite-toolsbuilder.json
    Degutas file yra generuojamas. Jame yra „Qualcomm TFLite SDK“ nurodytu keliu „TFLite_rsync_destination“
  2. Norėdami įjungti Qualcomm TFLite SDK GStreamer papildinį, naudokite tar file kaip argumentą JSON konfigūracijoje file skirta QIM SDK versijai.
    Norėdami gauti informacijos apie QIM SDK sudarymą, žr. Qualcomm Intelligent Multimedia SDK (QIM SDK) greitos pradžios vadovą (80-50450-51).

Kurkite Qualcomm TFLite SDK palaipsniui

Jei Qualcomm TFLite SDK kuriate pirmą kartą, žr. Qualcomm TFLite SDK įrankių kūrimas – kūrėjo darbo eiga. Tą pačią kūrimo aplinką galima pakartotinai naudoti laipsniškam kūrimui.
Paveiksle paminėtos pagalbinės priemonės (konteinerio viduje) yra prieinamos kūrėjams, kad galėtų sudaryti modifikuotas programas ir papildinius.
5-1 pav. Darbo eiga konteineryje

Ryšys

Baigę kodo pakeitimus kodų kataloge, atlikite šiuos veiksmus:

  1. Sukompiliuoti pakeistą kodą:
    $ tflite-tools-incremental-build-install
  2. Paketo sudarytas kodas:
    $ tflite-tools-ipk-rel-pkg arba $ tflite-tools-deb-rel-pkg
  3. Sinchronizuokite išleidimo paketus su pagrindiniu kompiuteriu file sistema:
    $ tflite-tools-remote-sync-ipk-rel-pkg
    Or
    $ tflite-tools-remote-sync-deb-rel-pkg
  4. Paruoškite kūrimo paketą:
    $ tflite-tools-ipk-dev-pkg
    Sukompiliuoti artefaktai yra TFLite_rsync_destination aplanke, minimame JSON file, kurį galima nukopijuoti į bet kurį katalogą.

Dirbkite su QNN išoriniu TFLite delegatu

Išorinis TFLite delegatas leidžia paleisti modelius (dalį arba visą) kitam vykdytojui, naudojant patikimos trečiosios šalies, pvz., Qualcomm QNN, teikiamas bibliotekas. Šis mechanizmas gali panaudoti įvairius įrenginyje esančius greitintuvus, tokius kaip GPU arba šešiakampis tensorinis procesorius (HTP), kad padarytų išvadas. Tai suteikia kūrėjams lankstų ir atsietą metodą nuo numatytojo TFLite, kad būtų galima pagreitinti išvadas.

Būtinos sąlygos:

  • Įsitikinkite, kad QNN AI kamino išskleisti naudojate Ubuntu darbo stotį.
  • Įsitikinkite, kad naudojate QNN 2.14 versiją, kad būtumėte kartu su Qualcomm TFLite SDK

„Qualcomm TFLite SDK“ įgalinta atlikti išvadas keliose QNN užpakalinėse sistemose per išorinį „TFLite“ atstovą QNN. TFLite modeliai su bendru plokščio buferio atvaizdavimu gali būti paleisti GPU ir HTP.
Įrenginyje įdiegę Qualcomm TFLite SDK paketus, atlikite šiuos veiksmus, kad įrenginyje įdiegtumėte QNN bibliotekas.

  1. Atsisiųskite „Qualcomm Package Manager 3“, skirtą „Ubuntu“.
    a. Spustelėkite https://qpm.qualcomm.com/ ir spustelėkite Įrankiai.
    b. Kairiosios srities lauke Paieškos įrankiai įveskite QPM. Sistemos OS sąraše pasirinkite Linux.
    Paieškos rezultatuose rodomas Qualcomm paketų tvarkytojų sąrašas.
    c. Pasirinkite Qualcomm Package Manager 3 ir atsisiųskite Linux debian paketą.
  2. Įdiekite „Qualcomm Package Manager 3“, skirtą „Linux“. Naudokite šią komandą:
    $ dpkg -i – priverstinai perrašyti /kelias/į/
    QualcommPackageManager3.3.0.83.1.Linux-x86.deb
  3. Atsisiųskite Qualcomm®
    AI Engine Direct SDK Ubuntu darbo vietoje.
    a. Spustelėkite https://qpm.qualcomm.com/ ir spustelėkite Įrankiai.
    b. Kairiosios srities lauke Paieškos įrankiai įveskite AI stack. Sistemos OS sąraše pasirinkite Linux.
    A Rodomas išskleidžiamasis sąrašas, kuriame yra įvairių AI kamino variklių.
    c. Spustelėkite Qualcomm® AI Engine Direct SDK ir atsisiųskite Linux v2.14.0 paketą.
  4. Įdiekite Qualcomm® AI Engine Direct SDK Ubuntu darbo stotyje.
    a. Suaktyvinkite licenciją:
    qpm-cli –license-activate qualcomm_ai_engine_direct
    b Įdiekite AI Engine Direct SDK:
    $ qpm-cli – ištrauka /kelias/į/ qualcomm_ai_engine_direct.2.14.0.230828.Linux-AnyCPU.qik
  5. Perkelkite bibliotekas į įrenginį iš Ubuntu darbo stoties naudodami 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-ed/68/hexagon-v libQnnHtpV68Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-v69/unsigned/ libQnnHtpV69Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-ed/v73p73 taigi /usr/lib/rfsa/adsp

Išbandykite Qualcomm TFLite SDK

„Qualcomm TFLite SDK“ suteikia tam tikrų pvzample programas, kurias galima naudoti norint patvirtinti, palyginti ir gauti modelių, kuriuos kūrėjas nori įvertinti, tikslumą.
Įrenginyje įdiegus Qualcomm TFLite SDK paketus, įrenginyje pasiekiamas vykdymo laikas šiems ex.ample paraiškas.
Būtina sąlyga
Įrenginyje sukurkite šiuos katalogus:
$ adb apvalkalas „mkdir / data/Models“
$ adb apvalkalas „mkdir / data/Lables“
$ adb apvalkalas „mkdir / data/profiling“

Etiketės vaizdas

Etiketės vaizdas yra Qualcomm TFLite SDK teikiama priemonė, kuri parodo, kaip galite įkelti iš anksto paruoštą ir konvertuotą TensorFlow Lite modelį ir naudoti jį atpažinti objektus vaizduose. Būtinos sąlygos:
Atsisiųskite sampmodelis ir vaizdas:
Galite naudoti bet kurį suderinamą modelį, tačiau toliau pateiktas MobileNet v1 modelis puikiai parodo modelį, išmokytą atpažinti 1000 skirtingų objektų.

  • Gaukite 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/
  • Gaukite etiketes
    $ 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/
    Prisijungę prie „Qualcomm TFLite SDK“ doko konteinerio, vaizdą galite rasti adresu:
    „/mnt/tflite/src/tensorflow/tensorflow/lite/examples/label_image/testdata/grace_hopper.bmp“
    a. Pastumkite tai file to/data/Labels/
    b. Paleiskite komandą:
    $ adb apvalkalas „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“

Etalonas

„Qualcomm TFLite SDK“ suteikia palyginimo įrankį, leidžiantį apskaičiuoti įvairių veikimo laikų našumą.
Šie etaloniniai įrankiai šiuo metu matuoja ir skaičiuoja toliau nurodytų svarbių našumo metrikų statistiką.

  • Inicializavimo laikas
  • Išvadinis įšilimo būsenos laikas
  • Pastovios būsenos išvados laikas
  • Atminties naudojimas inicijavimo metu
  • Bendras atminties naudojimas

Būtinos sąlygos

Stumkite modelius, kuriuos norite išbandyti iš TFLite Model Zoo (https://tfhub.dev/) į/data/Models/. Paleiskite šie scenarijai:  

  • XNN paketas
    $ adb apvalkalas „benchmark_model –graph=/data/Models/ — enable_op_profiling=true –use_xnnpack=true –num_threads=4 –max_sec=300 –profiling_output_csv_file=/duomenys/profiliavimas/”
  • GPU delegatas
    $ adb apvalkalas „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=/duomenys/profiliavimas/”
  • Išorinis delegatas
    QNN išorinis įgaliotasis GPU:
    Vykdykite išvadą naudojant slankiojo kablelio modelį:
    $ adb shell-command “benchmark_model –graph=/data/Models/ .tflite –external_delegate_path=libQnnTFLiteDelegate.so — external_delegate_options='backend_type:gpu;library_path:/usr/lib/ libQn_/Gpulirrifusr;sd_: /adsp"
    QNN išorinis įgaliotinis HTP:
    Paleiskite išvadą su kvantiniu modeliu:
    $ adb shell-command “benchmark_model –graph=/data/Models/ .tflite –external_delegate_path=libQnnTFLiteDelegate.so – external_delegate_options='backend_type:htp;library_path:/usr/lib/; libQnn/sdlirrli /adsp"

Tikslumo įrankis

„Qualcomm TFLite SDK“ yra tikslumo įrankis, leidžiantis apskaičiuoti modelių, kurių veikimo laikas yra įvairus, tikslumą.

  • Klasifikacija su GPU delegatu
    Veiksmai norint atsisiųsti būtiną files, kuriuos norite išbandyti, galite rasti adresu: „/mnt/tflite/src/tensorflow/tensorflow/lite/tools/evaluation/tasks/imagenet_image_classificatio/README.md“
    Šio įrankio paleidimo dvejetainis failas jau yra SDK dalis, todėl kūrėjui nereikia jo kurti dar kartą.
    $ adb apvalkalas „image_classify_run_eval — model_file=/data/Models/ –ground_truth_images_path=/data/ — ground_truth_labels=/data/ –model_output_labels=/ data/ –delegate=gpu”
  • Objektų aptikimas naudojant XNN paketą
    $ adb apvalkalas „inf_diff_run_eval –model_file=/data/Models/ –delegate=xnnpac

Jūsų prieiga prie šio dokumento ir jo naudojimas bei visos specifikacijos, informacinė lenta files, brėžiniai, diagnostika ir kita čia esanti informacija (bendrai tai "Dokumentacija"), priklauso jūsų (įskaitant korporaciją ar kitą juridinį asmenį, kuriam atstovaujate, kolektyviai „Tu“ arba „Tavo“) taisyklių ir sąlygų priėmimas („Naudojimo sąlygos“) išdėstyta žemiau. Jei nesutinkate su šiomis naudojimo sąlygomis, negalite naudoti šios Dokumentacijos ir nedelsdami sunaikinti visas jos kopijas.

  1. Teisinis įspėjimas.
    Ši dokumentacija yra prieinama jums tik jūsų vidiniam naudojimui su tais „Qualcomm Technologies, Inc.“ („Qualcomm Technologies“) ir su ja susijusių įmonių produktais bei paslaugų pasiūlymais, aprašytais šioje dokumentacijoje, ir negali būti naudojama jokiems kitiems tikslams. Šios dokumentacijos jokiu būdu negalima keisti, redaguoti ar modifikuoti be išankstinio raštiško Qualcomm Technologies sutikimo. Neteisėtas šios informacijos naudojimas arba atskleidimas
    Čia esanti dokumentacija arba informacija yra griežtai draudžiama, ir jūs sutinkate atlyginti Qualcomm Technologies, jos filialams ir licencijų išdavėjams bet kokią žalą ar nuostolius, kuriuos patyrė Qualcomm Technologies, jos filialai ir licencijų išdavėjai dėl bet kokio tokio neteisėto šios Dokumentacijos naudojimo ar atskleidimo. dalis. „Qualcomm Technologies“, jos filialai ir licencijų išdavėjai išlaiko visas teises ir nuosavybės teises į šią Dokumentaciją. Šiame dokumente arba bet kokia čia atskleista informacija, įskaitant, bet tuo neapsiribojant, bet kokią licenciją gaminti, naudoti, importuoti ar importuoti, nesuteikiama ar numanoma jokia prekės ženklo, patento, autorių teisių, kaukių darbo apsaugos ar bet kokios kitos intelektinės nuosavybės teisės licencija. parduoti bet kokį produktą, paslaugą ar technologiją, kurioje yra bet kokia šioje dokumentacijoje pateikta informacija.
    ŠI DOKUMENTACIJA TEIKIAMA „TAIP, KOKIA YRA“ BE JOKIOS GARANTIJOS, AR NUORODOS, NUMANOMOS, ĮSTATYMŲ AR KITAIP. IKI DIDŽIAUSIOS ĮSTATYMŲ LEIDŽIAMO DYDŽIO QUALCOMM TECHNOLOGIES, JOS dukterinės įmonės IR LICENCIJOS DĖLĖJAI SPECIALIAI ATSISAKO VISŲ GARANTIJŲ, DĖL NUOSAVYBĖS, TINKAMUMO PARDUOTI, NEPAŽEIDIMO, TINKAMUMO ATSAKOMYBĖMS URACY, IR VISOS GARANTIJOS, SUSIJUSIOS DĖL PREKYBOS NAUDOJIMO ARBA NE SPRENDIMŲ AR VEIKLOS KURSO NEŠALUS. Be to, nei „Qualcomm Technologies“, nei jokios jos dukterinės įmonės ar licencijos davėjai neatsako jums ar bet kuriai trečiajai šaliai už bet kokias išlaidas, nuostolius, naudojimą ar veiksmus, kuriuos jūs patyrėte ar imate priklausomai nuo šios dokumentacijos.
    Tam tikriems gaminių rinkiniams, įrankiams ir medžiagoms, nurodytoms šioje dokumentacijoje, gali tekti sutikti su papildomomis sąlygomis prieš pasiekiant ar naudojant tuos elementus.
    Šioje dokumentacijoje nurodytiems techniniams duomenims gali būti taikomi JAV ir kiti taikomi eksporto kontrolės įstatymai. Perdavimas, prieštaraujantis JAV ir kitiems taikomiems įstatymams, yra griežtai draudžiamas.
    Niekas šioje dokumentacijoje nėra pasiūlymas parduoti čia nurodytus komponentus ar įrenginius.
    Ši dokumentacija gali būti keičiama be papildomo įspėjimo. Iškilus prieštaravimams tarp šių naudojimo sąlygų ir Websvetainės naudojimo sąlygos www.qualcomm.com arba Qualcomm privatumo politika, nurodyta www.qualcomm.com, valdys šios naudojimo sąlygos. Jei kyla prieštaravimų tarp šių Naudojimo sąlygų ir bet kurios kitos jūsų ir „Qualcomm Technologies“ arba „Qualcomm Technologies“ filialo sudarytos sutarties (parašytos arba spustelėjus) dėl jūsų prieigos prie šios Dokumentacijos ir jos naudojimo, kita sutartis bus kontroliuojama. .
    Šios naudojimo sąlygos yra reglamentuojamos ir aiškinamos bei vykdomos pagal Kalifornijos valstijos įstatymus, išskyrus JT konvenciją dėl tarptautinio prekių pardavimo, neatsižvelgiant į įstatymų kolizijos principus. Bet kokį ginčą, pretenziją ar ginčą, kylantį iš šių naudojimo sąlygų arba su jomis susijusių, arba su jų pažeidimu ar galiojimu, sprendžia tik kompetentingos jurisdikcijos teismas San Diego grafystėje, Kalifornijos valstijoje, ir jūs sutinkate asmeninę tokių teismų jurisdikciją tuo tikslu.
  2. Prekių ženklų ir produktų priskyrimo pareiškimai.
    „Qualcomm“ yra „Qualcomm Incorporated“ prekės ženklas arba registruotasis prekės ženklas. Arm yra registruotasis Arm Limited (arba jos dukterinių įmonių) prekės ženklas JAV ir (arba) kitur. „Bluetooth®“ žodinis ženklas yra registruotasis prekės ženklas, priklausantis „Bluetooth SIG, Inc.“. Kiti gaminių ir prekių pavadinimai, nurodyti šioje dokumentacijoje, gali būti atitinkamų savininkų prekių ženklai arba registruotieji prekių ženklai.
    „Snapdragon“ ir „Qualcomm“ prekės ženklo produktai, nurodyti šioje dokumentacijoje, yra „Qualcomm Technologies, Inc.“ ir (arba) jos dukterinių įmonių produktai. Qualcomm patentuotos technologijos yra licencijuotos Qualcomm Incorporated.

Įmonės logotipas

Dokumentai / Ištekliai

PDF thumbnailTensorFlow Lite SDK programinė įranga
User Guide · TensorFlow Lite SDK Software, Lite SDK Software, SDK Software, Software

Užduokite klausimą

Use this section to ask about setup, compatibility, troubleshooting, or anything missing from this manual.

Užduokite klausimą

Ask about setup, compatibility, troubleshooting, or anything missing from this manual. Name and email are optional.