网络反向传播,求导过程中报错
【操作步骤&问题现象】
【截图信息】
具体报错语句:
【日志信息】(可选,上传日志内容或者附件)
报错信息
在截图信息展示的代码中,报错语句调用的参数 *args包含的tensor最高维度是4维,并没有报错信息说的5维输入,这个错误该如何处理呢?
可以设置context.set_context(save_graphs=True)保存IR,从而可以看到算子的shape信息。如果你的脚本里没有显式调用MaximumGrad算子的话,那应该是Maximum或者ClipByNorm算子的反向计算逻辑中调用到的。
如果存在扩维的操作,那么Maximum接受到的输入就有可能是高维的了,从而在反向计算过程中也是高维输入。目前了解到MindSpore master分支代码已经取消了MaximumGrad输入<= 4D的限制,当前限制是<=7D即可。对应的源码(感兴趣的话可以查看该源码文件的最新修改):https://gitee.com/mindspore/mindspore/blob/master/mindspore/ccsrc/plugin/device/gpu/kernel/math/broadcast_grad_gpu_kernel.cc 你需要自行编译MindSpore master代码或者等1.8正式版本发布。