xmfbit/warpctc-caffe

编译以及训练的一些问题

shengyudingli opened this issue · 9 comments

你好,我发现编译的时候找不到 __shlf_down这个函数,查询后发现这个是cuda的问题,可是我的环境是Ubuntu14.04 + cudnn V5 + cuda 7.5,理论上已经够新的了。后来在网上找到了这个解决方案,https://github.com/parallel-forall/code-samples/blob/master/posts/parallel_reduction_with_shfl/fake_shfl.h 替换掉__shlf_down, 之后就可以编译了,但是有一个问题,就是不知道这两个函数是否真的是一样的。

另外在训练验证码的例子时,发现一直不收敛,不知道你在训练的时候是不是也这样很难收敛?或者有什么技巧吗?谢谢

hi, @shengyudingli 不好意思,我这段时间一直没有空闲来搞warpctc。您编译的时候遇到的这个问题我不知道是什么原因。我的环境和您完全一样,但是没有问题。
在训练的时候,您是否使用了我的python脚本产生数据?我最近整理一下,把我的结果po出来。

@xmfbit 噢,谢谢,是用您提供的脚本生成的HDF5数据库,您可以提供训练好的caffemodel供测试吗?如果都没问题,那可能就是替换的__shlf_down不对了。我再看看其他的地方是不是有错误。

@shengyudingli 我已经更新了README。里面附上了我训练的caffemodel的下载链接。您测试一下?多谢!

@shengyudingli 对于你第一个问题,__shlf_down函数的问题,你试一下将Makefile.config里面的sm_20sm_21那两行注释掉?我这只是猜测,你看看这两个帖子。
http://stackoverflow.com/questions/29963442/shuffle-instruction-in-cuda

https://devblogs.nvidia.com/parallelforall/faster-parallel-reductions-kepler/

@xmfbit 非常感谢,都搞定了!看来是替换的__shlf_down函数不对,改NVCC的编译选项后就可以编译了。话说以后可不可以讨论下有关RNN-CTC的问题啊?

@shengyudingli 解决问题就好。当然可以讨论问题~不过我现在不再做这方面的东西了,可能提供不了你什么有用的信息。这个项目也只是一个移植工作而已,谈不上对CTC Loss等有多深的了解。我做的更多的还是object detection的东西。这个小项目就是写着玩的,能帮助到你说明我还是做了一点微小的贡献的 :)

@xmfbit +1s…… 非常感谢你这个项目!

jdlyw commented

@shengyudingli 请问怎么改NVCC的编译选项,谢谢

@shengyudingli 请问怎么改NVCC的编译选项,谢谢

set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -gencode arch=compute_60,code=sm_70 -Wno-deprecated-declarations") 我这样改可以编译通过了