Сбой модели загрузки Qualcomm Neural Processing Engine (NPE)

Я следую учебнику Qualcomm Neural Processing Engine, чтобы создать пример приложения.

Когда приложение загружает модель, возникает ошибка. Сообщение об ошибке после

09-01 12:21:20.600 30650-30681/com.qualcomm.qti.snpe.imageclassifiers E/LoadNetworkTask: Unable to create network! Cause: error_code=307; error_message=Model record is missing in dlc. Missing mandatory record model; error_component=Dl Container; line_no=447; thread_id=-1422036112
                            java.lang.IllegalStateException: Unable to create network! Cause: error_code=307; error_message=Model record is missing in dlc. Missing mandatory record model; error_component=Dl Container; line_no=447; thread_id=-1422036112
                            at com.qualcomm.qti.snpe.internal.NativeNetwork.nativeInitFromFile(Native Method)
                            at com.qualcomm.qti.snpe.internal.NativeNetwork.<init>(NativeNetwork.java:90)
                            at com.qualcomm.qti.snpe.SNPE$NeuralNetworkBuilder.build(SNPE.java:214)
                            at com.qualcomm.qti.snpe.imageclassifiers.tasks.LoadNetworkTask.doInBackground(LoadNetworkTask.java:50)
                            at com.qualcomm.qti.snpe.imageclassifiers.tasks.LoadNetworkTask.doInBackground(LoadNetworkTask.java:20)
                            at android.os.AsyncTask$2.call(AsyncTask.java:292)
                            at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
                            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                            at java.lang.Thread.run(Thread.java:818)

Как я могу решить эту проблему?


person Elirex    schedule 01.09.2017    source источник


Ответы (1)


Последовательность ее решения следующая:

1) загрузить и упаковать модели alexnet, как в https://developer.qualcomm.com/software/snapdragon-neural-processing-engine-ai/getting-started вам необходимо:

cd $SNPE_ROOT/examples/android/image-classifiers
cp ../../../android/snpe-release.aar ./app/libs # copies the NPE runtime library
bash ./setup_models.sh

2) после этого вы можете столкнуться с этой проблемой: https://developer.qualcomm.com/forum/qdn-forums/software/snapdragon-neural-processing-engine-sdk/35375

/raw_alexnet.zip.flat: error: failed to read data meta data.

чтобы решить эту проблему, вы можете использовать первый обход здесь ( Ошибка Android Studio: не удалось прочитать метаданные после обновления до 3.0.0), так как это постоянная ошибка в aapt2

3) Если это все еще не решено, убедитесь, что все файлы находятся на устройстве Android, используя оболочку adb:

adb shell
sifiers/files $ ls -R /storage/emulated/0/Android/data/com.qualcomm.qti.snpe.i>ssifiers/files $ 

/storage/emulated/0/Android/data/com.qualcomm.qti.snpe.imageclassifiers/files/models/:
alexnet

/storage/emulated/0/Android/data/com.qualcomm.qti.snpe.imageclassifiers/files/models//alexnet:
images

/storage/emulated/0/Android/data/com.qualcomm.qti.snpe.imageclassifiers/files/models//alexnet/images:
shell@msm8996:/storage/emulated/0/Android/data/com.qualcomm.qti.snpe.imageclassifiers/files $ 

Здесь мы видим следующее: а. проблема в том, что SNPE ищет файлы не в том месте, чтобы вы могли переместить каталог в нужное место

cd /storage/emulated/0/Android/data/
mv com.qualcomm.qti.snpe.imageclassifiers com.qualcomm.qti.snpe

б. каталог пуст - поэтому вы можете поместить ожидаемые данные в нужное место: просто извлеките их в определенный каталог и из каталога выполните:

adb push ./ /storage/emulated/0/Android/data/com.qualcomm.qti.snpe/files/models/alexnet/

И это должно работать.

person Netanell Avisdris    schedule 07.02.2018