Comments (17)
原因是标签(Label)的长度比序列(Sequence)长度要大了。可以在报错函数中设置参数 ignore_longer_outputs_than_inputs=True
, 之后这类数据的损失会自动返回0,报错也就消失了。你是在训练哪个模型的时候遇到的错误?CRNN还是EAST?
from bankcard-recognizer.
CRNN。 这样做的话会不会影响梯度下降呢?
from bankcard-recognizer.
影响不大
from bankcard-recognizer.
貌似找到原因了。
val_gen = DataGenerator(val_list, img_size, down_sample_factor, batch_size, max_label_length)
crnn_blstm_ctc.py中这一行的down_sample_factor, batch_size这两个参数位置颠倒了。。
from bankcard-recognizer.
好的,找的问题就好
from bankcard-recognizer.
能否问下你最后loss大概是多少?我改batchsize=64训练后测试集loss大概在0.77,但是demo输出的结果都是‘00’或者‘40’这种。不知是哪里操作不对?
from bankcard-recognizer.
我把你训练的模型加载后再训练,一开始出来的loss很高,请问有没有可能是loss的计算方式有问题?
from bankcard-recognizer.
损失函数应该不存在问题,降低batch_size试试。
from bankcard-recognizer.
验证集降到16,应该是跟你训练的时候一样啊。。不知道为什么val loss还是那么高。。。
from bankcard-recognizer.
你好,我用楼主的训练集,进行rcnn模型训练,没改训练参数,直接进行训练,val_loss一直上升,训练到20个epochs左右的时候val_loss还是30左右val_acc接近于0,请问可能哪里出了问题?
楼主训练的rcnn用的参数是最新更新的版本吗?batch_size, aug_num等用的是什么值呢?
希望楼主不吝赐教
from bankcard-recognizer.
参数还是源码中的没有更改。你可能训练的数据集不对,请确保是卡号的数据集而不是银行卡的。
from bankcard-recognizer.
我使用的平台的Windows,,使用的数据集是楼主银行卡号的数据集,下面是第15个epochs训练完的记录。我是加载楼主的模型继续训练的,aug_number=5,我想测试下楼主模型的在验证集的准确率,结果也是0。在compile 的时候添加了metrics=['accuracy'].
想问下楼主的val_loss训练的时候能达到多少?
281/281 [==================] - 128 455ms/step -loss:0.8534 -acc:0.5514 - val_loss:43.6632 - val_acc:0.0000e+00
from bankcard-recognizer.
多谢反馈,crnn部分代码已做更新,参照readme的crnn训练方法训练即可
from bankcard-recognizer.
多谢反馈,crnn部分代码已做更新,参照readme的crnn训练方法训练即可
1 新版本代码跟预训练模型不匹配,模型没有更新,要运行demo需要把cfg中的numclass 改为10才行
2 训练代码跑了一晚上,增强系数30,到38个epochs,loss 18左右,val_loss貌似还是不降,30几,然后val_acc一直为0
from bankcard-recognizer.
多谢反馈,crnn部分代码已做更新,参照readme的crnn训练方法训练即可
1 新版本代码跟预训练模型不匹配,模型没有更新,要运行demo需要把cfg中的numclass 改为10才行
2 训练代码跑了一晚上,增强系数30,到38个epochs,loss 18左右,val_loss貌似还是不降,30几,然后val_acc一直为0
反馈问题已提交commit,更新代码。
- 新版本模型比原来的新增了空格识别,也就是NUM_CLASSES+1了.
- 新版本模型不要在原来模型基础上训练,可尝试从头训练或在README crnn部分下载预训练网络
- 新版本模型可以尝试增大aug_nbr、降低batch_size、增大验证集(validation_ratio)来提升训练性能
from bankcard-recognizer.
新版本的val_loss训练过程中正常了,与loss趋势基本一致,但是我有几个疑问还请楼主帮我解惑一下
1 老版本的num_class 没有+1,类别为11,那模型是如何识别空格呢与结束符的呢?
2 新版的空格'_'用10填充,未满26位的字符也用10 append,由于我训练还没结束,猜测到时预测出来的结果会是形如eg 【1233_1511_2189_8745___________】吗?
3 老版本的val_loss不下降是因为没有加1导致的吗?
问题实在有点多,我好疑惑啊,o(╯□╰)o,如果大神能帮忙解答一下太棒了
from bankcard-recognizer.
- 老版本并不能识别卡号中的空格(也就是
_
),在预处理部分将它去除掉了,所以num_classes=10+1
并没有问题,而新版支持,故为12
- 不会出现末尾未满26位填充
_
的情况,数字中间有空白区域会。你可以拿预训练网络实验一下,除了最后几位因训练不足因素没有识别出,其它表现还算乐观 - 老版的模型本身并没有太大问题,而是我在数据预处理时的失误。也感谢你问题的提出。
from bankcard-recognizer.
Related Issues (9)
- 识别模型loss HOT 1
- 可以分享一下训练用的一堆图片吗? HOT 1
- CRNN模型loss不下降
- 找不到img_24.png,384,384
- 整型转换 HOT 4
- 参数 HOT 5
- loss值高,acc为0 HOT 2
- 有关于训练的loss HOT 1
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 bankcard-recognizer.