CRNN安装

本来看中了crnn的end2end性能,结果一安装,我擦泪,坑怎么这么多。

记住:CRNN库版本依赖非常严重!非常严重!严重!重!

下面是我的安装记录,希望对大家有帮助

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

0、环境要求
Ubuntu14 64位
gcc版本5.4.0
python源码编译的时候,必须指定enable-shared,换句话说,必须有libpython.so文件
可能还有些依赖库,比如krb5之类的,用什么直接apt-get install就好了
cudnn5

1、torch7安装,
官网安装,安装到~下,
http://torch.ch/docs/getting-started.html#_

2、boost 1.58
wget https://cytranet.dl.sourceforge.net/project/boost/boost/1.58.0/boost_1_58_0.tar.gz
先检查:sudo find / -name 'libboost*'
./bootstrap.sh --libdir=/usr/lib64
【如果是Ubuntu16,不要安装到该目录下,默认位置/usr/local就好了,否则ldd libboost_context.so 会提示找不到libboost_thread.so.1.58.0】
./b2
sudo ./b2 install

3、folly-v0.35.0
git clone -b v0.35.0 --depth 1 https://github.com/facebook/folly
先检查:sudo find / -name 'libfolly*'
autoreconf -ivf ./configure
【如果是Ubuntu16,./configure --with-boost-libdir=/usr/local/lib,
但是生成的libfolly.so文件,ldd查看(ldd .libs/libfolly.s |grep boost),发现没有连接到libboost_context.so libboost_thread.so.1.58.0 , 这会导致thrift编译不通过的,
原因:跟踪m4/ax_boost_context.m4 74行上下左右 ax_cv_boost_context 被置成了no】
解决办法:用5810的libfolly.so代替, 或者ax_cv_boost_context 被强制置成yes】
make
sudo make install
make如果出错,
Traits.h:152:38: error: template argument 1 is invalid
struct IsRelocatable< __VA_ARGS__ > : std::true_type {};
修改方法,
https://github.com/facebook/folly/issues/303
https://github.com/facebook/folly/pull/214/files
修改 folly/Traits.h 头文件


4、fbthrift-v0.24.0
git clone -b v0.24.0 --depth 1 https://github.com/facebook/fbthrift
autoreconf -ivf ./configure
【如果是Ubuntu16,./configure --with-boost-libdir=/usr/local/lib】
make
sudo make install

configure出错,会提示
configure: Unable to find the folly library.
configure: error: Please install the folly library
此时,folly库已经在/usr/local/lib下了
解决办法:
修改m4中检测folly的部分 vim m4/ax_check_folly.m4 +76
添加 succeeded=yes 在 AC_MSG_RESULT([no])上面
重新autoreconf

make出错,提示
generate/t_rb_generator.cc:315:11: error: operands to ?: have different types 'bool' and 'std::basic_ostream'
first ? first = false : f_types_ << ", ";
解决办法:修改compiler/generate/t_rb_generator.cc,一共两处
修改前: first ? first = false : f_types_ << ", ";
修改后: if (first) {
first = false;
} else {
f_service_ << ", ";
}
make clean后,重新make&install

5、thpp 1.0
git clone -b v1.0 https://github.com/facebook/thpp
把build.sh中的测试部分修改下,只保留unzip gtest-1.7.0.zip,把下面文件丢到thpp目录下
gtest-1.7.0.zip下载
./build.sh

出错信息 error: too few arguments to function 'void THFloatTensor_max(THFloatTensor*, THLongTensor*, THFloatTensor*, int, int)'
return THTensor_(max)(values, indices, t, dim)
修改方法:改代码 vim detail/TensorGeneric.h https://github.com/codeVerySlow/thpp/commit/d9f982c68d7522db9e77e50d135eaa86d84bab85


6、fblualib
git clone -b v1.0 https://github.com/facebook/fblualib
cd fblualib
./build.sh

7、crnn
git clone https://github.com/bgshih/crnn.git
cd src
./build_cpp.sh
最终得到libcrnn.so 文件

安装git上的要求运行demo
下载训练模型到model/crnn_demo/下
训练模型下载
把libcudnn.so.5输出环境变量:export CUDNN_PATH="/home/ml/cuda/lib64/libcudnn.so.5" 看自己的libcudnn.so.5在哪里
执行th demo.lua






你可能感兴趣的:(机器学习)