循环神经网络的从零开始实现 讨论区


#21

后面会讲beam search嘛?


#22

训练的全部长度


#23

这个通常对应训练数据集的大小对模型训练的影响


#24

未来几节课目前还没打算 :grinning:


#25

长度过长的话,只会导致训练变慢,对吧


#26

为什么我一个中文要用几个char来表示,教程只需要一个char就可以表示一个中文字符


#27

用jupyter notebook上跑rnn.scratch.ipynb这一段,但是第四段第五段的输出就和教程不一样了。


然后终端这边显示

请问是不是MathJax这一块有问题,导致的输出不一致?劳烦指教!


#28

@shui @charmpeng 你们用的是python3吗


#29

是的 python3.5


#30

如果按照教程里的安装说明呢?
http://zh.gluon.ai/chapter_prerequisite/install.html


#31

gluon里如何设置梯度剪裁?gluon.Trainer中设置compression_params={‘type’:‘2bit’, ‘threshold’:.5}这样好像没有效果


#32

在pycharm上跑是可以的。应该是jupyter和mathjax不太合的问题,我再找找看解决方法:joy:


#33

我把python换成3.6了,出现了以下问题:


#34
  1. 使用grad clipping
  2. 如1不work,把num _steps调小

#35

两种方式都尝试过了,还是无法解决。不知道还会是什么问题? :no_mouth:


#36

是和教程上的代码完全一样吗?包括utils.py?


#37

恩恩,是呀。以前用的是老版本,然后下载了新版本的rnn和utils.py报错一样。
跟我的环境有关吗?
system:win10
python:python3.6
MXNet:1.0
GPU:GTX 740m


#38

截图里好像不是最新的代码:
http://zh.gluon.ai/chapter_recurrent-neural-networks/rnn-scratch.html


#39

也换成新版的试过了,还是有这个问题:


#41

是不是grad clipping没起作用啊,不过我在CPU和GPU两个版本上的mxnet都没有办法复现这个错误,python3.6.

你可以先更新一下mxnet看看错误还在不:
pip install mxnet --pre --upgrade

如果不work,试试把梯度裁剪换成这个:

def grad_clipping(params, clipping_norm, ctx):
    """Gradient clipping."""
    if clipping_norm is not None:
        norm = nd.array([0.0], ctx)
        try:
            for p in params:
                norm += nd.sum(p.grad ** 2)
        except:
            for p in params:
                p.grad[:] *= 0
        else:
            norm = nd.sqrt(norm).asscalar()
            if norm > clipping_norm:
                for p in params:
                    p.grad[:] *= clipping_norm / norm

如果还不work,可以看看不打印ppl,只打印loss,看看loss有多大