建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

JeffDing

发帖: 38粉丝: 24

发消息 + 关注

更新于2020年11月12日 17:36:53 136 2
直达本楼层的链接
楼主
显示全部楼层
[ModelArts昇腾] Resnet18毒蘑菇预测结果为同一标签的解决方法

近期做了一个实例----使用ModelArts平台的训练作业功能上传使用Resnet50进行毒蘑菇检测的训练检测代码。

我使用的测试图片为如下两张图片:

image.png

image.png

在最初的预测代码运行后会出现一个BUG,那就是不管图片是什么,他的预测结果永远是一个标签。当初以为是我提交的图片有问题,后来我使用训练集进行训练也是如此。如下图所示:

image.png

后来在学习总结帖中写了一个番外篇把这个问题列为了待解决的问题,没想到得到了Mindspore老师的注意,他们检查后找到了问题所在。

ResNet50_predict.py中的

def _normalize(img, mean, std):
    assert img.dtype != np.uint8
    mean = np.float64(mean.reshape(1, -1))
    stdinv = 1 / np.float64(std.reshape(1, -1))
    cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    cv2.subtract(img, mean)
    cv2.multiply(img, stdinv)
    return img

在这段代码中定义的_normalize方法中,最后三个操作(cvtColorsubtract以及multiply)没有传入img参数导致normalize操作失效,使得img本身的数值没有按照规定格式传入net进行推理,修改完之后的代码如下:

def _normalize(img, mean, std):
    assert img.dtype != np.uint8
    mean = np.float64(mean.reshape(1, -1))
    stdinv = 1 / np.float64(std.reshape(1, -1))
    cv2.cvtColor(img, cv2.COLOR_BGR2RGB, img)
    cv2.subtract(img, mean, img)
    cv2.multiply(img, stdinv, img)
    return img

这样修改后再重新上传到OBS中进行训练就得到了正常的检测结果了

image.png

详细的课程笔记可以参考我博客中我随记的一篇文章:https://bbs.huaweicloud.com/blogs/207724

举报
分享

分享文章到朋友圈

分享文章到微博

初学者7000

发帖: 163粉丝: 3

发消息 + 关注

发表于2020年11月12日 17:48:08
直达本楼层的链接
沙发
显示全部楼层

点赞

点赞 评论 引用 举报

黄生

发帖: 119粉丝: 4

发消息 + 关注

发表于2020年11月13日 08:53:53
直达本楼层的链接
板凳
显示全部楼层

必须赞

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册