About the project
Please see blog post for details: https://blog.asjadk.com/deepprocess/
How to run experiments:
- Data for each experiment can be found on ./data/BusinessProcess folder
- File presuf_run.py contains code for 3 experiments
- In presuf_run.py: there are train and test funtions for each task. Just call the appropriate one
How to tune hyper parameters:
- In each function, hyper parameters are hard-coded
- Just edit directly
Type of hyper parameters:
- Method type (edit in constructer's arguments):
- LSTM seq2seq: use_mem=False
- DNC: use_mem=True, decoder_mode=True/False, dual_controller=False, write_protect=False
- DC-MANN: use_mem=True, decoder_mode=True, dual_controller=True, write_protect=False
- DCw_MANN: use_mem=True, decoder_mode=True/False, dual_controller=True, write_protect=True
- Model parameters (edit in constructer's arguments):
- use_emb=True/False: use embedding layer or not
- dual_emb=True/False: if use emedding layer, use one share or two embeddings for encoder and decoder
- hidden_controller_dim: dimension of controller hidden state
- Memory parameters (if use memory):
- words_count: number of memory slots
- word_size: size of each memory slots
- read_heads: number of reading heads
- Training parameters:
- batch_size: number of sequence sampled per batch
- iterations: max number of training step
- lm_train=True/False: training by the language model's way (edit in prepare_sample_batch function)
- optimizer: in file dnc.py, function build_loss_function_mask (default is adam)
Notes:
- The current hyper-parameters are picked by experience from other projects
- Except from different method types, I have not tried with other hyper-parameters