Open bestpower opened 2 years ago
另外,这个问题在最近几个大版本更新中都出现了: 20220701 20220721 20220729 并非之前说的NDK版本问题,我都是基于较低版本的NDK重新编译的
经排查,发现是在模型加载之后,正式推理之前的这段代码报了错:
ncnn::Layer* layer = nullptr;
for (size_t i = 0; i < net->mutable_layers().size(); i++)
{
if (net->mutable_layers()[i]->name == name)
{
layer = net->mutable_layers()[i];
break;
}
}
if (!layer)
{
fprintf(stderr, "no such layer %s\n", name);
return;
}
layer->destroy_pipeline(net->opt);
layer->support_fp16_storage = false;
ncnn::Option opt2 = net->opt;
opt2.use_fp16_packed = false;
opt2.use_fp16_storage = false;
opt2.use_fp16_arithmetic = false;
layer->create_pipeline(opt2);
该段代码的作用是针对特定网络层进行特定配置,之前一直是没有问题的,请问是否是更新后相关接口发生了改变?
目前的新版本库,仍存在执行layer->create_pipeline方法时crash的问题,导致无法使用fp16精度进行推理,请问有解决办法吗?
error log | 日志或报错信息 | ログ
context | 编译/运行环境 | バックグラウンド
ncnn commit: 9af349cad8ff99ec0da5ef525a2463acc8999be4 Android Studio version: 2020.3.1 gradle version: 7.0.0 Cmake version: 3.10.2.4988404 Ndk version: 21.1.6352462 Android Os Version:8.1(27)
how to reproduce | 复现步骤 | 再現方法
1.更ncnn代码库至最新 2.编译ncnn so库,命令如下:
3.替换安卓应用工程内ncnn旧版本库为当前编译库 4.清理原AS工程后重新编译 5.运行应用并加载JNI库 6.选择图片进行推理过程中应用崩溃退出
more | 其他 | その他
另外,我还将推理模型的onnx版本通过最新ncnn编译的转换工具进行重新转换并替换原模型文件后执行以上步骤仍报相同错误 编译及转换命令如下
麻烦帮忙看看是什么原因,模型文件详见附件: ncnn_model.zip