RNNLIB在Linux上安装

自己折腾了一天终于装好了RNNLIB,现在总结一下自己的安装过程,供大家参考。

RNNLIB可以用来做语音识别、手写字符识别,由大牛Alex Graves编写,专门做RNN、LSTM的研究。他的主页http://www.cs.toronto.edu/~graves/

本文参考了博文http://blog.csdn.net/co_dr/article/details/41315455 。但是根据他的指导步骤还是出现了各种错误,在他的基础上,自己写一个细致的说明。

1、首先下载安装包rnnlib.tar.gz,网址http://sourceforge.net/projects/rnnl/ 。

2、预安装软件

     apt-get install GCC/G++
     apt-get install automake
     apt-get install netcdf-bin

     apt-get install python-netcdf
     apt-get install libboost-dev 

3、从官网下载netcdf-C、netcdf-C++,网址http://www.unidata.ucar.edu/downloads/netcdf/index.jsp

      安装netcdf-C:

           解压、cd解压后的文件夹、./configure --disable-dap --disable-netcdf-4、make、make install

     安装netcdf-C++:

          解压、cd解压后的文件夹、CPPFLAGS=-I/$youpath/netcdf-4.3.2/include ./configure   、CPPFLAGS=-I/$yourpath/netcdf-4.3.2/include LDFLAGS=-L/usr/local/netcdf/lib make  、make install

4、安装RNNLib

      解压之后, ./configure,make,make install 

      在make的过程中出现了报错,如果是找不到头文件,大家自行解决。我遇到的两个最重要的报错是:源代码出错,共两处。

一是:Helper.hpp文件出错,修改如下:

    把这四个函数定义拷贝到本文件的最前面,放到宏定义之后,大概在160行之后。然后注释掉原来位置的代码。出错的原因是这几个函数在被调用之前没有声明,即编译器找不到这几个函数,所以要放到文件的前面。

template<class R1, class R2> static size_t range_min_size (const R1& a, const R2& b)
{
    return min(boost::size(a), boost::size(b));
}
template<class R1, class R2, class R3> static size_t range_min_size (const R1& a, const R2& b, const R3& c)
{
    return min(min(boost::size(a), boost::size(b)), boost::size(c));
}
template<class R1, class R2, class R3, class R4> static size_t range_min_size (const R1& a, const R2& b, const R3& c, const R4& d)
{
    return min(min(min(boost::size(a), boost::size(b)), boost::size(c)), boost::size(d));
}
template<class R1, class R2, class R3, class R4, class R5> static size_t range_min_size (const R1& a, const R2& b, const R3& c, const R4& d, const R5& e)
{
    return min(min(min(min(boost::size(a), boost::size(b)), boost::size(c)), boost::size(d)), boost::size(e));
}       


二是:Container.hpp文件报错。修改如下:

    大概158行左右的这个函数中,在resize函数之前加this->,红色行标出。

template<class R> Vector<T>& operator =(const R& r)
    {
        //resize(boost::size(r)); wwf 12.3修改
        this->resize(boost::size(r));//wwf 12.3修改
        copy(r, *this);
        return *this;
    }

      然后再make,make install ,应该不会再出错

          至此,安装完毕,希望能帮到大家!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值