Friday 23 October 2015

Installing RNNLIB on Ubuntu 14.04

I have previously looked at CURRENNT, but now I'll go through how to use RNNLIB, which is a different rnn library. RNNLIB doesn't use cuda, but it can do multi-dimensional rnns and also can use the CTC loss function which can be handy. Let's get right into it. Download RNNLIB from sourceforge here.

You'll have to install the netcdf library:

sudo apt-get install libnetcdf-dev

You should also install boost: sudo apt-get install libboost-all-dev. I have libboost1.55 installed already.

There is an installation guide over here if you want some additional pointers. First run configure and make:


Fixing the errors

The first error I got was:

Mdrnn.hpp:239:6:   required from here
Helpers.hpp:311:41: error: ‘range_min_size’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
size_t size = range_min_size(r1, r2, r3);

To fix this one you need to put templates code above the code that uses them. Moving the 4 templates for range_min_size to the top of the file should fix all the issues in Helpers.hpp. I cut lines 532-547 and pasted the lines to line 163 of Helpers.hpp.

Running make again I got: Container.hpp:157:24: error: ‘resize’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation. To fix this one change on line 157 of containers.hpp "resize" to "this->resize."

That was all I needed to do to get this version installed.


  1. Thanks that worked! (using Ubuntu 14.04)

  2. This comment has been removed by the author.

    1. I've been worked on it for three days and kept failing again and again.
      Thanks to your scripts, finally make it and worked pretty well. Thank you again.
      By the way, I didn't get the errors you mentions above and just pass it lucky.

  3. thankx for your support.. but i am again facing some problem in installing rnnlib as in SoftmaxLayer as
    SoftmaxLayer.hpp:58:3: required from here
    /usr/include/c++/5/bits/stl_iterator_base_types.h:168:53: error: ‘double* const’ is not a class, struct, or union type

    so please help me for this also..

  4. I enjoyed over read your blog post. Your blog has nice information, I got good ideas from this amazing blog. I am always searching like this type blog post. I hope I will see again 300-075 exam questions answers