Comments (21)
我的经验是有这么几个可能的出问题的地方,
1.alphabet的设置,新的数据集的话最好更新一下alphabet,因为之前的alphabet可能有漏掉的字符。
更新alphabet可以参考keys.py中注释掉的代码
2.网络输出的类别也就是nclass是不是和alphabet匹配上,看代码里似乎没有问题nclass=len(alphabet)+1
3.如果用的是pytorch自带的CTCloss的话有时候也会触发nan的情况,不过我在train_pytorch_ctc.py做了修正,在计算loss时用cpu计算了,试过几次已经没有出现nan的情况了,不知道你那边是不是用的pytorch自带的CTC。
from ocr.pytorch.
train_wrap_ctc.py,用的是自带的from torch.nn import CTCLoss,这样的话我再去修改下代码,更新下alphabet,谢谢作者大大
from ocr.pytorch.
如果你用的train_wrap_ctc.py这个训练的话就用warp-ctc
如果想用pytorch自带的CTCloss的话,就用train_pytorch_ctc.py这个文件训练
这样的话应该是不会有nan出现的,
虽然两个文件很像,但是应该还是有细微差别的
from ocr.pytorch.
from ocr.pytorch.
from ocr.pytorch.
你是贴了图吗。好像没看到你贴的内容
from ocr.pytorch.
from ocr.pytorch.
问题似乎解决了,,麻烦了。。图好像没上传上来
from ocr.pytorch.
作者大大你好,,我又来了。。我在加载你之前的训练模型当作我的预训练模型时发生了如下的错误:
这是不是意味着我的数据集里的数据不符合规范,,(我训练的数据集就是那个8.6g的Synthetic Chinese String的数据集,,数据的不规范是否也会导致我出现nan呢,,其实我下午再修改了lr和batch_size,以及更新了alphabet的情况下,,用了train_pytorch_ctc.py以后仍然会出现nan的现象,😵,所以特此想问下会不会是我的数据出现了问题,期待答复,谢谢了!)
from ocr.pytorch.
加载预训练模型出错是因为alphabet发生了变化,如果要加载的话换回原来的alphabet即可,
既然还有nan发生的话有两个建议你可以尝试一下:
1.装一下warp-ctc在另一个训练代码上进行训练,不过warp-ctc貌似不支持特别高版本的pytorch,所以要退回低版本的pytorch,你要试的话可以装个虚拟环境试一试
2.可以生成一个小点并且简单点的数据集,比如只有英文+数字的数据,先跑通实验再进行大数据集上的实验,这样也方便定位问题
from ocr.pytorch.
谢谢作者大大答复,我这就去尝试一下
from ocr.pytorch.
from ocr.pytorch.
from ocr.pytorch.
作者大大你好,之前我按照该程序中的crnn训练模型的程序train_pytorch_ctc跑完自己的数据集后,得到了一个最终的结果模型,可是当我用这个模型去替换原先的预训练模型后出现了这样的报错,请问下这样的错误出现原因是不是因为自己的数据集需要经过处理之类的,期待您的回答
from ocr.pytorch.
这个错误的原因是你再训练时用了新的alphabet但是测试时还是旧的,你把测试的也替换一下就可以了
from ocr.pytorch.
好的感谢啦
from ocr.pytorch.
1.我的数据集是这样的(有360w张图片)
2.我的config是这样的
3、运行情况是
烦请作者大大解答一下,感激不尽
请问问题解决了吗?我也是这个数据集损失为Nan。非常感谢
from ocr.pytorch.
preds.log_softmax(2).to(torch.float64)
It works smoothly on 3.6m dataset
from ocr.pytorch.
我在训练的时候损失为148多,精确度一直为0,这个咋搞呀
from ocr.pytorch.
我又来补充了。
在utils.py的110行self.alphabet.append(ocr('_'))
,如果你的标签中含有 _ 字符就需要注意了,标签开头 _ 导致无法正常获取标签值,所以把 _ 改为其他特殊字符(不会出现在你的标签中的字符)
from ocr.pytorch.
请问您是如何准备新的alphabet.pkl 呢?
在keys.py 里, 有这代码, 但是我该如何准备新的 text.txt (在 infofiles 那)
import pickle as pkl
alphabet_set = set()
infofiles = ['text.txt']
for infofile in infofiles:
f = open(infofile, encoding='utf8')
content = f.readlines()
f.close()
for line in content:
if len(line.strip())>0:
if len(line.strip().split('\t'))!=2:
print(line)
else:
fname,label = line.strip().split('\t')
for ch in label:
alphabet_set.add(ch)
alphabet_list = sorted(list(alphabet_set))
pkl.dump(alphabet_list,open('khmer2.pkl','wb'))
from ocr.pytorch.
Related Issues (20)
- inference for batch?
- 提供的CRNN模型不可用
- CRNN数据集
- CRNN出现str不可用,不知道该怎么修改,求赐教 HOT 7
- crnn训练的时候出现损失在140多,精度为0 HOT 1
- 关于重新训练自己的数据集,预测为空的问题 HOT 1
- I made a pytorch-lightning implementation of your CTPN HOT 2
- crnn.py中看到有好几个不同的crnn模型 HOT 2
- 能否说说怎么返回识别出的文字的在原图中的坐标位置?
- CRNN可以用在Khmer语言吗? HOT 1
- CRNN这个是怎么回事?Aborted (core dumped)
- 请问用合成数据集训练新的模型时,遇到无法读取infofile中的fname和label的问题怎么解决呢?
- Is there any option for language?
- need help for training with custom images
- 你好,有没有日文的crnn checkpoints ?微信nlanguage?
- CRNN数据集制作方法 HOT 2
- 请问crnn识别的准确率怎么看啊
- 在运行demo的时候遇到了一个问题,输出的都是大写英文字母
- export to onnx model
- Is pretrained CRNN bias towards Chinese character?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ocr.pytorch.