Holmeyoung / crnn-pytorch

Pytorch implementation of CRNN (CNN + RNN + CTCLoss) for all language OCR.
MIT License
378 stars 105 forks source link

换乘关于训练几次出现NAN的问题 #25

Closed ygfrancois closed 5 years ago

ygfrancois commented 5 years ago

你好,我用pytorch自带的CTC_loss训练一直出现NAN,把这个CTC_loss换成Warp-ctc,瞬间好了,浪费了两天时间,好气阿。被pytorch坑了第二次了,难受。大家不要再踩着个坑

Holmeyoung commented 5 years ago

嗨,你的 Pytorch 是最新版本的吗?Pytorch 确实是有 bug 的,但是反向传播时候的 loss 我都处理过了,官方也已经修复这个问题了。 https://github.com/pytorch/pytorch/pull/21244 我刚看了一眼,v1.2 是 14 天前 release 的,其中那个有关于这个问题的修复 image

你要是更新之后没问题了和我说一下哈,我广而告之一下~~谢谢~~

ygfrancois commented 5 years ago

嗨,你的 Pytorch 是最新版本的吗?Pytorch 确实是有 bug 的,但是反向传播时候的 loss 我都处理过了,官方也已经修复这个问题了。 pytorch/pytorch#21244 我刚看了一眼,v1.2 是 14 天前 release 的,其中那个有关于这个问题的修复 image

你要是更新之后没问题了和我说一下哈,我广而告之一下~~谢谢~~

你好,谢谢。我是8月19日pip install torch的,感觉可能还是有点问题。

Holmeyoung commented 5 years ago

嗨,你看一下版本呢,这么难受的吗 image

官方的安装命令 image

ygfrancois commented 5 years ago

我在官网看到的安装命令和你这个有点不一样呀,为啥你点了10.0,但是命令里还要+cu92? 我是这样的: image 环境版本如下: image

Holmeyoung commented 5 years ago

看了一下,确实是改成你那种了。应该是他们就在这两天修改了 pip 源的 index,pytorch动作蛮快的。 但是理一下思路哈

  1. 你是 8月19号 pip install torch
  2. 但是我在 8月23号 看官网安装命令是 torch==1.2.0+cu92
  3. 今天,即 8月26号 修复为 pip install torch

是不是说明你 19 号安装的 1.2.0 不是真正的 1.2.0 ???

哈哈哈,这一顿推理真是玄而又玄~~~

那就你现在这个 v1.2 版本来说,ctcloss 还是存在问题是吗?就是 cuda 下,一些 epoch 后会出现 loss = none

ygfrancois commented 5 years ago

看了一下,确实是改成你那种了。应该是他们就在这两天修改了 pip 源的 index,pytorch动作蛮快的。 但是理一下思路哈

  1. 你是 8月19号 pip install torch
  2. 但是我在 8月23号 看官网安装命令是 torch==1.2.0+cu92
  3. 今天,即 8月26号 修复为 pip install torch

是不是说明你 19 号安装的 1.2.0 不是真正的 1.2.0 ???

哈哈哈,这一顿推理真是玄而又玄~~~

那就你现在这个 v1.2 版本来说,ctcloss 还是存在问题是吗?就是 cuda 下,一些 epoch 后会出现 loss = none

我那天安装的时候,他就是这样显示的,不知道为啥8月23号的时候会这样显示,现在如果是cuda9.2的,我看了下,是你po出的这种命令: image 不知道是啥问题。 我这个版本,在我的数字序列识别任务下,很快就NAN了(基本就是几个batch,甚至一个batch就nan了),我把batch size设置成1,发现loss不下降反增的,但是nan出现得也很突然。 反正我最后就把import CTCloss换了那个warp之后瞬间就没问题了。

ygfrancois commented 5 years ago

看了一下,确实是改成你那种了。应该是他们就在这两天修改了 pip 源的 index,pytorch动作蛮快的。 但是理一下思路哈

  1. 你是 8月19号 pip install torch
  2. 但是我在 8月23号 看官网安装命令是 torch==1.2.0+cu92
  3. 今天,即 8月26号 修复为 pip install torch

是不是说明你 19 号安装的 1.2.0 不是真正的 1.2.0 ???

哈哈哈,这一顿推理真是玄而又玄~~~

那就你现在这个 v1.2 版本来说,ctcloss 还是存在问题是吗?就是 cuda 下,一些 epoch 后会出现 loss = none

有空的话我再重新装一遍pytorch试试吧,不过如果后面没有新的release,应该不会是假的1.2.0吧。好蛋疼阿

Holmeyoung commented 5 years ago

好多人遇见这个问题,弄的我都想删库跑路了~~~让pytorch背锅去吧~~~

ygfrancois commented 5 years ago

哈哈,老哥稳住,你能赢

Holmeyoung commented 5 years ago

老哥,试试最新版本,我觉得我弄好了~~~