lstm_ctc_ocr
lstm_ctc_ocr copied to clipboard
关于master版本的代码无法收敛的问题
- 问题描述 之前有一些同学提到master版本网络不好收敛的问题,包括https://github.com/ilovin/lstm_ctc_ocr/issues/1, https://github.com/ilovin/lstm_ctc_ocr/issues/28, https://github.com/ilovin/lstm_ctc_ocr/issues/31 等,
- 原因 有些人是因为没跑够,有些人因为数据问题(数据量不足,用自己的数据,生成数据错误,图片没出来等等问题),如果以上没问题,可能还是会出现不收敛的问题,我想这可能和初始化,数据,lr,优化器有关。 anyway,master版本网络确实存在不好收敛的问题,需要细致的调参(有的时候我会看decode出的结果来调lr与decay step。但master跑的时间较长,所以大家可能跑一次不出结果就放一边了),因为它没有加入cnn提取特征,直接上lstm+ctc硬解。
- 建议
- 所以我repo中默认的版本放的是beta版本,直接clone就是beta版本的代码(加了cnn),这个20分钟就能出结果,而且准确率更高,最关键的是我还没见任何人出现过无法收敛的情况。但大家还是用master的代码可能是因为不用装warpCTC以及叫master的原因? ps: 之所以还放着master版本的代码,只是为了自己使用方便,留个备份,看来我还是给删了好了。
- 对于master版本,大家也可以尝试改改网络(初始化方式什么的)
- 如果实在懒得装warpCTC,那么可以改beta的代码,改成standard的ctc loss,二者的区别我在readme里的blog提过了
谢谢,我去试试beta。装warpCTC确实比较麻烦
装warpctc碰到这个问题:warp-ctc/tensorflow_binding/warpctc_tensorflow/kernels.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZTIN10tensorflow8OpKernelE
把beta的代码改成这样: self.labels = tf.sparse_placeholder(tf.int32,[None],name='labels')
ctc_loss = tf.nn.ctc_loss(labels=labels,inputs=logits_batch, sequence_length=time_step_batch) 好像也不对
beta分支没有正常的ctc吗。。。
装的时候就报错吗?官方的test是过不了的,但是可以用 当然不是那么简单改,warp是4输入,standard 3输入,还有其他区别,blog里有说 beta是没有,因为速度慢,没有什么写的必要,所以只在master里用了一下,后来再没用过了
上面那个是在centos里的错。。搜了一下,warpctc的issues里面有这样的问题,但是好像没人解决。 这里还有个mac上的错: bogon:tensorflow_binding brook$ python3 Python 3.6.3 (default, Nov 15 2017, 09:52:28) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.37)] on darwin Type "help", "copyright", "credits" or "license" for more information.
import warpctc_tensorflow Traceback (most recent call last): File "
", line 1, in File "/Users/brook/projects/warp-ctc/tensorflow_binding/warpctc_tensorflow/init.py", line 7, in _warpctc = tf.load_op_library(lib_file) File "/usr/local/lib/python3.6/site-packages/tensorflow/python/framework/load_library.py", line 64, in load_op_library None, None, error_msg, error_code) tensorflow.python.framework.errors_impl.NotFoundError: dlopen(/Users/brook/projects/warp-ctc/tensorflow_binding/warpctc_tensorflow/kernels.cpython-36m-darwin.so, 6): Library not loaded: @rpath/libwarpctc.dylib Referenced from: /Users/brook/projects/warp-ctc/tensorflow_binding/warpctc_tensorflow/kernels.cpython-36m-darwin.so Reason: image not found
我一会儿可以试试Ubuntu。 你说的博客是这个吗?http://ilovin.me/2017-04-23/tensorflow-lstm-ctc-input-output/