Caffe框架GPU与MLU计算结果不一致请问如何调试?
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计算结果不一致请问如何调试?相关推荐
- GPU+windows 10+vs2013+cuda7.5环境下配置caffe框架
最近学习caffe框架,翻阅了几篇博客来学习环境搭建及简单的应用,期间遇到一些坑,便写下来,便以后查看,也是希望大家共同学习.话不多说,开始整. 1.首先,我们需要安装VS2013(如果跟cuda7. ...
- 人工智能深度学习Caffe框架介绍,优秀的深度学习架构
在深度学习领域,Caffe框架是人们无法绕过的一座山.这不仅是因为它无论在结构.性能上,还是在代码质量上,都称得上一款十分出色的开源框架.更重要的是,它将深度学习的每一个细节都原原本本地展现出来,大大 ...
- Caffe2-windows下caffe的gpu加速
摘要:本篇日志承载上篇内容,在上篇基础上进行优化和添加.主要说明在正确cpu的caffe框架下如何添加gpu加速的过程. 正文: 上篇说明了如何安装cpu版本的caffe框架,其中我提到过,只有cpu ...
- 奔跑吧Caffe(在MNIST手写体数字集上用Caffe框架训练LeNet模型)
数据集背景: MNIST 是一个大型的手写体数字数据库,广泛应用于机器学习领域的训练和测试,由纽约大学Yann LeCun教授整理. MNIST包括60000个训练集和10000测试集,图片固定尺寸为 ...
- win10在Anaconda3下面安装caffe框架(CPU)Python2.7从入门到放弃
最新更新 https://blog.csdn.net/baidu_40691432/article/details/121426736 电脑系统重装,在2021年的11月再次在win10系统上安装ca ...
- Caffe使用step by step:caffe框架下的基本操作和分析
Caffe使用step by step:caffe框架下的基本操作和分析 时间:2015-10-16 11:40:09 阅读:808 评论:0 收藏:0 [点我 ...
- caffe框架下目标检测——faster-rcnn实战篇操作
原有模型 1.下载fasrer-rcnn源代码并安装 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 1) ...
- gpu填充速率 计算_【经典回顾】Nvidia GPU 上的 CNN 计算速度变迁
笔者从 2012 年初开始接触 GPU 编程,2014 年上半年开始接触 Caffe,可以毫不谦虚地说是"一天天看着 Nvidia GPU 和 Caffe 长大的". Nvidia ...
- windows下使用Caffe框架和matlab实现SRCNN官方代码的步骤
步骤 step1 搭建caffe环境 在windows系统上搭建caffe环境,并配置matlab接口(需要下载 caffe-master.zip 以及 VS2013 ) 我的环境为:windows1 ...
最新文章
- 各大厂这个档次分配,大佬们有什么看法?
- 国内有没有能媲美Jira的测试管理工具?我们找国内产品来测评一下
- 四种主流的 API 架构风格对比
- hdu1058(dp||优先队列)
- linux使用共享内存进行进程通信
- linux文件管理服务,linux系统配置及服务管理_文件管理
- python画柱状图-python plotly画柱状图代码实例
- 搜狗推出庭审语音识别系统 人工智能下的全新应用
- 毕设题目:Matlab图像边缘检测
- Qt_ERROR qt闪退 竟然是因为pro文件中的冒出来的\n
- ArcMap教程:合并ShapeFile中多个要素
- excel转json脚本
- dell 戴尔电脑官网保修期查询或驱动下载安装
- java获取时间戳单位秒,如何测试给定的时间戳是以秒或毫秒为单位?
- RTCP丢包重传策略之NACK
- 前端开发工程师需要具备哪些专业技能?
- ie不能加载flash html,ie浏览器flash无法加载怎么修复_win7系统ie浏览器flash加载不了如何解决-系统城...
- android m镜像,索尼为多部机型放出Android M AOSP镜像包
- 【19周-星耀】FASTER!FASTER!FASTER!
- 王者里的高清绝美海报(别再用黑乎乎的背景了)
热门文章
- Chrome不支持showModalDialog的解决方案
- Redis 笔记(02)— keys 键相关命令(查询数据库key数量、判断key是否存在、指定key过期时间、查看key类型、查看key剩余秒数、选择数据库、删除key、删除数据库)
- Aho-Corasick 多模式匹配算法(AC自动机) 的算法详解及具体实现
- 第五周周记(国庆第四天)
- Python多进程 AttributeError: Can't get attribute 'worker' on module '__main__' from
- Bert系列(二)——源码解读之模型主体
- BiLSTM-CRF学习笔记(原理和理解) 维特比
- LeetCode简单题之唯一元素的和
- ADAS感知算法观察
- 车辆摄像头夜晚场景图像ISP增强算法