This repository enables the reproduction of the experiments described in the article:
The dataset used in the project can be found in my personal website
- Requirements
- Usage
- Install the project
- (Optional) Compile and packaging by Eclipse
- Running
- Specfication
- The architecture of "src" directory
- maven==3.*
- jdk==1.8
- (optional) Eclipse
You'd better install maven plugin in eclipse (the lastest version has already installed maven plugin)
git clone git@github.com:Allen517/rnntd.git
cd rnntd
mvn clean install
If you want to load the project in Eclipse, you should run the following command
mvn eclipse:eclipse
- Import a project and import "Existing Projects into Workspace"
- Click "Browse", choose "rnntd" project and click "Finish"
- Export a "Runnable JAR file"
Right click on the main procedure
Choose "Export"
Choose "Runnable JAR file"
Completed
java -jar rnntd.jar config
move the runnable jar (e.g., the jar file is called "cyanrnn.jar") into the directory of cyanrnn_project
- main.java.com.kingwang.netattrnn
batchderv (When minibatch is finished, batchderv will average the derivation in all batches.)
BatchDerivative.java: interface of BatchDerivative
impl
--GRUBatchDerivative.java: for GRU (RNN)
--InputBatchDerivative.java: for input layer
--LSTMBatchDerivative.java: for LSTM (RNN)
--OutputBatchDerivative.java: for output layer
cell
--Cell.java: interface of RNN layers
--Operator.java: basic operator for RNN layers
impl
--GRU: GRU implementation
--LSTM: LSTM implementation
--InputLayer: Input layer implementation
--OutputLayer: Output layer implementation
main
RNNTD: Main procedure of RNN-TD
comm/utils: Common utilities
cons: Constants
dataset: Implementation of loading dataset
evals: Implementation of RNN-TD validation in tranining process
utils: Common utilities for RNN-TD