美文网首页
MXNET踩坑记——stale梯度

MXNET踩坑记——stale梯度

作者: 有哪个昵称没人用吗 | 来源:发表于2017-12-30 22:02 被阅读239次
UserWarning: Gradient of Parameter “growcascadeforest0_cascadelayer1_randomforest0_fcmodel0_sequential0_dense0_weight” on context gpu(0) has not been updated by backward since last `step`. This could mean a bug in your model that maked it only use a subset of the Parameters (Blocks) for this iteration. If you are intentionally only using a subset, call step with ignore_stale_grad=True to suppress this warning and skip updating of Parameters with stale gradient

说明

这个是个很常见的错误,它的意思是有参数不会被更新,换句话说,可能在计算出那个用于backward的变量的过程中,没有遇到某些参数
这其实不算是个错误,某些特殊的模型,比如我做的某个实验,还就是这么训练的,但一般来说,出现这个意味着模型存在bug,可能是手误多写了一些参数或者计算时少考虑了一些参数,但是也有些非常不容易发现的问呢提,例如因为同义方法导致的“断链”

concatenate 和concat

这个最典型,只要在计算过程中用了concatenate方法,就会出现上面的错误,而用concat方法不会,
原因是concatenate不属于一个op,虽然这两个方法是同义的(参数名字有点差异)但是本质差别很大,从pycharm的代码提示里可以看到,concat方法在gen_op.py这个文件里,而concatenate这个方法在ndarray.py这个文件里,而只有在gen_op里的函数才能作为计算图的一个节点被记录下来,一旦用了concatenate方法,一定会出现以上错误

总结

总之 如果遇到这个问题,检查所有用到的ndarray的函数 看它们是不是在gen_op这个文件里,如果不在就找一个替代,如果没有,那就自己写一个,或者你也可以去改mxnet的C++源码 ,添加自己的op

相关文章

  • MXNET踩坑记——stale梯度

    说明 这个是个很常见的错误,它的意思是有参数不会被更新,换句话说,可能在计算出那个用于backward的变量的过程...

  • MXNET踩坑记(1)——Argmax

    奇葩bug 昨天遇到一个奇葩的Bug 无论用什么方法 甚至我把代码删的只剩一行,仍然会报错 这就尴尬了,昨天用了半...

  • autograd.record()

    要求MXNet记录与求梯度有关的计算。

  • MXNET踩坑记——延迟初始化

    以下错误也是不太好理解的,特别是对初学者,这是由于mxnet/gluon的特性导致的,参数在没有用来计算之前不会初...

  • MXNET采坑记

    卷积神经网络的输出单元数计算方法 `Conv2D`要求输入的x的形状为`(batch_size, in_chann...

  • mxnet:自动求梯度

    mxnet求梯度方法 step1.先调用attach_grad函数来申请存储梯度所需要的内存.x.attach_g...

  • mxnet自动求梯度

    求梯度实例 训练模式和预测模式 调用record函数后,mxnet会记录并计算梯度。此外还将运行模式从预测模式转为...

  • Android Material Design 踩坑记(2)

    Android Material Design 踩坑记(1) CoordinatorLayout Behav...

  • Deepin使用踩坑记

    1. 前言 很喜欢Deepin,奈何坑太多,不过不怕,踩过去~ 2. 踩坑记 2.1 Deepin重启后文件管理器...

  • SpringStreaming+Kafka

    摘自 :Spark踩坑记——Spark Streaming+Kafka [TOC] SpringStreaming...

网友评论

      本文标题:MXNET踩坑记——stale梯度

      本文链接:https://www.haomeiwen.com/subject/niingxtx.html