warp-transducer源码安装,warprnnt_pytorch生成

warp-transducer是可以在CPU和GPU上实现并行RNN-transducer的开源库,现在支持pytroch和tensorflow的调用,主要用来计算RNNTLoss,

本文是在ubuntu18.04的系统上进行的。

warp-transducer下载地址

源码编译warp-transducer

首先获取warp-transducer的代码:

git clone https://github.com/HawkAaron/warp-transducer
cd warp-transducer

创建一个build文件夹:

mkdir build
cd build

编译:

cmake -DCUDA_TOOLKIT_ROOT_DIR=$CUDA_HOME ..
make

如果你的cuda不是标准安装,那么需要用-DCUDA_TOOLKIT_ROOT_DIR=cuda的安装路径,使cmake能够发现CUDA

如果有以下logs:

-- cuda found TRUE
-- Building shared library with no GPU support

请运行rm CMakeCache.txt,然后重新cmake

编译失败请注意

如果在make的时候出现这个错误:

/home/gaoliqing/lhb/warp-transducer-master/src/rnnt_entrypoint.cu(1): error: this declaration has no storage class or type specifier

/home/gaoliqing/lhb/warp-transducer-master/src/rnnt_entrypoint.cu(1): error: expected a ";"

2 errors detected in the compilation of "/tmp/tmpxft_000014f2_00000000-13_rnnt_entrypoint.compute_70.cpp1.ii".
CMake Error at warprnnt_generated_rnnt_entrypoint.cu.o.cmake:266 (message):
Error generating file
/home/gaoliqing/lhb/warp-transducer-master/build/CMakeFiles/warprnnt.dir/src/./warprnnt_generated_rnnt_entrypoint.cu.o

CMakeFiles/warprnnt.dir/build.make:192: recipe for target 'CMakeFiles/warprnnt.dir/src/warprnnt_generated_rnnt_entrypoint.cu.o' failed
make[2]: *** [CMakeFiles/warprnnt.dir/src/warprnnt_generated_rnnt_entrypoint.cu.o] Error 1
CMakeFiles/Makefile2:141: recipe for target 'CMakeFiles/warprnnt.dir/all' failed
make[1]: *** [CMakeFiles/warprnnt.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

解决方法
找到warp-tranducer-master/src/rnnt_entrypoint.cu文件,打开文件你会发现,只有一行代码:rnnt_entrypoint.cpp。删除这行代码,将wrap-transducer-master/src/rnnt_entrypoint.cpp中的内容复制到warp-transducer-master/src/rnnt_entrypoint.cu中,然后重新make就可以通过了。

warprnnt-pytorch

warp-transducer提供了包装warpRNNT库的pytorch内核。

安装

首先编译通过warp-transducer,然后需要安装pytorch环境。网上有许多安装pytorch的教程,这里就不做说明了。

如果你有一个GPU,需要确保CUDA_HOME被设置了,如下:

export CUDA_HOME="/usr/local/cuda"

"/usr/local/cuda"是CUDA的路径,请替换自己的路径

现在开始安装:(推荐在pytorch环境下安装,推荐使用anaconda创建pytorch环境)

cd pytorch_binding
python setup.py install

然后终端会输出安装成功的信息。(我是在anaconda创建的pytorch环境下安装的,系统会直接把包输出anaconda3/envs/pyEnv/lib/python3.7/site-packages下,就可以直接使用了)

install出错请注意

如果提示cuda.hcuda_runtime.h等找不到,首先确保CUDA_HOME已经设置了。如果已经设置了,但是还是有下面的错误,请运行下面的指令:

vim ~/.bashrc

在bashrc中写入:

export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/opt/software/cuda/cuda-10.0/include
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/opt/software/cuda/cuda-10.0/include

/opt/software/cuda/cuda-10.0/includecuda.h所在的路径,请改为自己的。

保存退出,执行

source  ~/.bashrc

使更改生效,重新install就可以通过了。

你可能感兴趣的:(speech,recognition)