Caffe框架GPU与MLU计算结果不一致请问如何调试?

某一检测模型移植到Cambricon
Caffe上时,发现无法检测出结果,于是将GPU和MLU的运行结果输出并保存后进行对比,发现二者计算结果不一致,如下图所示:

第一张为GPU模式下,第二张为GPU模式,二者使用的输入和数据预处理方式均完全一样,该输出为网络第一层卷积的部分输出。

用Cambricon
Caffe提供的test_forward工具验证该模型在CPU和MLU模式下的输入,结果仍不一致,如下图所示:

第一张为MLU模式下的输出,第二张CPU模式下的输出。

请问这种情况下如何调试具体哪里出现了问题?

在GPU模式下ROIPooling层的输出结果为:

在MLU模式下运行,结果为:

最后在CPU模式下使用ROIPooling算子,计算结果为:



对比CPU和GPU的运算结果可知,仅处理了第一个ROI,修改了ROIPooling层部分代码才能得到正确结果。而MLU模式下的ROIPooling层的结果是完全错误的。

首先在GPU上使网络输出Proposal层的运算结果,如下:

使用Proposal算子在CPU模式下运行的结果为:

MLU模式下的结果为:

将Proposal层替换为Python的Proposal层,在CPU模式下的运算结果为:

与GPU计算结果是一致的,所以认为Proposal算子有问题。

MLU100上的数据格式为FP16/INT8, 运算结果不一致是合理的,具体正确性要看误差,可以用MAPE度量一下误差,一般FP16不会超过%1。另外如果是faster-rcnn网络,不要直接比较proposal层之后的结果,只能直接比较proposal层前的结果。proposal层之后的结果因为涉及到bbox,无法直接比较,可以用IOU之类的方法比较。最后MLUfaster-rcnn的输出结果layout和CPU的输出结果layout不同,因此两者的后处理方式是不一致的,具体可以参考我司提供的后处理示例。

重新对比了一下GPU与MLU的输出结果,Proposal层之前的处理结果是正确的,但是MLU的Proposal和ROIPooling层有问题。在输入特征相同的情况下,使用FasterRCNN的Proposal层和MLU的Proposal层得到的结果是不一致的;使用FasterRCNN的Proposal层得到正确的ROI后,输入到ROIPooling层只处理了第一个ROI,我修改了CPU版本的ROIPooling层才可以得到正确的结果。

MLU100上的数据格式为FP16/INT8, 运算结果不一致是合理的,具体正确性要看误差,可以用MAPE度量一下误差,一般FP16不会超过%1。另外如果是faster-rcnn网络,不要直接比较proposal层之后的结果,只能直接比较proposal层前的结果。proposal层之后的结果因为涉及到bbox,无法直接比较,可以用IOU之类的方法比较。最后MLUfaster-rcnn的输出结果layout和CPU的输出结果layout不同,因此两者的后处理方式是不一致的,具体可以参考我司提供的后处理示例。

Caffe框架GPU与MLU计算结果不一致请问如何调试?相关推荐

  1. GPU+windows 10+vs2013+cuda7.5环境下配置caffe框架

    最近学习caffe框架,翻阅了几篇博客来学习环境搭建及简单的应用,期间遇到一些坑,便写下来,便以后查看,也是希望大家共同学习.话不多说,开始整. 1.首先,我们需要安装VS2013(如果跟cuda7. ...

  2. 人工智能深度学习Caffe框架介绍,优秀的深度学习架构

    在深度学习领域,Caffe框架是人们无法绕过的一座山.这不仅是因为它无论在结构.性能上,还是在代码质量上,都称得上一款十分出色的开源框架.更重要的是,它将深度学习的每一个细节都原原本本地展现出来,大大 ...

  3. Caffe2-windows下caffe的gpu加速

    摘要:本篇日志承载上篇内容,在上篇基础上进行优化和添加.主要说明在正确cpu的caffe框架下如何添加gpu加速的过程. 正文: 上篇说明了如何安装cpu版本的caffe框架,其中我提到过,只有cpu ...

  4. 奔跑吧Caffe(在MNIST手写体数字集上用Caffe框架训练LeNet模型)

    数据集背景: MNIST 是一个大型的手写体数字数据库,广泛应用于机器学习领域的训练和测试,由纽约大学Yann LeCun教授整理. MNIST包括60000个训练集和10000测试集,图片固定尺寸为 ...

  5. win10在Anaconda3下面安装caffe框架(CPU)Python2.7从入门到放弃

    最新更新 https://blog.csdn.net/baidu_40691432/article/details/121426736 电脑系统重装,在2021年的11月再次在win10系统上安装ca ...

  6. Caffe使用step by step:caffe框架下的基本操作和分析

    Caffe使用step by step:caffe框架下的基本操作和分析 时间:2015-10-16 11:40:09      阅读:808      评论:0      收藏:0      [点我 ...

  7. caffe框架下目标检测——faster-rcnn实战篇操作

    原有模型 1.下载fasrer-rcnn源代码并安装 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 1) ...

  8. gpu填充速率 计算_【经典回顾】Nvidia GPU 上的 CNN 计算速度变迁

    笔者从 2012 年初开始接触 GPU 编程,2014 年上半年开始接触 Caffe,可以毫不谦虚地说是"一天天看着 Nvidia GPU 和 Caffe 长大的". Nvidia ...

  9. windows下使用Caffe框架和matlab实现SRCNN官方代码的步骤

    步骤 step1 搭建caffe环境 在windows系统上搭建caffe环境,并配置matlab接口(需要下载 caffe-master.zip 以及 VS2013 ) 我的环境为:windows1 ...

最新文章

  1. 各大厂这个档次分配,大佬们有什么看法?
  2. 国内有没有能媲美Jira的测试管理工具?我们找国内产品来测评一下
  3. 四种主流的 API 架构风格对比
  4. hdu1058(dp||优先队列)
  5. linux使用共享内存进行进程通信
  6. linux文件管理服务,linux系统配置及服务管理_文件管理
  7. python画柱状图-python plotly画柱状图代码实例
  8. 搜狗推出庭审语音识别系统 人工智能下的全新应用
  9. 毕设题目:Matlab图像边缘检测
  10. Qt_ERROR qt闪退 竟然是因为pro文件中的冒出来的\n
  11. ArcMap教程:合并ShapeFile中多个要素
  12. excel转json脚本
  13. dell 戴尔电脑官网保修期查询或驱动下载安装
  14. java获取时间戳单位秒,如何测试给定的时间戳是以秒或毫秒为单位?
  15. RTCP丢包重传策略之NACK
  16. 前端开发工程师需要具备哪些专业技能?
  17. ie不能加载flash html,ie浏览器flash无法加载怎么修复_win7系统ie浏览器flash加载不了如何解决-系统城...
  18. android m镜像,索尼为多部机型放出Android M AOSP镜像包
  19. 【19周-星耀】FASTER!FASTER!FASTER!
  20. 王者里的高清绝美海报(别再用黑乎乎的背景了)

热门文章

  1. Chrome不支持showModalDialog的解决方案
  2. Redis 笔记(02)— keys 键相关命令(查询数据库key数量、判断key是否存在、指定key过期时间、查看key类型、查看key剩余秒数、选择数据库、删除key、删除数据库)
  3. Aho-Corasick 多模式匹配算法(AC自动机) 的算法详解及具体实现
  4. 第五周周记(国庆第四天)
  5. Python多进程 AttributeError: Can't get attribute 'worker' on module '__main__' from
  6. Bert系列(二)——源码解读之模型主体
  7. BiLSTM-CRF学习笔记(原理和理解) 维特比
  8. LeetCode简单题之唯一元素的和
  9. ADAS感知算法观察
  10. 车辆摄像头夜晚场景图像ISP增强算法