The Nerv Toolkit User Manual
NOTE: This readme is obsolete and will be rearranged, for further information, please check http://nerv-sjtu.github.io/nerv/
This user manual will information about how to use Nerv and Nerv's interface.
How to make and start using
First make sure you have lua and CUDA installed on your computer.
Nerv is currently developed via github.You can download and make Nerv by doing the following:
cd ~
git clone https://github.com/Nerv-SJTU/nerv.git
cd nerv
git submodule init && git submodule update
make
#To include some new CUDA feature(e.x. atomicCAS), use "make CFLAGS=-D__NERV_FUTURE_CUDA_7"
#further, if you want the speech modules
git clone https://github.com/Nerv-SJTU/nerv-speech.git speech
make speech
The git submodule
command is for the luajit repository inside Nerv.
Now, you can try to run some example scripts.
./install/bin/nerv examples/cumatrix_example.lua
To get an example of DNN(for ASR) training, run(this requires the speech modules)
You need to be at or (copy files from) /slfs1
(SJTU speechlab cluster) to get this running.
./install/bin/nerv nerv/examples/asr_trainer.lua nerv/examples/swb_baseline.lua
How to contribute
Fork the original repository, then use the pull&merge function in github to contribute.
The pull&merge request can be found on your dashboard in github. See this sync-help to sync with the original repository.
Nerv Packages
- luaT
Nerv uses luaT(a Torch library) to define lua class in C. - The Nerv OOP
Enables object-oriented programming in Nerv. - The Nerv utility functions
Inlcudes some utility functions from luaT to implement Nerv.Class. - The Nerv Matrix Package
The matrix package is a basic package in Nerv that is used to store and manipulate matrices. - The Nerv IO Package
The IO package is used to read and write parameters to file. - The Nerv Parameter Package
The parameter package is used to store, read model parameters from file. - The Nerv Layer Package
The layer package is used to define propagation and backpropagation of different type of layers. - The Nerv NN Package
The nn package is for organizing a neural network, it contains nerv.LayerRepo, nerv.ParamRepo, and nerv.DAGLayer.