Implementation of Transformer model using Tensorflow
- Prepare a directory containing tokenized training data (e.g. train_ja, train_en), validation data (e.g. validate_ja, validate_en) and vocabulary files (e.g. vocab_ja, vocab_en). I used RakutenMA to tokenize Japanese text and nltk to tokenize English text.
- Modify config.py to change hyperparameters.
- Run
python3 train.py -d *data_directory* -l *source_language-target_language* -m *model_number*
to start training. - Press Ctrl-c to stop training.
- Modify beam_size, coverage_penalty_weight, length_penalty_weight in config.py if necessary.
- Run
python3 translate.py -d *data_directory* -l *source_language-target_language* -m *model_number*
. An image of attention_weights is plotted after each translation.
- Run
python3 server.py -d *data_directory* -l *source_language-target_language* -m *model_number* -i *ip_address* -p *port_number*
on a server. - Put client.py and ipag.ttf file in the same directory. Run
python3 client.py -i *server_ip_address* -p *server_port_number*
. Add --plot if you want to plot attention_weights.