0
点赞
收藏
分享

微信扫一扫

Openvino IR模型推理段错误(Segment error)

小暴龙要抱抱 2022-05-01 阅读 118

段错误(Segment error)一般解释为内存溢出导致的结果
参考 github 上开源的Openvino cpp 解释推理仓库代码,
在后期 Yolov5 模型训练完之后出现(Segment error)


因为原仓库代码使用的是 YolvoV5 3官方模型推理的结果,结果的输出层和现在最新的 Yolov5输出层有点不用,3layer->4layer,所以在结果推理的时候因为出现随机的map 数值,在出现负数的时候会导致代码中的循环片段无效。
在这里插入图片描述
在 detect.cp p代码片段为在这里插入代码片

    for (auto &output : _outputinfo) {

        auto output_name = output.first;
        Blob::Ptr blob = infer_request->GetBlob(output_name);
        parse_yolov5(blob,s[i],_cof_threshold,origin_rect,origin_rect_cof);
        ++i;
    }

扩展为:

    static int _i = 0;
    for (auto &output : _outputinfo) {
        std::cout << ++_i << std::endl;
        if (_i == 4) {
            continue;
        }
        auto output_name = output.first;
        Blob::Ptr blob = infer_request->GetBlob(output_name);
        parse_yolov5(blob,s[i],_cof_threshold,origin_rect,origin_rect_cof);
        ++i;
    }

上述代码中 i 和 _i 是不同的两个定义
i 是上面代码中 s 数组的x*x的数组
而 _i 就是表示跳过第四次产生的随机数组导致的内存溢出。
在这里插入图片描述

举报

相关推荐

0 条评论