有BN层的模型,在测试时应该如何设置

问题描述

目前使用mindcv中的InceptionV3模型在MINIST数据集上训练(直接将MINIST数据集resize为299*299),结果发现如果在model.set_train(True)的情况下进行评估可以轻松达到98%+的准确率,但是如果是model.set_train(False)的情况下评估,准确率只有10%左右(约等于瞎猜)。

我猜测应该是BN层的问题,但是我不太清楚这个应该怎么处理?如果直接在model.set_train(True)模式下进行评估的话,这个结果可能不太可靠,可能会与batch_size有关,但是model.set_train(False)下的结果又是完全不可接受的。

启智平台,启算调试环境 镜像:mindspore2.0.0rc1_cann_6.3.rc1.alpha001_notebook

额外安装了 mindcv 0.3版本

解答

inceptionv3在mindcv是根据imagenet数据集进行调参的,更换数据集也需要相应调整参数,MNIST有官方的教程可以参考:https://www.mindspore.cn/tutorials/zh-CN/r2.2/beginner/quick_start.html

set_train 在eval期间必须保持False计算结果才是正确的

更多调参攻略可以参考官网指南:https://www.mindspore.cn/docs/zh-CN/r2.2/migration_guide/debug_and_tune.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值