MindSpore 21天训练营-Resnet 预测毒蘑菇标签

举报
JeffDing 发表于 2020/11/10 13:59:40 2020/11/10
【摘要】 MindSpore 21天训练营-Resnet 预测毒蘑菇标签

一、作业流程

进阶作业提供:“蘑菇超人”图片、模型训练和预测结果截图、源代码 

进阶作业流程: 

1. 申请华为云账号、申请 ModelArts 华为云昇腾集群服务公测

2. 从链接下载蘑菇数据集和源代码

3. 创建 obs 桶 

4. 蘑菇数据集、“蘑菇超人“图片和源代码到 obs 桶 

5. 提交 ModelArts 训练作业进行模型训练任务 

6. 等待、查看结果 

7. 提交 ModelArts 训练作业进行模型推理任务 8. 等待、查看结果 9. 保存训练、预测结果截图

二、下载作业包

ResNet-50 进阶作业一键下载包:https://ascend-tutorials.obs.cn-north-4.myhuaweicloud.com/resnet50/demo/ResNet50%E8%BF%9B%E9%98%B6%E4%BD%9C%E4%B8%9A%E4%B8%80%E9%94%AE%E4%B8%8B%E8%BD%BD% E5%8C%85.zip

三、上传数据集

上传文件到新创建的 OBS 桶里

resnet:存放程序代码

output:模型输出文件夹

mushrooms:数据集文件夹

log:日志文件夹

data_output:训练数据输出文件夹

ckpt_file:checkpoint存放目录,验证的时候会用到

四、开始训练

训练作业配置:

启动文件选择:resnet50_train.py,训练完成结果如下:

训练完成后,我们到OBS中找到输出目录,然后找到生成的.ckpt文件将他复制到ckpt_file目录中方便预测操作

预测操作

这个是我用来进行预测的图片,我们将他放到mushroom中的test目录。然后进行预测操作的参数配置如下图

相比于训练操作,我们需要多加一个checkpoint_path参数,这里的参数填写OBS中我们CKPT文件所在的路径。全部设定完成后点击确定就开始预测操作了。

预测作业执行完毕后我们可以看见出来了预测出来的蘑菇标签结果。

番外篇:

最初的代码在执行预测的时候可能会出现预测的蘑菇标签不管你放入什么图片,他的标签永远是相同的。后续在论坛提出这个BUG后,得到了老师们的回应及时解决了这个BUG,现在把解决方法提出来:

需要修改resnet50_predict.py 中的_normalize(img,mean,std)方法

原本的代码:

def _normalize(img, mean, std):
    # This method is borrowed from:    #   https://github.com/open-mmlab/mmcv/blob/master/mmcv/image/photometric.py    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

修改后的代码:

def _normalize(img, mean, std):
    # This method is borrowed from:    #   https://github.com/open-mmlab/mmcv/blob/master/mmcv/image/photometric.py    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

这样修改完成后再去重新预测就得出不同的预测标签结果了。

我的预测图片分别为上文提到的那张图片以及新增了一张新的图片如下:


预测的结果如下:

注:如果不想自己修改代码的话,可以重新git clone一下官方代码仓的代码,修改后的代码老师们已经上传上去了,可以直接下载下来使用。

课程官方代码仓地址:https://github.com/mindspore-ai/mindspore-21-days-tutorials/

体验作业的方法

把进阶作业的模型训练部分的操作流程去掉,直接把体验作业包中的ckpt文件复制到ckpt_file文件夹中,然后按照进阶作业中预测操作也就是resnet50_predict.py 的那部分进行操作就能完成体验作业了。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

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

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。