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.