2017-09-01 263 views
3

我遵循Qualcomm Neural Processing Engine教程来构建示例应用程序。Qualcomm神经处理引擎(NPE)加载模型失败

当应用程序加载模型发生错误。以下

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) 

我怎样才能解决这个问题 错误消息?

回答

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 "error: failed to read metadata" after update to 3.0.0),因为这是在aapt2正在进行错误

3)如果仍然没有解决,验证所有文件都在Android设备上使用亚行外壳:

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: 
[email protected]:/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 

b。该目录是空的 - 所以你可以预期的数据推到合适的位置: 只是把它解压到某个目录,并从目录下执行:

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

,它应该工作。