warp_ctc是百度的加速ctc函数,
warp-ctc: https://github.com/baidu-research/warp-ctc
wjc写的这篇博客参照:https://blog.csdn.net/qq_29133371/article/details/80407985
他写比较多,而且安装的时候有点差异。
Anaconda 安装tensorflow参照官网即可。
环境:Ubuntu 16.04,tf 1.8, GPU
1:找一个位置,比如home目录,clone warp-ctc
git clone https://github.com/baidu-research/warp-ctc.git
cd warp-ctc
2:创建build目录(编译后文件所在目录)
mkdir build
cd build
3:编译
cmake ../ (../表示上级目录)
make
4:进入tensorflow_binding
cd tensorflow_binding
5:设置WARP_CTC_PATH(包含libwarpctc.so路径,编译后再build文件下可以找到),TENSORFLOW_SRC_PATH(tensorflow安装所在路径),CUDA_HOME(cuda根目录)(根据实际情况设置自己的path).在这里我用的是修改bashrc的方法。
比如我:
gedit ~/.bashrc
然后添加环境变量:
export TENSORFLOW_SRC_PATH=/home/wujiacheng/anaconda3/lib/python3.6/site-packages/tensorflow(因为我tensorflow就装在这里)
export CUDA_HOME="/usr/local/cuda"
export WARP_CTC_PATH=$HOME/warp-ctc/build$WARP_CTC_PATH
----------------------------------------------------------------------------------------------------
我之前装cuda时是export CUDA_HOME=/usr/local/cuda-9.0
把这个改成export CUDA_HOME="/usr/local/cuda" 不改导致后面生成了一个名字叫cuda的文件,后面执行setup.py install出现了
File exiting 错误,把那个文件删了,在把CUDA_HOME设置好就好了
因为之前创建了软链接,这样不会有错的,然后再
source ~/.bashrc
6,在tensorflow_binding 目录
执行setup.py
python setup.py install
7,安装成功,conda list显示已经有了warpctc-tensorflow 0.2
但是
import warpctc_tensorflow
报错:libgomp.so.1: version `GOMP_4.0' not found
解决:把ubuntu系统中
/usr/lib/x86_64-linux-gnu/ 这个目录下的libgomp.so.1和libgomp.so.1.0.0
这两个文件(或者所有带libgomp.so这个名字的文件)复制到
/home/wjc/anaconda3/lib 这个目录下,选择替换
参照https://blog.csdn.net/dcrmg/article/details/78358279
https://blog.csdn.net/jiangpeng59/article/details/70213578
有些时候环境库或者环境变量配置好了,如果还没生效的话,就重新开个终端,
用了warpctc,感觉gpu的并没有提升多少,cpu的倒是快了蛮多
用gpu,warpctc和tensorflow自带的tf.nn.ctc_loss速度上感觉没什么差别
直接硬解lstm ctc问题,都很慢,还是得在lstm前面加cnn