summaryrefslogblamecommitdiff
path: root/README.md
blob: fe9dfc1f7c75f6dcc2484428ee1e3bc689aa6b50 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                              
                                                                                                                            
 
                                                                                     
 
                               



                                                                                                     
                                               
       
                                          
    
                                                                                           


                                                              
           



                                                                               





                                                                                              





                                                                                                                           
                 
            
                                                               
                                              
                                            
                                                      
                                                                      
                                                          
                                                                                                
                                                  
                                                            
                                                            
                                                                        
                                                        
                                                                                                
                                                  
                                                                                                                             
                                                           
                                
                                                            
#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](nerv/doc/nerv_class.md)__  
Enables object-oriented programming in Nerv.
* __[The Nerv utility functions](nerv/doc/nerv.md)__  
Inlcudes some utility functions from luaT to implement __Nerv.Class__.
* __[The Nerv Matrix Package](nerv/doc/nerv_matrix.md)__  
The matrix package is a basic package in __Nerv__ that is used to store and manipulate matrices.
* __[The Nerv IO Package](nerv/doc/nerv_io.md)__  
The IO package is used to read and write parameters to file.
* __[The Nerv Parameter Package](nerv/doc/nerv_param.md)__  
The parameter package is used to store, read model parameters from file.
* __[The Nerv Layer Package](nerv/doc/nerv_layer.md)__  
The layer package is used to define propagation and backpropagation of different type of layers.
* __[The Nerv NN Package](nerv/doc/nerv_nn.md)__  
The nn package is for organizing a neural network, it contains __nerv.LayerRepo__, __nerv.ParamRepo__, and __nerv.DAGLayer__.
[luaT]:https://github.com/torch/torch7/tree/master/lib/luaT
[Torch]:https://github.com/torch
[sync-help]:https://help.github.com/articles/syncing-a-fork/