【MindSpore产品】【Callback功能】设置了step_end但是没有被调用

问题描述:

【操作步骤&问题现象】

1、定义class LossCallBack(LossMonitor),其中定义了step_end函数,输出epoch、cur_step_num、loss等信息。并将其传入model.train();

2、使用如下命令运行:mpirun --allow-run-as-root -n 2 python train.py --config_path config_hlg/hlg_mobile_imagenet2012_configtandalone.yml --device_num 2

3、只在每个epoch结束时输出,每个step结束时没有调用输出的语句。我想观测每个step的loss值,请大佬帮忙看看是哪里出了问题?

【截图信息】

LossCallBack定义:

 

losscallback传入model.train():

 

终端输出信息如下:

 

解答:

你好,有几点建议可以试一下:

  • callback使用参考,可以参考这儿:

https://mindspore.cn/docs/programming_guide/zh-CN/r1.5/custom_debugging_info.html?highlight=step_end#id3
样例代码:docs/sample_code/debugging_info/custom_callback.py · MindSpore/docs - Gitee.com

  • 训练的时候,model.train接口,看着你设置的sink_size=step_size, 这里面的step_size是一个epoch中的step数量么;如果这样的话意味着每次会下沉step_size个 batch数据然后参会返回到host侧打印callback中的信息,因此没法每个step打印信息
  • 建议基本调试的时候,sink_size可以给小一点,好比1或者2,这样应该能通过step_end打印信息
  • 如果仍没有信息,可以试试定义epoch_begin 和 epoch_end, 看看这是否会打印信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值