Gabay sa Gumagamit ng Qualcomm TensorFlow Lite SDK Software
Kasaysayan ng rebisyon
Rebisyon | Petsa | Paglalarawan |
AA | Setyembre 2023 | Paunang paglabas |
AB | Oktubre 2023 |
|
Panimula sa mga tool ng Qualcomm TFLite SDK
Ang mga tool ng Qualcomm TensorFlow Lite software development kit (Qualcomm TFLite SDK) ay nagbibigay ng TensorFlow Lite framework para sa on-device artificial intelligence (AI) inferencing, na nagpapadali sa mga developer ng application na bumuo o magpatakbo ng mga angkop na AI application.
Ang dokumentong ito ay nagbibigay ng sunud-sunod na mga tagubilin para mag-compile ng standalone na Qualcomm TFLite SDK at i-set up ang development environment. Nagbibigay-daan ito sa daloy ng trabaho ng developer, na kinabibilangan ng:
- pagse-set up ng build environment kung saan maaaring i-compile ng developer ang Qualcomm TFLite SDK
- pagbuo ng mga standalone na Qualcomm TFLite SDK application
Para sa suporta, tingnan anghttps://www.qualcomm.com/suporta. Ang sumusunod na figure ay nagbibigay ng buod ng Qualcomm TFLite SDK workflow: ”
Figure 1-1 Qualcomm TFLite SDK workflow
Ang tool ay nangangailangan ng isang platform SDK at isang configuration file (JSON format) upang bumuo ng mga artifact ng Qualcomm TFLite SDK.
Upang bumuo ng isang end-to-end na application gamit ang multimedia, AI, at computer vision (CV) subsystem, tingnan ang Qualcomm Intelligent Multimedia SDK (QIM SDK) Quick Start Guide (80-50450-51).
Ipinapakita ng talahanayan ang pagmamapa ng bersyon ng Qualcomm TFLite SDK na may paglabas ng CodeLinaro tag:
Talahanayan 1-1 Paglabas ng impormasyon
Bersyon ng Qualcomm TFLite SDK | Paglabas ng CodeLinaro tag |
V1.0 | Qualcomm TFLITE.SDK.1.0.r1-00200-TFLITE.0 |
Talahanayan 1-2 Mga suportadong bersyon ng Qualcomm TFLite SDK
Qualcomm Bersyon ng TFLite SDK | Mga sinusuportahang produkto ng software | Sinusuportahang bersyon ng TFLite |
V1.0 | QCS8550.LE.1.0 |
|
|
||
|
||
|
||
|
||
|
Mga sanggunian
Talahanayan 1-3 Mga kaugnay na dokumento
Pamagat | Numero |
Qualcomm | |
00067.1 Release Note para sa QCS8550.LE.1.0 | RNO-230830225415 |
Gabay sa Mabilis na Pagsisimula ng Qualcomm Intelligent Multimedia SDK (QIM SDK). | 80-50450-51 |
Sanggunian ng Qualcomm Intelligent Multimedia SDK (QIM SDK). | 80-50450-50 |
Mga mapagkukunan | |
https://source.android.com/docs/setup/start/initializing | – |
Talahanayan 1-4 Mga acronym at kahulugan
Acronym o termino | Kahulugan |
AI | Artipisyal na katalinuhan |
BIOS | Pangunahing sistema ng input/output |
CV | Computer vision |
IPK | Itsy package file |
QIM SDK | Qualcomm Intelligent multimedia software development kit |
SDK | Software development kit |
TFLite | TensorFlow Lite |
XNN | Xth pinakamalapit na kapitbahay |
I-set up ang build environment para sa mga tool ng Qualcomm TFLite SDK
Ang mga tool ng Qualcomm TFLite SDK ay inilabas sa source form; samakatuwid, ang pagtatatag ng build environment upang i-compile ito ay isang sapilitan ngunit isang beses na pag-setup.
Mga kinakailangan
- Tiyaking mayroon kang sudoaccess sa Linux host machine.
- Tiyakin na ang bersyon ng host ng Linux ay Ubuntu 18.04 o Ubuntu 20.04.
- Palakihin ang maximum na mga panonood ng user at maximum na pagkakataon ng user sa host system.
- Idagdag ang sumusunod na command line sa/etc/sysctl.confand i-reboot ang host: fs.inotify.max_user_instances=8192 fs.inotify.max_user_watches=542288
I-install ang mga kinakailangang host package
Ang mga host package ay naka-install sa Linux host machine.
Patakbuhin ang mga command para i-install ang mga host packages: $ sudo apt install -y jq $ sudo apt install -y texinfo chrpath libxml-simple-perl openjdk-8-jdkheadless
Para sa Ubuntu 18.04 at mas mataas:
$ 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 font
Para sa higit pang impormasyon, tingnan ang https://source.android.com/docs/setup/start/initializing.
I-set up ang kapaligiran ng docker
Ang docker ay isang platform na ginagamit upang bumuo, bumuo, sumubok, at maghatid ng software. Upang i-compile ang SDK, dapat na i-configure ang docker sa Linux host machine.
Tiyaking pinagana ang virtualization ng CPU sa Linux host machine. Kung hindi ito pinagana, gawin ang sumusunod upang paganahin ito mula sa pangunahing mga setting ng configuration ng input/output system (BIOS):
- Paganahin ang virtualization mula sa BIOS:
a. Pindutin ang F1 o F2 kapag nagbo-boot ang system para pumasok sa BIOS. Ang BIOS window ay ipinapakita.
b. Lumipat sa tab na Advanced.
c. Sa seksyong CPU Configuration, itakda ang Virtualization Technology sa Enabled.
a. Pindutin ang F12 upang i-save at lumabas, at pagkatapos ay i-restart ang system.
Kung hindi gumana ang mga hakbang na ito, sundin ang mga partikular na tagubilin mula sa system provider upang paganahin ang virtualization - Alisin ang anumang lumang instance ng docker:
$ sudo apt alisin ang docker-desktop
$ rm -r $HOME/.docker/desktop
$ sudo rm /usr/local/bin/com.docker.cli
$ sudo apt purge docker-desktop - I-set up ang docker remote repository:
$ sudo apt-get update $ sudo apt-get install ca-certificate 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 - I-install ang docker engine:
$ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli - Magdagdag ng user sa pangkat ng docker:
$ sudo groupadd docker $ sudo usermod -aG docker $USER - I-reboot ang system.
Bumuo ng platform SDK
Ang platform SDK ay isang mandatoryong kinakailangan para i-compile ang mga tool ng Qualcomm TFLite SDK. Nagbibigay ito ng lahat ng kinakailangang dependency sa platform na kinakailangan ng Qualcomm TFLite SDK.
Gawin ang sumusunod upang mabuo ang platform SDK:
- Gumawa ng build para sa gustong produkto ng software.
Ang mga tagubilin sa pagbuo ng QCS8550.LE.1.0release ay ibinibigay sa mga tala sa paglabas. Upang ma-access ang mga tala sa paglabas, tingnan ang Mga Sanggunian.
Kung dati nang binuo ang mga imahe, isagawa ang hakbang 2, at pagkatapos ay lumikha ng malinis na build. - Patakbuhin ang sumusunod na command upang buuin ang mga larawan ng user space at platform SDK:
Para sa QCS8550.LE.1.0, idagdag ang feature ng makina na qti-tflite-delegate sa MACHINE_FEATURES sa kalama.conf file at pinagmulan ang build environment ayon sa mga tagubilin mula sa mga tala sa paglabas.
Pagkatapos bumuo ng mga larawan ng user space mula sa build, patakbuhin ang sumusunod na command para buuin ang platform SDK.
$ bitbake -fc populate_sdk qti-robotics-image
Bumuo ng mga tool ng Qualcomm TFLite SDK – daloy ng trabaho ng developer
Ang daloy ng trabaho ng mga tool ng Qualcomm TFLite SDK ay nangangailangan ng developer na magbigay ng configuration file na may wastong mga entry sa pag-input. Ang helper shell script mula sa tflite-tools project (naroroon sa Qualcomm TFLite SDK source tree) ay nagbibigay ng helper utility function para i-set up ang shell environment, na magagamit para sa Qualcomm TFLite SDK workflow.
Binubuo ng developer ang mga proyekto ng Qualcomm TFLite SDK sa loob ng container at bumubuo ng mga artifact gamit ang mga utility na ibinigay ng tflite-tools.
Pagkatapos mabuo ang isang Qualcomm TFLite SDK container, maaaring i-attach ng developer ang container at gamitin ang mga helper utility sa container shell environment para sa patuloy na pag-develop.
- May probisyon na i-install ang Qualcomm TFLite SDK artifact sa isang Qualcomm device na konektado sa Linux host sa pamamagitan ng USB/adb.
- Mayroon ding probisyon upang kopyahin ang mga artifact ng Qualcomm TFLite SDK mula sa container patungo sa ibang host machine kung saan nakakonekta ang Qualcomm device.
Inililista ng sumusunod na figure ang hanay ng mga utility na magagamit pagkatapos i-set up ang container build environment gamit ang helper script para sa pagbuo ng Qualcomm TFLite SDK.
Ipinapakita ng figure ang pagkakasunud-sunod ng pagpapatupad ng mga utility:
Figure 4-3 Sequence ng mga utility sa host
I-sync at bumuo ng Qualcomm TFLite SDK
Ang Qualcomm TFLite SDK ay pinagsama-sama kapag ang docker na imahe ay nilikha. Upang i-sync at buuin ang Qualcomm TFLite SDK, gawin ang sumusunod:
- Lumikha ng isang direktoryo sa host file system upang i-sync ang Qualcomm TFLite SDK workspace. Para sa
example: $mkdir $cd - Kunin ang Qualcomm TFLite SDK source code mula sa 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 - Lumikha ng isang direktoryo sa host file system na maaaring i-mount sa docker. Para kay example: mkdir-p / Maaaring malikha ang direktoryo na ito kahit saan sa Linux host machine, at hindi ito nakadepende sa kung saan naka-sync ang Qualcomm TFLite SDK project. Pagkatapos makumpleto ang daloy ng trabaho sa loob ng lalagyan, ang mga artifact ng Qualcomm TFLite SDK ay makikita sa direktoryo na ginawa sa hakbang na ito.
- I-edit ang configuration ng JSON file naroroon sa /tflite-tools/ targets/le-tflite-tools-builder.json na may mga sumusunod na entry:
“Larawan”: “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”: “” }
Para sa karagdagang impormasyon sa mga entry na binanggit sa json configuration file, tingnan ang Docker.md readme file sa /tflite-tools/.
TANDAAN Para sa QCS8550, hindi suportado ang Qualcomm® Hexagon™ DSP delegate. - Pinagmulan ang script upang i-set up ang kapaligiran:
$ cd /tflite-tools $ source ./scripts/host/docker_env_setup.sh - Buuin ang Qualcomm TFLite SDK docker image: $ tflite-tools-host-build-image ./targets/le-tflite-tools-builder.json Kung nabigo ang build setup, tingnan ang Troubleshoot docker setup. Pagkatapos ng matagumpay na pagkumpleto, ang sumusunod na mensahe ay ipapakita: "Status: Bumuo ng imahe ay matagumpay na nakumpleto!!" Ang pagpapatakbo ng hakbang na ito ay bumubuo rin ng Qualcomm TFLite SDK.
- Patakbuhin ang Qualcomm TFLite SDK docker container. Sinisimulan nito ang lalagyan gamit ang tags ibinigay sa configuration ng JSON file. $tflite-tools-host-run-container ./targets/le-tflite-tools-builder.json
- Mag-attach sa lalagyan na nagsimula sa nakaraang hakbang.
$ docker attach
Ang Qualcomm TFLite SDK ay pinagsama-sama, at ang mga artifact ay handa nang i-deploy o higit pa ay maaaring
ginamit upang bumuo ng QIM SDK TFLite plug-in.
Ikonekta ang device upang mag-host at mag-deploy ng mga artifact]
Pagkatapos ng compilation, mayroong dalawang mekanismo para ikonekta ang device sa isang host at i-deploy ang
Mga artifact ng Qualcomm TFLite SDK.
- Nakakonekta ang device sa isang lokal na Linux host:
Ikinonekta ng isang developer ang device sa isang workstation at ini-install ang mga artifact ng Qualcomm TFLite SDK mula sa container nang direkta sa device (QCS8550). - Nakakonekta ang device sa isang malayuang host:
Ikinonekta ng isang developer ang device sa isang remote na workstation, at magagamit nila ang mga command ng installer ng pack manager sa mga platform ng Windows at Linux para i-install ang mga artifact ng Qualcomm TFLite SDK sa device (QCS8550)
Figure 4-4 Koneksyon ng device board sa developer at remote workstation
Ikonekta ang device sa workstation
Nakakonekta ang device sa workstation at maa-access ng development container ang device gamit ang USB/adb.
Ipinapakita ng figure ang stagay sa pagkakasunud-sunod ng Qualcomm TFLite SDK workflow:
- Patakbuhin ang mga sumusunod na command para i-install ang mga artifact sa device:
$ tflite-tools-device-prepare
$ tflite-tools-device-deploy - Upang i-uninstall ang mga artifact, patakbuhin ang sumusunod na command:
$ tflite-tools-device-packages-remove
Ikonekta ang device sa remote na makina
Nakakonekta ang device sa isang malayuang makina, at hindi ma-access ng Qualcomm TFLite SDK container ang device sa pamamagitan ng USB/ad b.
Ipinapakita ng figure ang stagay sa pagkakasunud-sunod ng Qualcomm TFLite SDK workflow:
Patakbuhin ang mga sumusunod na command sa lalagyan ng tflite-tools upang kopyahin ang mga artifact sa isang malayuang makina
depende sa manager ng package sa device:
$ tflite-tools-remote-sync-ipk-rel-pkg
TANDAAN Ang remote na impormasyon ng makina ay ibinigay sa JSON configuration file.
Mag-install ng mga artifact para sa Windows platform
Maaaring i-install ang Qualcomm TFLite SDK artifact sa device batay sa operating system ng remote machine.
Para sa Windows platform, gawin ang sumusunod:
Sa PowerShell, gamitin ang sumusunod na script: 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 Kung ang package ay isang ipk (para sa QCS8550.LE.1.0), gamitin ang mga sumusunod na command: PS C:> adb shell “ opkg –force-depends –force-reinstall –force-overwrite install /tmp/”
Mag-install ng mga artifact para sa Linux platform
Gamitin ang mga sumusunod na command:
$ 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 Kung ang package ay isang ipk (para sa QCS8550.LE.1.0): $ adb shell “opkg –force-depends –force-reinstall –force-overwrite install /tmp/”
Linisin ang larawan ng docker
Pagkatapos makumpleto ang daloy ng trabaho ng developer, dapat linisin ang kapaligiran ng docker upang mabakante ang storage sa disk. Ang paglilinis ng docker ay nag-aalis ng mga hindi nagamit na lalagyan at mga imahe, sa gayon ay nagpapalaya sa espasyo sa disk.
Gamitin ang sumusunod na mga utos upang linisin ang imahe ng docker:
- Patakbuhin ang sumusunod na command sa Linux workstation:
$ cd /tflite-tools - Itigil ang lalagyan:
$ tflite-tools-host-stop-container ./targets/ le-tflite-tools-builder.json - Alisin ang lalagyan:
$ tflite-tools-host-rm-container ./targets/ le-tflite-tools-builder.json - Alisin ang mga mas lumang larawan ng docker:
$ tflite-tools-host-images-cleanup
I-troubleshoot ang setup ng docker
Kung ang tflite-tools-host-build-image command ay nagbabalik ng Nospace na natitira sa device na mensahe, pagkatapos ay ilipat ang docker directory sa/local/mnt. Gawin ang sumusunod upang i-troubleshoot ang setup:
- I-back up ang umiiral na docker files:
$ tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date + %s).tar.gz - Itigil ang docker:
$ serbisyo docker stop - I-verify na walang proseso ng docker na tumatakbo:
$ ps faux | grep docker - Suriin ang istraktura ng direktoryo ng docker:
$ sudo ls /var/lib/docker/ - Ilipat ang direktoryo ng docker sa isang bagong partition:
$ mv /var/lib/docker /local/mnt/docker - Gumawa ng symlink sa direktoryo ng docker sa bagong partition:
$ ln -s /local/mnt/docker /var/lib/docker - Tiyakin na ang istraktura ng direktoryo ng docker ay nananatiling hindi nagbabago:
$ sudo ls /var/lib/docker/ - Simulan ang docker:
$ pagsisimula ng service docker - I-restart ang lahat ng mga container pagkatapos ilipat ang direktoryo ng docker.
Bumuo ng TFLite SDK gamit ang Linux workstation
Maaaring paganahin ang workflow ng TFLite SDK nang walang mga container na gumagamit ng Linux workstation. Ang pamamaraang ito ay isang alternatibo sa paggamit ng mga lalagyan.
Upang i-sync at buuin ang Qualcomm TFLite SDK, gawin ang sumusunod:
- Lumikha ng isang direktoryo sa host file system upang i-sync ang Qualcomm TFLite SDK workspace. Para kay example:
$mkdir
$cd - Kunin ang Qualcomm TFLite SDK source code mula sa 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. I-edit ang configuration ng JSON file naroroon sa /tflite-tools/ targets/le-tflite-tools-builder.json na may mga sumusunod na entry
“Larawan”: “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”: “”
Para sa karagdagang impormasyon sa mga entry na binanggit sa json configuration file, tingnan ang Docker.md readme file sa /tflite-tools/.
TANDAAN Para sa QCS8550, hindi sinusuportahan ang delegado ng Hexagon DSP - Pinagmulan ang script upang i-set up ang kapaligiran:
$ cd /tflite-tools
$ source ./scripts/host/host_env_setup.sh - Buuin ang Qualcomm TFLite SDK.
$ tflite-tools-setup targets/le-tflite-tools-builder.json - Patakbuhin ang sumusunod na mga utility command sa parehong Linux shell para kolektahin ang mga artifact ng TFLite SDK
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 - Mag-install ng mga artifact batay sa operating system
- Para sa Windows platform, sa PowerShell, gamitin ang sumusunod na script
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
Kung ang package ay isang ipk (para sa QCS8550.LE.1.0), gamitin ang mga sumusunod na command:
PS C:> adb shell “opkg –force-depends –force-reinstall –forceoverwrite install /tmp/
Para sa platform ng Linux, gamitin ang sumusunod na script:
$ 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 Kung ang package ay isang ipk (para sa QCS8550.LE.1.0):
$ adb shell “opkg –force-depends –force-reinstall –force-overwrite install /tmp/”
- Para sa Windows platform, sa PowerShell, gamitin ang sumusunod na script
Bumuo ng mga artifact ng Qualcomm TFLite SDK para sa pagbuo ng QIM SDK
Upang gamitin ang mga artifact na nabuo upang paganahin ang Qualcomm TFLite SDK GStreamer plug-in sa QIM SDK, gawin ang sumusunod:
- Kumpletuhin ang pamamaraan sa Sync at bumuo ng Qualcomm TFLite SDK, at pagkatapos ay patakbuhin ang sumusunod na command: $ tflite-tools-host-get-dev-tar-package ./targets/le-tflite-toolsbuilder.json
Isang alkitran file ay nabuo. Naglalaman ito ng Qualcomm TFLite SDK sa path na ibinigay sa “TFLite_rsync_destination” - Upang paganahin ang Qualcomm TFLite SDK GStreamer plug-in, gamitin ang tar file bilang argumento sa configuration ng JSON file para sa build ng QIM SDK.
Para sa impormasyon sa pag-compile ng QIM SDK, tingnan ang Qualcomm Intelligent Multimedia SDK (QIM SDK) Quick Start Guide (80-50450-51).
Bumuo ng Qualcomm TFLite SDK nang paunti-unti
Kung bubuo ka ng Qualcomm TFLite SDK sa unang pagkakataon, tingnan ang Bumuo ng mga tool ng Qualcomm TFLite SDK – workflow ng developer. Ang parehong build environment ay maaaring magamit muli para sa incremental development.
Ang mga helper utilities (sa loob ng container) na binanggit sa figure ay available sa mga developer para mag-compile ng mga binagong application at plug-in.
Figure 5-1 Workflow sa isang lalagyan
Matapos makumpleto ang mga pagbabago sa code sa direktoryo ng code, gawin ang sumusunod:
- I-compile ang binagong code:
$ tflite-tools-incremental-build-install - Code ng pinagsama-samang package:
$ tflite-tools-ipk-rel-pkg o $ tflite-tools-deb-rel-pkg - I-sync ang mga release package sa host file sistema:
$ tflite-tools-remote-sync-ipk-rel-pkg
Or
$ tflite-tools-remote-sync-deb-rel-pkg - Maghanda ng isang dev package:
$ tflite-tools-ipk-dev-pkg
Ang mga pinagsama-samang artifact ay matatagpuan sa sa TFLite_rsync_destination folder na binanggit sa JSON file, na maaaring kopyahin sa anumang direktoryo.
Makipagtulungan sa QNN external TFLite Delegate
Binibigyang-daan ka ng TFLite External Delegate na patakbuhin ang iyong mga modelo (bahagi o buo) sa isa pang executor gamit ang mga library na ibinigay ng isang pinagkakatiwalaang third party tulad ng QNN ng Qualcomm. Maaaring gamitin ng mekanismong ito ang iba't ibang on-device accelerators gaya ng GPU o Hexagon Tensor Processor (HTP) para sa hinuha. Nagbibigay ito sa mga developer ng flexible at decoupled na paraan mula sa default na TFLite para mapabilis ang inference.
Mga kinakailangan:
- Tiyaking gumagamit ka ng Ubuntu workstation para i-extract ang QNN AI stack.
- Tiyaking gumagamit ka ng QNN na bersyon 2.14 upang maging kasabay ng Qualcomm TFLite SDK
Ang Qualcomm TFLite SDK ay pinagana na magpatakbo ng mga inferences sa ilang QNN back-end sa pamamagitan ng TFLite external Delegate para sa QNN. Ang mga modelong TFLite na may karaniwang representasyon ng flatbuffer ay maaaring patakbuhin sa GPU at HTP.
Pagkatapos ma-install ang mga Qualcomm TFLite SDK packages sa device, gawin ang sumusunod para i-install ang QNN library sa device.
- I-download ang Qualcomm Package Manager 3 para sa Ubuntu.
a. I-click anghttps://qpm.qualcomm.com/, at i-click ang Mga Tool.
b. Sa kaliwang pane, sa field na Mga Tool sa Paghahanap, i-type ang QPM. Mula sa listahan ng System OS, piliin ang Linux.
Ang mga resulta ng paghahanap ay nagpapakita ng isang listahan ng Qualcomm Package Managers.
c. Piliin ang Qualcomm Package Manager 3 at i-download ang Linux debian package. - I-install ang Qualcomm Package Manager 3 para sa Linux. Gamitin ang sumusunod na command:
$ dpkg -i –force-overwrite /path/to/
QualcommPackageManager3.3.0.83.1.Linux-x86.deb - I-download ang Qualcomm®
AI Engine Direct SDK sa workstation ng Ubuntu.
a. I-click ang https://qpm.qualcomm.com/ at i-click ang Tools.
b. Sa kaliwang pane, sa field na Mga Tool sa Paghahanap, i-type ang AI stack. Mula sa listahan ng System OS, piliin ang Linux.
A Ang drop-down list na naglalaman ng iba't ibang AI stack engine ay ipinapakita.
c. I-click ang Qualcomm® AI Engine Direct SDK at i-download ang Linux v2.14.0 package. - I-install ang Qualcomm® AI Engine Direct SDK sa workstation ng Ubuntu.
a. I-activate ang lisensya:
qpm-cli –license-activate ang qualcomm_ai_engine_direct
b I-install ang AI Engine Direct SDK:
$ qpm-cli –extract /path/to/ qualcomm_ai_engine_direct.2.14.0.230828.Linux-AnyCPU.qik - Itulak ang mga aklatan sa device mula sa workstation ng Ubuntu gamit ang 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-vV73/unsigned/libQnnHt.p kaya /usr/lib/rfsa/adsp
Subukan ang Qualcomm TFLite SDK
Ang Qualcomm TFLite SDK ay nagbibigay ng ilang partikular na example applications, na maaaring magamit upang i-validate, i-benchmark, at makuha ang katumpakan ng mga modelo na gustong tasahin ng isang developer.
Pagkatapos ma-install sa device ang mga Qualcomm TFLite SDK packages, available na ang runtime sa device para patakbuhin ang mga ex na ito.ampang mga aplikasyon.
Prerequisite
Lumikha ng mga sumusunod na direktoryo sa device:
$ adb shell “mkdir /data/Models”
$ adb shell “mkdir /data/Lables”
$ adb shell "mkdir / data / profile"
Larawan ng tatak
Ang isang label na imahe ay isang utility na ibinigay ng Qualcomm TFLite SDK na nagpapakita kung paano ka makakapag-load ng isang pretrained at na-convert na TensorFlow Lite na modelo at gamitin ito upang makilala ang mga bagay sa mga larawan. Mga kinakailangan:
I-download ang sampang modelo at larawan:
Maaari kang gumamit ng anumang katugmang modelo, ngunit ang sumusunod na modelo ng MobileNet v1 ay nag-aalok ng magandang pagpapakita ng isang modelong sinanay upang makilala ang isang 1000 iba't ibang mga bagay.
- Kumuha ng modelo
$ 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/ - Kumuha ng mga label
$ 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/
Pagkatapos mong kumonekta sa Qualcomm TFLite SDK docker container, makikita ang larawan sa:
“/mnt/tflite/src/tensorflow/tensorflow/lite/examples/label_image/ testdata/grace_hopper.bmp”
a. Itulak ito file sa/data/Mga Label/
b. Patakbuhin ang utos:
$ 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
Ang Qualcomm TFLite SDK ay nagbibigay ng benchmarking tool upang kalkulahin ang pagganap ng iba't ibang oras ng pagtakbo.
Kasalukuyang sinusukat at kinakalkula ng mga benchmark na tool na ito ang mga istatistika para sa mga sumusunod na mahahalagang sukatan ng pagganap:
- Oras ng pagsisimula
- Inference time ng warm-up state
- Inference time ng steady state
- Paggamit ng memory sa oras ng pagsisimula
- Pangkalahatang paggamit ng memorya
Mga kinakailangan
Itulak ang mga modelong susuriin mula sa TFLite Model Zoo (https://tfhub.dev/) sa/data/Mga Modelo/. Patakbuhin ang sumusunod na mga script:
- 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/profile/” - Delegado ng 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/profile/” - Panlabas na Delegado
QNN External Delegate GPU:
Patakbuhin ang inference gamit ang floating point 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/ libQnnGpu.so;skel_library/libsarf: /adsp'”
QNN External Delegate HTP:
Patakbuhin ang hinuha gamit ang quant model:
$ 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_library_library/libdir:/ /adsp'”
Tool sa katumpakan
Ang Qualcomm TFLite SDK ay nagbibigay ng accuracy tool para kalkulahin ang katumpakan ng mga modelo na may iba't ibang run-time.
- Pag-uuri sa delegado ng GPU
Ang mga hakbang upang i-download ang kinakailangan fileAng mga pagsubok ay makikita sa: “/mnt/tflite/src/tensorflow/tensorflow/lite/tools/evaluation/tasks/ imagenet_image_classificatio/README.md”
Ang binary para sa pagpapatakbo ng tool na ito ay bahagi na ng SDK, kaya hindi na kailangan ng developer na buuin itong muli.
$ 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” - Pag-detect ng bagay gamit ang XNN pack
$ adb shell “inf_diff_run_eval –model_file=/data/Models/ –delegate=xnnpac
LEGAL NA IMPORMASYON
Ang iyong pag-access at paggamit ng dokumentong ito, kasama ang anumang mga detalye, reference board files, mga guhit, diagnostic at iba pang impormasyong nakapaloob dito (sama-sama ito "Dokumentasyon"), ay napapailalim sa iyong (kabilang ang korporasyon o iba pang legal na entity na iyong kinakatawan, nang sama-sama "Ikaw" o "Iyo") pagtanggap sa mga tuntunin at kundisyon ("Mga Tuntunin ng Paggamit") itinakda sa ibaba. Kung hindi Ka sumasang-ayon sa Mga Tuntunin ng Paggamit na ito, hindi mo maaaring gamitin ang Dokumentasyong ito at agad na sirain ang anumang kopya nito.
- Legal na Paunawa.
Ang Dokumentasyong ito ay ginagawang available sa Iyo para lamang sa Iyong panloob na paggamit sa mga produkto at serbisyong inaalok ng Qualcomm Technologies, Inc. (“Qualcomm Technologies”) at mga kaakibat nito na inilalarawan sa Dokumentasyong ito, at hindi dapat gamitin para sa anumang iba pang layunin. Ang Dokumentasyong ito ay hindi maaaring baguhin, i-edit, o baguhin sa anumang paraan nang walang paunang nakasulat na pag-apruba ng Qualcomm Technologies. Hindi awtorisadong paggamit o pagsisiwalat nito
Mahigpit na ipinagbabawal ang dokumentasyon o ang impormasyong nakapaloob dito, at sumasang-ayon kang bayaran ang Qualcomm Technologies, mga kaakibat at tagapaglisensya nito para sa anumang pinsala o pagkalugi na dinanas ng Qualcomm Technologies, mga kaakibat at tagapaglisensya nito para sa anumang naturang hindi awtorisadong paggamit o pagsisiwalat ng Dokumentasyong ito, sa kabuuan o bahagi. Ang Qualcomm Technologies, ang mga kaakibat at tagapaglisensya nito ay nagpapanatili ng lahat ng karapatan at pagmamay-ari sa at sa Dokumentasyong ito. Walang lisensya sa anumang trademark, patent, copyright, mask work protection right o anumang iba pang karapatan sa intelektwal na ari-arian ang ibinibigay o ipinahiwatig ng Dokumentasyong ito o anumang impormasyong isiniwalat dito, kabilang ang, ngunit hindi limitado sa, anumang lisensya na gumawa, gumamit, mag-import o magbenta ng anumang produkto, serbisyo o teknolohiya na nag-aalok na naglalaman ng alinman sa impormasyon sa Dokumentasyong ito.
ANG DOKUMENTASYON NA ITO AY IBINIBIGAY "AS IS" NA WALANG WARRANTY NG ANUMANG URI, IPINAHAYAG MAN, IPINAHIWATIG, AYON SA KASUNDUAN O IBA PA. SA MAXIMUM NA PINAHIHINTULUTAN NG BATAS, ANG MGA TEKNOLOHIYA NG QUALCOMM, MGA KAAPI NITO AT MGA LICENSOR ESPESIPIKO NA TINANGGITAN ANG LAHAT NG WARRANTY NG TITLE, MERCHANTABILITY, NON-INFRINGEMENT, FITNESS FOR A PARTIKULAR NA LAYUNIN, QATISFORACTORY NA KASUNDUAN OUT OF TRADE USAGE O OUT OF A COURSE OF DEALING O COURSE OF PERFORMANCE. HIGIT PA RIN, HINDI MANANAGOT SA IYO O ANUMANG THIRD PARTY ANG MGA TEKNOLOHIYA NG QUALCOMM, O ANUMANG MGA KAANIB O LICENSOR NITO, PARA SA ANUMANG MGA GASTOS, PAGKAWALA, PAGGAMIT, O PAGKILOS KUNG SAAN MAN NATANGGOL O GINAWA MO SA PAGTITIWALA.
Ang ilang partikular na product kit, tool at materyales na isinangguni sa Dokumentasyong ito ay maaaring mangailangan sa Iyo na tanggapin ang mga karagdagang tuntunin at kundisyon bago i-access o gamitin ang mga item na iyon.
Ang teknikal na data na tinukoy sa Dokumentasyong ito ay maaaring sumailalim sa US at iba pang naaangkop na mga batas sa pagkontrol sa pag-export. Ang paghahatid na salungat sa US at anumang iba pang naaangkop na batas ay mahigpit na ipinagbabawal.
Wala sa Dokumentasyong ito ang isang alok na ibenta ang alinman sa mga bahagi o device na isinangguni dito.
Ang Dokumentasyong ito ay maaaring magbago nang walang karagdagang abiso. Kung sakaling magkaroon ng salungatan sa pagitan ng Mga Tuntunin ng Paggamit na ito at ng WebMga Tuntunin ng Paggamit ng site sa www.qualcomm.com o ang Patakaran sa Privacy ng Qualcomm na tinutukoy sa www.qualcomm.com, ang Mga Tuntunin ng Paggamit na ito ang magkokontrol. Kung sakaling magkaroon ng salungatan sa pagitan ng Mga Tuntunin ng Paggamit na ito at ng anumang iba pang kasunduan (nakasulat o click-through) na isinagawa Mo at ng Qualcomm Technologies o isang kaakibat ng Qualcomm Technologies na may kinalaman sa Iyong pag-access at paggamit ng Dokumentasyong ito, ang ibang kasunduan ang makokontrol .
Ang Mga Tuntunin ng Paggamit na ito ay pamamahalaan at ipakahulugan at ipapatupad alinsunod sa mga batas ng Estado ng California, hindi kasama ang UN Convention on International Sale of Goods, nang walang pagsasaalang-alang sa salungatan ng mga prinsipyo ng batas. Anumang hindi pagkakaunawaan, paghahabol o kontrobersya na nagmumula sa o nauugnay sa Mga Tuntunin ng Paggamit na ito, o ang paglabag o bisa nito, ay hatulan lamang ng isang hukuman na may karampatang hurisdiksyon sa county ng San Diego, Estado ng California, at sa pamamagitan nito ay pumapayag ka ang personal na hurisdiksyon ng naturang mga hukuman para sa layuning iyon. - Trademark at Mga Pahayag ng Pagpapatungkol sa Produkto.
Ang Qualcomm ay isang trademark o rehistradong trademark ng Qualcomm Incorporated. Ang Arm ay isang rehistradong trademark ng Arm Limited (o mga subsidiary nito) sa US at/o saanman. Ang Bluetooth® word mark ay isang rehistradong trademark na pagmamay-ari ng Bluetooth SIG, Inc. Ang iba pang mga produkto at pangalan ng brand na isinangguni sa Dokumentasyong ito ay maaaring mga trademark o rehistradong trademark ng kani-kanilang mga may-ari.
Ang Snapdragon at Qualcomm branded na mga produkto na isinangguni sa Documentation na ito ay mga produkto ng Qualcomm Technologies, Inc. at/o mga subsidiary nito. Ang mga teknolohiyang patentadong Qualcomm ay lisensyado ng Qualcomm Incorporated.
Mga Dokumento / Mga Mapagkukunan
![]() |
Qualcomm TensorFlow Lite SDK Software [pdf] Gabay sa Gumagamit TensorFlow Lite SDK Software, Lite SDK Software, SDK Software, Software |