2.3K Star 8K Fork 4.2K

GVPMindSpore / mindspore

 / 详情

ModelZoo里的ShuffleNetv1自定义数据集训练不收敛问题

DONE
Bug-Report
创建于  
2021-08-02 10:47
name about labels
Bug Report Use this template for reporting a bug kind/bug

Environment

  • Hardware Environment(Ascend/GPU/CPU):

/device ascend

  • Software Environment:
    -- MindSpore version (source or binary): v1.2.0
    -- Python version (e.g., Python 3.7.5): v3.7.5
    -- OS platform and distribution (e.g., Linux Ubuntu 16.04): ModelArts
    -- GCC/Compiler version (if compiled from source):

Related testcase

Steps to reproduce the issue

  1. 下载miniImageNet数据集(10分类)
  2. 使用ModelZoo官方ShuffleNetv1网络训练脚本:https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/cv/shufflenetv1
  3. 修改default_config.yaml文件中的num_classesdata_urltrain_url等属性
  4. 执行train.py脚本

Describe the current behavior

训练现象:

  • 训练集:mini_imagenet(10分类)
  • 100个epoch训练时间:14min
  • 最终loss:82.89307(不变)
  • top1_acc:0.094460

经分析,原因是因为在train.py脚本的61行未显式指定n_class=config.num_classes参数,导致模型的分类数永远等于默认值1000;除此之外,eval.pyexport.py也有同样的问题。

Describe the expected behavior

修改脚本代码之后,Loss即能完成收敛。

Related log / screenshot

Special notes for this issue

评论 (9)

leonwanghui 创建了Bug-Report
leonwanghui 关联仓库设置为MindSpore/mindspore
展开全部操作日志

Please add labels (comp or sig), also you can visit "https://gitee.com/mindspore/community/blob/master/sigs/dx/docs/labels.md" to find more.
为了让问题更快得到响应,请您为该issue打上**组件(comp)或兴趣组(sig)**标签,打上标签的问题可以直接推送给责任人进行处理。更多的标签可以查看 https://gitee.com/mindspore/community/blob/master/sigs/dx/docs/labels.md"
以组件问题为例,如果你发现问题是data组件造成的,你可以这样评论:
//comp/data
当然你也可以向data SIG组求助,可以这样写:
//comp/data
//sig/data
如果是一个简单的问题,你可以留给刚进入社区的小伙伴来回答,这时候你可以这样写:
//good-first-issue
恭喜你,你已经学会了使用命令来打标签,接下来就在下面的评论里打上标签吧!

mindspore-dx-bot 负责人设置为leonwanghui
mindspore-dx-bot 添加了
 
kind/bug
标签

hello, @leonwanghui , we suggest you add some labels like:
你好, @leonwanghui , 建议您为这个issue打上标签:
//comp/modelzoo
//sig/modelzoo

leonwanghui 添加协作者leonwanghui
leonwanghui 负责人leonwanghui 修改为fanaoxiang
leonwanghui 取消协作者leonwanghui
leonwanghui 负责人fanaoxiang 修改为未设置
leonwanghui 添加协作者fanaoxiang
i-robot 负责人设置为chenhaozhe
i-robot 负责人chenhaozhe 修改为ms_yan
ms_yan 里程碑设置为B-NET
ms_yan 关联项目设置为MindSpore Bug Tracking System

简单分析为,train.py中,网络构造未增加n_class入参, 使得ShuffleNetV1类初始化时,n_class=1000不会随外部config文件的配置动态调整。

建议对上述问题进行修改,并对modelzoo网络中的num_class等问题进行一下初步排查也改下如关于num_class硬编码的脚本(考虑:之前没排查过)

- net = ShuffleNetV1(model_size=config.model_size)

+ net = ShuffleNetV1(model_size=config.model_size, n_class=config.num_classes)
ms_yan 添加协作者ms_yan
ms_yan 负责人ms_yan 修改为chenhaozhe
ms_yan 添加了usability/modelzoo(已删除)标签
ms_yan 添加了users/individual(已删除)标签
ms_yan 优先级设置为次要

根因分析

定义shufflenetv1对象的时候,没有传递n_class参数。

解决办法

在train.py,eval.py,export.py中的网络定义操作中增加n_class的参数传递。

同步排查了主要的分类网络如下,不存在类似问题。

  • alexnet
  • densenet
  • efficientnet
  • inceptionv3/4
  • lenet
  • mobilenetv1/2/3
  • resnet
  • resnext
  • shufflenetv2
  • squeezenet
  • xception
chenhaozhe 任务状态TODO 修改为VALIDATION
chenhaozhe 添加协作者chenhaozhe
chenhaozhe 负责人chenhaozhe 修改为leonwanghui
chenhaozhe 里程碑B-NET 修改为B-SolutionTest

@chenhaozhe 建议将目标检测的网络也筛选下,目前已经发现YOLOv3_resnet18存在同样问题:https://gitee.com/mindspore/mindspore/blob/master/model_zoo/official/cv/yolov3_resnet18/src/yolov3.py#L589

haozhe 目标检测类的网络 帮再看看,也顺带排查改一下吧 @chenhaozhe

ms_yan 负责人leonwanghui 修改为chenhaozhe
ms_yan 取消协作者chenhaozhe
ms_yan 添加协作者leonwanghui
ms_yan 里程碑B-SolutionTest 修改为B-NET
ms_yan 任务状态VALIDATION 修改为WIP

yolov3_resnet18主要问题为现有结构不方便用户进行二次开发,与此问题不同类,由单独问题跟踪

#I4437P:[ModelZoo] YOLOv3_resnet18模型修改backbone网络num_classes参数后训练失败

chenhaozhe 任务状态WIP 修改为VALIDATION
chenhaozhe 添加协作者chenhaozhe
chenhaozhe 负责人chenhaozhe 修改为leonwanghui
chenhaozhe 取消协作者leonwanghui
ms_yan 移除了users/individual(已删除)标签
ms_yan 添加了
 
user/enterprise
标签
oacjiewen 里程碑B-NET 修改为B-SolutionTest
leonwanghui 任务状态VALIDATION 修改为DONE
leonwanghui 移除了usability/modelzoo(已删除)标签

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(5)
8777557 test bot 1617846881 5644189 c 34 1586403335 5554527 leonwanghui 1587095303
Python
1
https://gitee.com/mindspore/mindspore.git
git@gitee.com:mindspore/mindspore.git
mindspore
mindspore
mindspore

搜索帮助