在android上设置了tflite解释器gpu委托,没有gpu委托的输出是不同的,而且看来无论我输入的数据是什么,模型输出都是一样的,我的代码有问题吗?我已经检查了我的代码,没有设置gpu委托,它的输出是正确的。
这是我设置tflite解释器选项的代码:
tfliteModel = loadModelFile(activity);
switch (device) {
case NNAPI:
tfliteOptions.setUseNNAPI(true);
break;
case GPU:
gpuDelegate = new GpuDelegate();
tfliteOptions.addDelegate(gpuDelegate);
break;
case CPU:
break;
}
tfliteOptions.setNumThreads(numThreads);
tflite = new Interpreter(tfliteModel, tfliteOptions);
这是我用来推断的代码(其中输入是一个四维数组,而输出是一个二维数组,对应于模型的输入和输出尺寸):
tflite.run(audioData, output);
,我发现了一些有关libEGL的错误日志,这与问题有关吗? 我的设备是RK3288。
I / tflite:为GPU创建了TensorFlow Lite委托。 2017-01-02 15:34:11.327 2603-2603 / com.example.dm.testing I / tflite:初始化的TensorFlow Lite运行时。 2017年1月2日15:34:11.380 2603-2603 / com.example.dm.testing I / mali_so:[文件]:hardware / arm / maliT760 / driver / product / base / src / mali_base_kbase.c; [行]:876; [Func]:base_context_deal_with_version_affairs_rk_ext; 此mali_so的arm_release_ver为'r18p0-01rel0',rk_so_ver为'3 @ 0'。 2017年1月2日15:34:11.380 2603-2603 / com.example.dm.testing D / mali_so:[文件]:hardware / arm / maliT760 / driver / product / base / src / mali_base_kbase.c; [行]:881; [Func]:base_context_deal_with_version_affairs_rk_ext; 目前的过程不是科幻小说,以纾困。 2017-01-02 15:34:11.386 2603-2603 / com.example.dm.testing E / libEGL:在没有当前上下文的情况下调用OpenGL ES API(每个线程记录一次) 2017-01-02 15:34:11.389 2603-2603 / com.example.dm.testing E / libEGL:在没有当前上下文的情况下调用OpenGL ES API(每个线程记录一次) 2017-01-02 15:34:12.487 2603-2628 / com.example.dm.testing I / OpenGLRenderer:初始化的EGL,版本1.4 2017-01-02 15:34:12.487 2603-2628 / com.example.dm.testing D / OpenGLRenderer:交换行为1 2017-01-02 15:34:12.502 2603-2628 / com.example.dm.testing D / mali_winsys:EGLint new_window_surface(egl_winsys_display *,void *,EGLSurface,EGLConfig,egl_winsys_surface **,egl_color_buffer_format *,EGLBoolean)返回0x3000 2017-01-02 15:34:12.527 2603-2628 / com.example.dm.testing D / mali_winsys:EGLint new_window_surface(egl_winsys_display *,void *,EGLSurface,EGLConfig,egl_winsys_surface **,egl_color_buffer_format *,EGLBoolean)返回0x3000 < / p>