springtty
springtty
> 训练语料里加入含空格的样本一起训练 代码对 char =char[1:]+'卍' 进行了处理,忽略了首位空格,后面增加了占位符。如果语料新增空格,是不是就不需要做上述处理了? 代码注释 `#caffe_ocr中把0作为blank,但是tf 的CTC the last class is reserved to the blank label.` 说是tf需要将最后一个下标作为占位符,看来还是需要进行上述处理?
> 保证char的长度等于要识别的字符数+1就行了 就是说对CTC来说,识别空格,并不需要真的加一个“空格”的标签,因为CTC没有找到特征的时候,最后一个占位符的概率会最高。我这样理解对吗
1、对,这个也是我在思考的解决方案。实际我们识别过程的语料,经常会出现中英文混合的情况,需要增加这种情况,然后还需要增加带空格的语料。字体方面,还需要增加多样性。 2、另外我发现因为训练样本数量级太大了,训练实在费时间,我用一块GTX1070显卡,完成一个epoch需要4个小时,不过基本在2~3个迭代之后,ACC提升就非常非常微小,那是否可以只考虑三轮迭代就行了。之前有位兄弟好像用两张显卡,跑了44个epoch,太有毅力了。
训练和验证数据大约有360万张,每张图片32*280像素,全部load进来内存估计会爆掉。是不是考虑可以分批读取?或者使用tf的pipeline,但我觉得改造难度有点大。另外慢的地方,可能是一个batch内将样本随机打乱的过程比较耗时。
这个应该没有标准答案吧,就看你的领域有多大了。