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


#42

同样的问题,更新版本也没用,好像是p.grad**2结果出现了nan,没弄懂为什么啊


#43

仍然不work。
我试着打印了clipping前后的loss,还有train_loss,train_loss增长很快:


另外,我使用gru-scratch以及lstm-scratch遇到了同样的问题。
我尝试了windows较新的三个版本:mxnet-cu80-1.0.1b20180102, mxnet-cu80-1.0.0,mxnet-cu80-1.0.0b20171213均出现了这样的报错信息。


#44

很奇怪,之前跑过一次没问题,之后就有问题了,中间好像更新了一次


#45

如果改小学习率呢?


#46

我试过改小学习率,改到0.01是可以运行的:


另外,改变隐藏单元也能够运行。不过,我觉得应该不是计算能力不足或者显存不够的问题吧。gpu占用和显存占用都不高。


#47

这个ppl太高了。。
如果你把训练数据集改小呢:

corpus_chars = corpus_chars[0:20000]

把20000改小


#48

把数据量改小,仍需改小学习率才能运行。
我在linux下(python 3.5)跑过同样代码可以正常运行。但我在windows下,把数据集改小或者学习率改小,它的计算仍然与linux下有很大差距呀。这是为什么呢?


#49

如果linux和python3.6上也可以跑,那可能是在windows上的问题?是参数的grad一开始就很大么?

@zhreshold 等你有空时能在windows下复现一下这个问题吗?


#50

我打印了grad,初始值并不大,一直都不大。但是梯度裁剪中的norm很快就变成了nan。
不知道是不是这里的影响?


#51

问一个简单的问题,:joy:
使用win10,按照教程配置好的环境,运行demo,jupyter notebook 打印文字解码问题,应该如何 handle ?望各位帮忙解答 :rofl::rofl::rofl:


#52

应该问题在nd 操作符 **上面,当数值为负时,计算结果为nan。
计算时使用cpu计算无误,调用gpu出错。代码如下:

p=nd.array([-7.11766724e-03,-1.11747989e-02,-3.17790220e-03,-2.94371421e-04],ctx=mx.gpu(0))
print(p)
print(p**2)

结果:

[-0.00711767 -0.0111748 -0.0031779 -0.00029437]
<NDArray 4 @gpu(0)>

[ nan nan nan nan]
<NDArray 4 @gpu(0)>

经验证在cpu上没有问题

a=nd.array([-7.11766724e-03,-1.11747989e-02,-3.17790220e-03,-2.94371421e-04])
print(a)
print(a**2)

cpu结果:

[-0.00711767 -0.0111748  -0.0031779  -0.00029437]
<NDArray 4 @cpu(0)>

[  5.06611868e-05   1.24876125e-04   1.00990619e-05   8.66545307e-08]
<NDArray 4 @cpu(0)>

#53

python2的话,字符问题比较麻烦,我也没调好。
如果为python3,第一段代码可这样修改:
# -- coding:utf8 --
import zipfile
with zipfile.ZipFile(‘jaychou_lyrics.txt.zip’, ‘r’) as zin:
zin.extractall(’./data/’)

with open(’./data/jaychou_lyrics.txt’,encoding=“utf8”) as f:
corpus_chars = f.read()
print(corpus_chars[0:49])

参考方案


#54

感谢查错。

你的产生错误的系统环境和mxnet版本号是什么?


#55

系统环境:win10
python版本:3.6.0
已知存在问题的MXNet版本:
mxnet-cu80-1.0.1b20180102
mxnet-cu80-1.0.0
mxnet-cu80-1.0.0b20171213


#56

建议不要用notebook执行代码,会占一部分显存。找错误可以用,真正运行直接python。


#57

这里我同样也尝试了 @Feywell 配置环境,确实 同样出现 GPU 运算出错的问题,导致 math range error
在python27上运行GPU版本的mxnet 是完全可以跑的(会出现乱码问题,未解决) ,是不是 python27和python3在mxnet GPU版本在计算时候出现不同?@astonzhang


#58

更新到mxnet-cu80 1.0.1b20180125 之后还有问题么


#59

所以你用的也是windows?


#60

0125不是只有linux版本吗?


#61

忘了你用的是windows了 :joy:

你能把错误信息发在issue吗,谢谢: