From 48f63759f5814c1160a0eb7b0aa748a505a162a3 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Mon, 1 May 2017 15:49:17 +0000 Subject: [PATCH 01/58] CLI option to use inference unrolling during training --- seq2seq/model_infer_gpu.sh | 4 +++- seq2seq/model_train_gpu.sh | 4 +++- seq2seq/seq2seq_bucketing.py | 20 +++++++++++++++----- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/seq2seq/model_infer_gpu.sh b/seq2seq/model_infer_gpu.sh index 1755ec1..05c41c1 100755 --- a/seq2seq/model_infer_gpu.sh +++ b/seq2seq/model_infer_gpu.sh @@ -1,3 +1,5 @@ #!/bin/bash -python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 1 --gpus 0,1 --batch-size 256 --disp-batches 1 --num-epochs 1 --model-prefix trained_model --dropout 0.5 --infer --load-epoch 1 +python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 128 \ + --disp-batches 1 --num-epochs 1 --model-prefix trained_model --dropout 0.0 \ + --infer --load-epoch 1 # --use-cudnn-cells diff --git a/seq2seq/model_train_gpu.sh b/seq2seq/model_train_gpu.sh index 3f4e987..e8d383e 100755 --- a/seq2seq/model_train_gpu.sh +++ b/seq2seq/model_train_gpu.sh @@ -1,3 +1,5 @@ #!/bin/bash -python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 22 --gpus 0,1 --batch-size 256 --optimizer adagrad --lr 0.1 --disp-batches 1 --num-epochs 1 --model-prefix trained_model --dropout 0.5 +python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 128 \ + --optimizer adagrad --lr 0.1 --disp-batches 1 --num-epochs 1 --model-prefix trained_model --dropout 0.0 \ + --inference-unrolling-for-training # --use-cudnn-cells diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index ef7b471..cfe55b3 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -70,6 +70,9 @@ parser.add_argument('--use-cudnn-cells', action='store_true', help='Use CUDNN LSTM (mx.rnn.FusedRNNCell) for training instead of in-graph LSTM cells (mx.rnn.LSTMCell)') +parser.add_argument('--inference-unrolling-for-training', action='store_true', + help='Feed previous prediction (instead of previous ground truth) into the decoder input during training') + #buckets = [32] # buckets = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] @@ -258,8 +261,10 @@ def sym_gen(seq_len): # This should be based on EOS or max seq len for inference, but here we unroll to the target length # TODO: fix symbol - outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=states, layout=layout, merge_outputs=True) -# outputs, _ = decoder_unroll(decoder, targ_embed, targ_vocab, dec_seq_len, 0, begin_state=states, layout='TNC', merge_outputs=True) + if args.inference_unrolling_for_training: + outputs, _ = decoder_unroll(decoder, targ_embed, targ_vocab, dec_seq_len, 0, begin_state=states, layout='TNC', merge_outputs=True) + else: + outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=states, layout=layout, merge_outputs=True) # NEW rs = mx.sym.Reshape(outputs, shape=(-1, args.num_hidden), name='sym_gen_reshape1') @@ -423,8 +428,8 @@ def sym_gen(seq_len): # This should be based on EOS or max seq len for inference, but here we unroll to the target length # TODO: fix symbol -# outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=states, layout=layout, merge_outputs=True) - outputs, _ = decoder_unroll(decoder, targ_embed, targ_vocab, dec_seq_len, 0, begin_state=states, layout='TNC', merge_outputs=True) + outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=states, layout=layout, merge_outputs=True) +# outputs, _ = decoder_unroll(decoder, targ_embed, targ_vocab, dec_seq_len, 0, begin_state=states, layout='TNC', merge_outputs=True) # NEW rs = mx.sym.Reshape(outputs, shape=(-1, args.num_hidden), name='sym_gen_reshape1') @@ -485,7 +490,8 @@ def sym_gen(seq_len): contexts = [mx.gpu(int(i)) for i in args.gpus.split(',')] else: contexts = mx.cpu(0) - + + print("\n") if args.num_layers >= 4 and len(args.gpus.split(',')) >= 4 and not args.stack_rnn: print('WARNING: stack-rnn is recommended to train complex model on multiple GPUs') @@ -495,4 +501,8 @@ def sym_gen(seq_len): # with non-fused MXNet symbol infer(args) else: + if args.inference_unrolling_for_training: + print("INFO: Using inference decoder unrolling for training") + else: + print("INFO: Using regular decoder unrolling for training") train(args) From 4608c6741d71ec31d5a85b9079b132a856109696 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Mon, 1 May 2017 18:53:17 +0000 Subject: [PATCH 02/58] Checkpoint --- seq2seq/model_train_gpu.sh | 6 ++-- seq2seq/seq2seq_bucketing.py | 61 +++++++++++++++++++++++------------- 2 files changed, 43 insertions(+), 24 deletions(-) diff --git a/seq2seq/model_train_gpu.sh b/seq2seq/model_train_gpu.sh index e8d383e..0cca9ce 100755 --- a/seq2seq/model_train_gpu.sh +++ b/seq2seq/model_train_gpu.sh @@ -1,5 +1,5 @@ #!/bin/bash -python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 128 \ - --optimizer adagrad --lr 0.1 --disp-batches 1 --num-epochs 1 --model-prefix trained_model --dropout 0.0 \ - --inference-unrolling-for-training +python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 64 \ + --optimizer adagrad --lr 0.1 --disp-batches 1 --num-epochs 1 --model-prefix trained_model --dropout 0.0 +# --inference-unrolling-for-training # --use-cudnn-cells diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index cfe55b3..5a02e25 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -174,7 +174,10 @@ def get_data(layout): return train_iter, valid_iter, train_iter.src_vocab, train_iter.targ_vocab # WORK IN PROGRESS !!! -def decoder_unroll(decoder, target_embed, targ_vocab, unroll_length, go_symbol, begin_state=None, layout='TNC', merge_outputs=None): +def decoder_unroll(decoder, target_embed, targ_vocab, unroll_length, + go_symbol, + fc_weight, fc_bias, targ_em_weight, + begin_state=None, layout='TNC', merge_outputs=None): decoder.reset() @@ -192,19 +195,19 @@ def decoder_unroll(decoder, target_embed, targ_vocab, unroll_length, go_symbol, # NEW 1 # fc_weight = mx.sym.Variable('fc_weight') # fc_bias = mx.sym.Variable('fc_bias') -# em_weight = mx.sym.Variable('em_weight') -# for i in range(0, unroll_length): -# output, states = decoder(embed, states) -# outputs.append(embed) -# fc = mx.sym.FullyConnected(data=output, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='decoder_fc%d_'%i) -# am = mx.sym.argmax(data=fc, axis=1) -# embed = mx.sym.Embedding(data=am, weight=em_weight, input_dim=len(targ_vocab), -# output_dim=args.num_embed, name='decoder_embed%d_'%i) - - # NEW 2 +# targ_em_weight = mx.sym.Variable('targ_em_weight') for i in range(0, unroll_length): - embed, states = decoder(embed, states) + output, states = decoder(embed, states) outputs.append(embed) + fc = mx.sym.FullyConnected(data=output, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='decoder_fc%d_'%i) + am = mx.sym.argmax(data=fc, axis=1) + embed = mx.sym.Embedding(data=am, weight=targ_em_weight, input_dim=len(targ_vocab), + output_dim=args.num_embed, name='decoder_embed%d_'%i) + + # NEW 2 +# for i in range(0, unroll_length): +# embed, states = decoder(embed, states) +# outputs.append(embed) outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) @@ -217,6 +220,10 @@ def train(args): data_train, data_val, src_vocab, targ_vocab = get_data('TN') print "len(src_vocab) len(targ_vocab)", len(src_vocab), len(targ_vocab) + fc_weight = mx.sym.Variable('fc_weight') + fc_bias = mx.sym.Variable('fc_bias') + targ_em_weight = mx.sym.Variable('targ_em_weight') + encoder = SequentialRNNCell() if args.use_cudnn_cells: @@ -248,7 +255,7 @@ def sym_gen(seq_len): src_embed = mx.sym.Embedding(data=src_data, input_dim=len(src_vocab), output_dim=args.num_embed, name='src_embed') - targ_embed = mx.sym.Embedding(data=targ_data, input_dim=len(targ_vocab), # data=data + targ_embed = mx.sym.Embedding(data=targ_data, weight=targ_em_weight, input_dim=len(targ_vocab), # data=data output_dim=args.num_embed, name='targ_embed') encoder.reset() @@ -262,13 +269,13 @@ def sym_gen(seq_len): # This should be based on EOS or max seq len for inference, but here we unroll to the target length # TODO: fix symbol if args.inference_unrolling_for_training: - outputs, _ = decoder_unroll(decoder, targ_embed, targ_vocab, dec_seq_len, 0, begin_state=states, layout='TNC', merge_outputs=True) + outputs, _ = decoder_unroll(decoder, targ_embed, targ_vocab, dec_seq_len, 0, fc_weight, fc_bias, targ_em_weight, begin_state=states, layout='TNC', merge_outputs=True) else: outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=states, layout=layout, merge_outputs=True) # NEW rs = mx.sym.Reshape(outputs, shape=(-1, args.num_hidden), name='sym_gen_reshape1') - fc = mx.sym.FullyConnected(data=rs, num_hidden=len(targ_vocab), name='sym_gen_fc') + fc = mx.sym.FullyConnected(data=rs, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='sym_gen_fc') label_rs = mx.sym.Reshape(data=label, shape=(-1,), name='sym_gen_reshape2') pred = mx.sym.SoftmaxOutput(data=fc, label=label_rs, name='sym_gen_softmax') @@ -292,7 +299,7 @@ def sym_gen(seq_len): if args.load_epoch: _, arg_params, aux_params = mx.rnn.load_rnn_checkpoint( - cell, args.model_prefix, args.load_epoch) + [encoder, decoder], args.model_prefix, args.load_epoch) else: arg_params = None aux_params = None @@ -322,7 +329,7 @@ def sym_gen(seq_len): begin_epoch = args.load_epoch, num_epoch = args.num_epochs, batch_end_callback = mx.callback.Speedometer(batch_size=args.batch_size, frequent=args.disp_batches, auto_reset=True), - epoch_end_callback = mx.rnn.do_rnn_checkpoint(decoder, args.model_prefix, 1) + epoch_end_callback = mx.rnn.do_rnn_checkpoint([encoder, decoder], args.model_prefix, 1) if args.model_prefix else None) train_duration = time() - start @@ -380,6 +387,10 @@ def infer(args): print "len(src_vocab) len(targ_vocab)", len(src_vocab), len(targ_vocab) + fc_weight = mx.sym.Variable('fc_weight') + fc_bias = mx.sym.Variable('fc_bias') + targ_em_weight = mx.sym.Variable('targ_em_weight') + if args.use_cudnn_cells: encoder = mx.rnn.FusedRNNCell(args.num_hidden, num_layers=args.num_layers, dropout=args.dropout, mode='lstm', prefix='lstm_encoder', bidirectional=args.bidirectional, get_next_state=True).unfuse() @@ -428,15 +439,23 @@ def sym_gen(seq_len): # This should be based on EOS or max seq len for inference, but here we unroll to the target length # TODO: fix symbol - outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=states, layout=layout, merge_outputs=True) -# outputs, _ = decoder_unroll(decoder, targ_embed, targ_vocab, dec_seq_len, 0, begin_state=states, layout='TNC', merge_outputs=True) +# outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=states, layout=layout, merge_outputs=True) + outputs, _ = decoder_unroll(decoder, targ_embed, targ_vocab, dec_seq_len, 0, + fc_weight, fc_bias, targ_em_weight, + begin_state=states, layout='TNC', merge_outputs=True) # NEW + rs = mx.sym.Reshape(outputs, shape=(-1, args.num_hidden), name='sym_gen_reshape1') - fc = mx.sym.FullyConnected(data=rs, num_hidden=len(targ_vocab), name='sym_gen_fc') + fc = mx.sym.FullyConnected(data=rs, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='sym_gen_fc') label_rs = mx.sym.Reshape(data=label, shape=(-1,), name='sym_gen_reshape2') pred = mx.sym.SoftmaxOutput(data=fc, label=label_rs, name='sym_gen_softmax') +# rs = mx.sym.Reshape(outputs, shape=(-1, args.num_hidden), name='sym_gen_reshape1') +# fc = mx.sym.FullyConnected(data=rs, num_hidden=len(targ_vocab), name='sym_gen_fc') +# label_rs = mx.sym.Reshape(data=label, shape=(-1,), name='sym_gen_reshape2') +# pred = mx.sym.SoftmaxOutput(data=fc, label=label_rs, name='sym_gen_softmax') + return pred, ('src_data', 'targ_data',), ('softmax_label',) if args.gpus: @@ -453,7 +472,7 @@ def sym_gen(seq_len): if args.load_epoch: _, arg_params, aux_params = mx.rnn.load_rnn_checkpoint( - decoder, args.model_prefix, args.load_epoch) + [encoder, decoder], args.model_prefix, args.load_epoch) model.set_params(arg_params, aux_params) else: From c5a1dfc714c1f92fcda8a98b499a35fa09691e59 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Mon, 1 May 2017 20:17:27 +0000 Subject: [PATCH 03/58] Inference rewrite --- seq2seq/seq2seq_bucketing.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index 5a02e25..a5e0227 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -222,7 +222,7 @@ def train(args): fc_weight = mx.sym.Variable('fc_weight') fc_bias = mx.sym.Variable('fc_bias') - targ_em_weight = mx.sym.Variable('targ_em_weight') + targ_em_weight = mx.sym.Variable('targ_embed_weight') encoder = SequentialRNNCell() @@ -389,7 +389,7 @@ def infer(args): fc_weight = mx.sym.Variable('fc_weight') fc_bias = mx.sym.Variable('fc_bias') - targ_em_weight = mx.sym.Variable('targ_em_weight') + targ_em_weight = mx.sym.Variable('targ_embed_weight') if args.use_cudnn_cells: encoder = mx.rnn.FusedRNNCell(args.num_hidden, num_layers=args.num_layers, dropout=args.dropout, @@ -473,12 +473,14 @@ def sym_gen(seq_len): if args.load_epoch: _, arg_params, aux_params = mx.rnn.load_rnn_checkpoint( [encoder, decoder], args.model_prefix, args.load_epoch) + print(arg_params) model.set_params(arg_params, aux_params) else: arg_params = None aux_params = None + opt_params = { 'learning_rate': args.lr, 'wd': args.wd From c88ea075de6fedd042d9b15be49103f8f516464a Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Mon, 1 May 2017 20:39:19 +0000 Subject: [PATCH 04/58] Inference fix WIP --- seq2seq/model_train_gpu.sh | 2 +- seq2seq/seq2seq_bucketing.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/seq2seq/model_train_gpu.sh b/seq2seq/model_train_gpu.sh index 0cca9ce..8e7cad2 100755 --- a/seq2seq/model_train_gpu.sh +++ b/seq2seq/model_train_gpu.sh @@ -1,5 +1,5 @@ #!/bin/bash -python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 64 \ +python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0,1 --batch-size 128 \ --optimizer adagrad --lr 0.1 --disp-batches 1 --num-epochs 1 --model-prefix trained_model --dropout 0.0 # --inference-unrolling-for-training # --use-cudnn-cells diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index a5e0227..723b1a5 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -426,7 +426,8 @@ def sym_gen(seq_len): src_embed = mx.sym.Embedding(data=src_data, input_dim=len(src_vocab), output_dim=args.num_embed, name='src_embed') - targ_embed = mx.sym.Embedding(data=targ_data, input_dim=len(targ_vocab), # data=data + targ_embed = mx.sym.Embedding(data=targ_data, input_dim=len(targ_vocab), + weight = targ_em_weight, # data=data output_dim=args.num_embed, name='targ_embed') encoder.reset() @@ -473,7 +474,7 @@ def sym_gen(seq_len): if args.load_epoch: _, arg_params, aux_params = mx.rnn.load_rnn_checkpoint( [encoder, decoder], args.model_prefix, args.load_epoch) - print(arg_params) +# print(arg_params) model.set_params(arg_params, aux_params) else: From 8db59804112bafdba6bf98dd65fda5ea77922ba0 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Tue, 2 May 2017 04:39:25 +0000 Subject: [PATCH 05/58] WIP --- seq2seq/model_infer_gpu.sh | 4 ++-- seq2seq/model_train_gpu.sh | 4 ++-- seq2seq/seq2seq_bucketing.py | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/seq2seq/model_infer_gpu.sh b/seq2seq/model_infer_gpu.sh index 05c41c1..7cb385e 100755 --- a/seq2seq/model_infer_gpu.sh +++ b/seq2seq/model_infer_gpu.sh @@ -1,5 +1,5 @@ #!/bin/bash -python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 128 \ +python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0,1 --batch-size 256 \ --disp-batches 1 --num-epochs 1 --model-prefix trained_model --dropout 0.0 \ - --infer --load-epoch 1 + --infer --load-epoch 6 # --use-cudnn-cells diff --git a/seq2seq/model_train_gpu.sh b/seq2seq/model_train_gpu.sh index 8e7cad2..bb62d40 100755 --- a/seq2seq/model_train_gpu.sh +++ b/seq2seq/model_train_gpu.sh @@ -1,5 +1,5 @@ #!/bin/bash -python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0,1 --batch-size 128 \ - --optimizer adagrad --lr 0.1 --disp-batches 1 --num-epochs 1 --model-prefix trained_model --dropout 0.0 +python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0,1,2,3 --batch-size 256 \ + --optimizer adagrad --lr 0.1 --disp-batches 1 --num-epochs 10 --model-prefix trained_model --dropout 0.0 # --inference-unrolling-for-training # --use-cudnn-cells diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index 723b1a5..e739697 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -198,7 +198,7 @@ def decoder_unroll(decoder, target_embed, targ_vocab, unroll_length, # targ_em_weight = mx.sym.Variable('targ_em_weight') for i in range(0, unroll_length): output, states = decoder(embed, states) - outputs.append(embed) + outputs.append(output) fc = mx.sym.FullyConnected(data=output, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='decoder_fc%d_'%i) am = mx.sym.argmax(data=fc, axis=1) embed = mx.sym.Embedding(data=am, weight=targ_em_weight, input_dim=len(targ_vocab), @@ -495,7 +495,7 @@ def sym_gen(seq_len): start = time() # mx.metric.Perplexity - model.score(data_val, BleuScore(invalid_label), #PPL(invalid_label), + model.score(data_val, BleuScore(invalid_label), #mx.metric.Perplexity(invalid_label), batch_end_callback=mx.callback.Speedometer(batch_size=args.batch_size, frequent=5, auto_reset=True)) infer_duration = time() - start From af657a200ad9f13ce85b54f495833d12c3d39542 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Tue, 2 May 2017 05:34:36 +0000 Subject: [PATCH 06/58] WIP --- seq2seq/seq2seq_bucketing.py | 42 ++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index e739697..9468279 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -495,8 +495,46 @@ def sym_gen(seq_len): start = time() # mx.metric.Perplexity - model.score(data_val, BleuScore(invalid_label), #mx.metric.Perplexity(invalid_label), - batch_end_callback=mx.callback.Speedometer(batch_size=args.batch_size, frequent=5, auto_reset=True)) +# model.score(data_val, BleuScore(invalid_label), #mx.metric.Perplexity(invalid_label), +# batch_end_callback=mx.callback.Speedometer(batch_size=args.batch_size, frequent=5, auto_reset=True)) + + for bkt in range(10): + data_val.reset() + data_batch = data_val.next() + + model.forward(data_batch, is_train=None) + source = data_batch.data[0] + preds = model.get_outputs()[0] + labels = data_batch.label[0] + + maxed = mx.ndarray.argmax(data=preds, axis=1) + pred_nparr = maxed.asnumpy() + src_nparr = source.asnumpy() + label_nparr = labels.asnumpy().astype(np.int32) + sent_len, batch_size = np.shape(label_nparr) + pred_nparr = pred_nparr.reshape(sent_len, batch_size).astype(np.int32) + + + # range should be number of examples in the bucket + for i in range(10): + src_lst = list(reversed(drop_sentinels(src_nparr[:, i].tolist()))) + exp_lst = drop_sentinels(label_nparr[:, i].tolist()) + act_lst = drop_sentinels(pred_nparr[:, i].tolist()) + + # convert source to text + src_txt = array_to_text(src_lst, inv_src_vocab) + + # convert expected translation to text + exp_txt = array_to_text(exp_lst, inv_targ_vocab) + + # convert actual translation to text + act_txt = array_to_text(act_lst, inv_targ_vocab) + + print("\n") + print("Source text: %s" % src_txt) + print("Expected translation: %s" % exp_txt) + print("Actual translation: %s" % act_txt) + infer_duration = time() - start time_per_epoch = infer_duration / args.num_epochs From b4d32340f655f0b150927f6238e69d550f976ad8 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Tue, 2 May 2017 05:40:48 +0000 Subject: [PATCH 07/58] WIP --- seq2seq/seq2seq_bucketing.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index 9468279..d0ca57d 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -336,6 +336,14 @@ def sym_gen(seq_len): time_per_epoch = train_duration / args.num_epochs print("\n\nTime per epoch: %.2f seconds\n\n" % time_per_epoch) + +def drop_sentinels(text_lst): + sentinels = lambda x: x == reserved_tokens[''] or x == reserved_tokens[''] + text_lst = dropwhile(lambda x: sentinels(x), text_lst) + text_lst = takewhile(lambda x: not sentinels(x) and x != reserved_tokens[''], text_lst) + return list(text_lst) + + class BleuScore(mx.metric.EvalMetric): def __init__(self, ignore_label, axis=-1): super(BleuScore, self).__init__('BleuScore') @@ -345,12 +353,6 @@ def __init__(self, ignore_label, axis=-1): def update(self, labels, preds): assert len(labels) == len(preds) - def drop_sentinels(text_lst): - sentinels = lambda x: x == reserved_tokens[''] or x == reserved_tokens[''] - text_lst = dropwhile(lambda x: sentinels(x), text_lst) - text_lst = takewhile(lambda x: not sentinels(x) and x != reserved_tokens[''], text_lst) - return list(text_lst) - smoothing_fn = nltk.translate.bleu_score.SmoothingFunction().method3 for label, pred in zip(labels, preds): From a513a9834090df794e63cdc870168b9533d2cd59 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Tue, 2 May 2017 05:43:04 +0000 Subject: [PATCH 08/58] WIP --- seq2seq/seq2seq_bucketing.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index d0ca57d..b918a0b 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -171,7 +171,7 @@ def get_data(layout): print("\nDataset deserialization time: %.2f seconds\n" % duration) - return train_iter, valid_iter, train_iter.src_vocab, train_iter.targ_vocab + return train_iter, valid_iter, train_iter.src_vocab, train_iter.targ_vocab, train_iter.inv_src_vocab, train_iter.inv_targ_vocab # WORK IN PROGRESS !!! def decoder_unroll(decoder, target_embed, targ_vocab, unroll_length, @@ -217,7 +217,7 @@ def train(args): from time import time - data_train, data_val, src_vocab, targ_vocab = get_data('TN') + data_train, data_val, src_vocab, targ_vocab, inv_src_vocab, inv_targ_vocab = get_data('TN') print "len(src_vocab) len(targ_vocab)", len(src_vocab), len(targ_vocab) fc_weight = mx.sym.Variable('fc_weight') @@ -385,7 +385,7 @@ def get(self): def infer(args): assert args.model_prefix, "Must specifiy path to load from" - data_train, data_val, src_vocab, targ_vocab = get_data('TN') + data_train, data_val, src_vocab, targ_vocab, inv_src_vocab, inv_targ_vocab = get_data('TN') print "len(src_vocab) len(targ_vocab)", len(src_vocab), len(targ_vocab) From 98763c19cecc0b75a0c084258764f31de5ba8d8d Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Wed, 3 May 2017 04:10:00 +0000 Subject: [PATCH 09/58] Re-enable BLEU score before printing translations for inference --- seq2seq/seq2seq_bucketing.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index b918a0b..208dead 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -497,8 +497,8 @@ def sym_gen(seq_len): start = time() # mx.metric.Perplexity -# model.score(data_val, BleuScore(invalid_label), #mx.metric.Perplexity(invalid_label), -# batch_end_callback=mx.callback.Speedometer(batch_size=args.batch_size, frequent=5, auto_reset=True)) + model.score(data_val, BleuScore(invalid_label), #mx.metric.Perplexity(invalid_label), + batch_end_callback=mx.callback.Speedometer(batch_size=args.batch_size, frequent=5, auto_reset=True)) for bkt in range(10): data_val.reset() From 70a52430419ec6b7995ab8c83935925249b0b902 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Wed, 3 May 2017 19:45:05 +0000 Subject: [PATCH 10/58] WIP test set BLEU score --- seq2seq/preprocess_data.py | 31 +++++++++++++++++++++++++------ seq2seq/utils.py | 18 ++++++++++++------ 2 files changed, 37 insertions(+), 12 deletions(-) diff --git a/seq2seq/preprocess_data.py b/seq2seq/preprocess_data.py index 274b7f1..8ed58b0 100644 --- a/seq2seq/preprocess_data.py +++ b/seq2seq/preprocess_data.py @@ -28,10 +28,12 @@ start = time() dataset = get_s2s_data( - src_train_path= './data/wmt15-de-en/train.en', - src_valid_path= './data/wmt15-de-en/valid.en', - targ_train_path= './data/wmt15-de-en/train.de', - targ_valid_path= './data/wmt15-de-en/valid.de' + src_train_path= './data/wmt15-de-en/train.de', + src_valid_path= './data/wmt15-de-en/valid.de', + src_test_path = './data/wmt15-de-en/test.de', + targ_train_path= './data/wmt15-de-en/train.en', + targ_valid_path= './data/wmt15-de-en/valid.en', + targ_test_path= './data/wmt15-de-en/test.en', ) # dataset = get_s2s_data( @@ -59,11 +61,12 @@ # all_pairs = [(5, 5), (15,15), (20, 20)] # max_sent_len = 25 + batch_size=64 print("Constructing train iterator") start = time() train_iter = Seq2SeqIter(dataset.src_train_sent, dataset.targ_train_sent, dataset.src_vocab, dataset.inv_src_vocab, - dataset.targ_vocab, dataset.inv_targ_vocab, layout='TN', batch_size=64, buckets=all_pairs, max_sent_len=max_len) + dataset.targ_vocab, dataset.inv_targ_vocab, layout='TN', batch_size=batch_size, buckets=all_pairs, max_sent_len=max_len) train_iter.bucketize() train_iter_duration = time() - start @@ -80,7 +83,7 @@ print("Constructing valid iterator") valid_iter_duration = time() valid_iter = Seq2SeqIter(dataset.src_valid_sent, dataset.targ_valid_sent, dataset.src_vocab, dataset.inv_src_vocab, - dataset.targ_vocab, dataset.inv_targ_vocab, layout='TN', batch_size=64, buckets=all_pairs, max_sent_len=50) + dataset.targ_vocab, dataset.inv_targ_vocab, layout='TN', batch_size=batch_size, buckets=all_pairs, max_sent_len=max_len) valid_iter.bucketize() valid_iter_duration = time() - start @@ -93,3 +96,19 @@ valid_ser_duration = time() - start print("\nSerializing validation set iterator took %.4f seconds\n" % valid_ser_duration) + print("Constructing test iterator") + test_iter_duration = time() + test_iter = Seq2SeqIter(dataset.src_test_sent, dataset.targ_test_sent, dataset.src_vocab, dataset.inv_src_vocab, + dataset.targ_vocab, dataset.inv_targ_vocab, layout='TN', batch_size=batch_size, buckets=all_pairs, max_sent_len=max_len) + + test_iter.bucketize() + test_iter_duration = time() - start + print("\nBucketizing data for test set iterator took %.4f seconds\n" % test_iter_duration) + + print("Serializing test set iterator.") + start = time() + with open('./data/test_iterator.pkl', 'wb') as f: + pickle.dump(test_iter, f, pickle.HIGHEST_PROTOCOL) + test_ser_duration = time() - start + print("\nSerializing test set iterator took %.4f seconds\n" % test_ser_duration) + diff --git a/seq2seq/utils.py b/seq2seq/utils.py index 237547d..b5f848b 100644 --- a/seq2seq/utils.py +++ b/seq2seq/utils.py @@ -15,8 +15,8 @@ Dataset = namedtuple( 'Dataset', - ['src_train_sent', 'src_valid_sent', 'src_vocab', 'inv_src_vocab', - 'targ_train_sent', 'targ_valid_sent', 'targ_vocab', 'inv_targ_vocab']) + ['src_train_sent', 'src_valid_sent', 'src_test_sent', 'src_vocab', 'inv_src_vocab', + 'targ_train_sent', 'targ_valid_sent', 'targ_test_sent', 'targ_vocab', 'inv_targ_vocab']) def invert_dict(d): return {v: k for k, v in d.iteritems()} @@ -91,7 +91,8 @@ def array_to_text(array, inv_vocab): sent.append(inv_vocab[token]) return " ".join(sent) -def get_s2s_data(src_train_path, src_valid_path, targ_train_path, targ_valid_path, +def get_s2s_data(src_train_path, src_valid_path, targ_train_path, + targ_valid_path, src_test_path, targ_test_path, reserved_tokens=['', '', '', '']): print("Creating joint source dictionary") @@ -99,8 +100,10 @@ def get_s2s_data(src_train_path, src_valid_path, targ_train_path, targ_valid_pat print("Tokenizing src_train_path") src_train_sent = tokenize_text(src_train_path, vocab=src_dict) - print("Tokenizing targ_train_path") + print("Tokenizing src_valid_path") src_valid_sent = tokenize_text(src_valid_path, vocab=src_dict) + print("Tokenizing src_test_path") + src_test_sent = tokenize_text(src_test_path, vocab=src_dict) print("Creating joint target dictionary") targ_dict, inv_targ_dict = top_words_train_valid(targ_train_path, targ_valid_path) @@ -109,6 +112,8 @@ def get_s2s_data(src_train_path, src_valid_path, targ_train_path, targ_valid_pat targ_train_sent = tokenize_text(targ_train_path, vocab=targ_dict) print("Tokenizing targ_valid_path") targ_valid_sent = tokenize_text(targ_valid_path, vocab=targ_dict) + print("Tokenizing targ_test_path") + targ_test_sent = tokenize_text(targ_test_path, vocab=targ_dict) print("\nEncoded source language sentences:\n") for i in range(5): @@ -120,6 +125,7 @@ def get_s2s_data(src_train_path, src_valid_path, targ_train_path, targ_valid_pat return Dataset( - src_train_sent=src_train_sent, src_valid_sent=src_valid_sent, src_vocab=src_dict, inv_src_vocab=inv_src_dict, - targ_train_sent=targ_train_sent, targ_valid_sent=targ_valid_sent, targ_vocab=targ_dict, inv_targ_vocab=inv_targ_dict) + src_train_sent=src_train_sent, src_valid_sent=src_valid_sent, src_test_sent=src_test_sent, + src_vocab=src_dict, inv_src_vocab=inv_src_dict, targ_train_sent=targ_train_sent, + targ_valid_sent=targ_valid_sent, targ_test_sent=targ_test_sent, targ_vocab=targ_dict, inv_targ_vocab=inv_targ_dict) From b44a215f1636d9b18a7f352f4f4d8b0522c71fca Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Wed, 3 May 2017 19:49:05 +0000 Subject: [PATCH 11/58] WIP test set BLEU score --- seq2seq/seq2seq_bucketing.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index 208dead..5a6449e 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -159,6 +159,12 @@ def get_data(layout): valid_iter.initialize() valid_iter.batch_size = args.batch_size + with open('./data/test_iterator.pkl', 'rb') as f: + test_iter = pickle.load(f) + + test_iter.initialize() + test_iter.batch_size = args.batch_size + print("\nEncoded source language sentences:\n") for i in range(5): print(array_to_text(train_iter.src_sent[i], train_iter.inv_src_vocab)) @@ -171,7 +177,7 @@ def get_data(layout): print("\nDataset deserialization time: %.2f seconds\n" % duration) - return train_iter, valid_iter, train_iter.src_vocab, train_iter.targ_vocab, train_iter.inv_src_vocab, train_iter.inv_targ_vocab + return train_iter, valid_iter, test_iter, train_iter.src_vocab, train_iter.targ_vocab, train_iter.inv_src_vocab, train_iter.inv_targ_vocab # WORK IN PROGRESS !!! def decoder_unroll(decoder, target_embed, targ_vocab, unroll_length, @@ -217,7 +223,7 @@ def train(args): from time import time - data_train, data_val, src_vocab, targ_vocab, inv_src_vocab, inv_targ_vocab = get_data('TN') + data_train, data_val, _, src_vocab, targ_vocab, inv_src_vocab, inv_targ_vocab = get_data('TN') print "len(src_vocab) len(targ_vocab)", len(src_vocab), len(targ_vocab) fc_weight = mx.sym.Variable('fc_weight') @@ -385,7 +391,7 @@ def get(self): def infer(args): assert args.model_prefix, "Must specifiy path to load from" - data_train, data_val, src_vocab, targ_vocab, inv_src_vocab, inv_targ_vocab = get_data('TN') + _, _, data_test, src_vocab, targ_vocab, inv_src_vocab, inv_targ_vocab = get_data('TN') print "len(src_vocab) len(targ_vocab)", len(src_vocab), len(targ_vocab) @@ -471,7 +477,7 @@ def sym_gen(seq_len): default_bucket_key = data_train.default_bucket_key, context = contexts) - model.bind(data_val.provide_data, data_val.provide_label, for_training=False) + model.bind(data_test.provide_data, data_test.provide_label, for_training=False) if args.load_epoch: _, arg_params, aux_params = mx.rnn.load_rnn_checkpoint( @@ -497,8 +503,8 @@ def sym_gen(seq_len): start = time() # mx.metric.Perplexity - model.score(data_val, BleuScore(invalid_label), #mx.metric.Perplexity(invalid_label), - batch_end_callback=mx.callback.Speedometer(batch_size=args.batch_size, frequent=5, auto_reset=True)) + model.score(data_test, BleuScore(invalid_label), #mx.metric.Perplexity(invalid_label), + batch_end_callback=mx.callback.Speedometer(batch_size=args.batch_size, frequent=1, auto_reset=True)) for bkt in range(10): data_val.reset() From 1fab8ce7cd166c1e9d3374d1977a3d83d09034e3 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Wed, 3 May 2017 19:59:27 +0000 Subject: [PATCH 12/58] WIP --- seq2seq/model_infer_gpu.sh | 4 ++-- seq2seq/model_train_gpu.sh | 4 ++-- seq2seq/preprocess_data.py | 19 ++++++------------- seq2seq/seq2seq_bucketing.py | 10 +++++----- 4 files changed, 15 insertions(+), 22 deletions(-) diff --git a/seq2seq/model_infer_gpu.sh b/seq2seq/model_infer_gpu.sh index 7cb385e..0b01710 100755 --- a/seq2seq/model_infer_gpu.sh +++ b/seq2seq/model_infer_gpu.sh @@ -1,5 +1,5 @@ #!/bin/bash -python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0,1 --batch-size 256 \ +python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 128 \ --disp-batches 1 --num-epochs 1 --model-prefix trained_model --dropout 0.0 \ - --infer --load-epoch 6 + --infer --load-epoch 1 --use-cudnn-cells # --use-cudnn-cells diff --git a/seq2seq/model_train_gpu.sh b/seq2seq/model_train_gpu.sh index bb62d40..f51ce41 100755 --- a/seq2seq/model_train_gpu.sh +++ b/seq2seq/model_train_gpu.sh @@ -1,5 +1,5 @@ #!/bin/bash -python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0,1,2,3 --batch-size 256 \ - --optimizer adagrad --lr 0.1 --disp-batches 1 --num-epochs 10 --model-prefix trained_model --dropout 0.0 +python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 128 \ + --optimizer adagrad --lr 0.1 --disp-batches 1 --num-epochs 1 --model-prefix trained_model --dropout 0.0 --use-cudnn-cells # --inference-unrolling-for-training # --use-cudnn-cells diff --git a/seq2seq/preprocess_data.py b/seq2seq/preprocess_data.py index 8ed58b0..b010c0a 100644 --- a/seq2seq/preprocess_data.py +++ b/seq2seq/preprocess_data.py @@ -28,21 +28,14 @@ start = time() dataset = get_s2s_data( - src_train_path= './data/wmt15-de-en/train.de', - src_valid_path= './data/wmt15-de-en/valid.de', - src_test_path = './data/wmt15-de-en/test.de', - targ_train_path= './data/wmt15-de-en/train.en', - targ_valid_path= './data/wmt15-de-en/valid.en', - targ_test_path= './data/wmt15-de-en/test.en', + src_train_path= './data/europarl-v7.es-en.en_train_small', + src_valid_path= './data/europarl-v7.es-en.en_valid_small', + src_test_path = './data/europarl-v7.es-en.en_test_small', + targ_train_path= './data/europarl-v7.es-en.es_train_small', + targ_valid_path= './data/europarl-v7.es-en.en_valid_small', + targ_test_path = './data/europarl-v7.es-en.es_test_small' ) -# dataset = get_s2s_data( -# src_train_path= './data/europarl-v7.es-en.en_train_small', -# src_valid_path= './data/europarl-v7.es-en.en_valid_small', -# targ_train_path= './data/europarl-v7.es-en.es_train_small', -# targ_valid_path= './data/europarl-v7.es-en.en_valid_small' -# ) - preproc_duration = time() - start print("\nPreprocessing data took %.4f seconds\n" % preproc_duration) diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index 5a6449e..35211bd 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -474,7 +474,7 @@ def sym_gen(seq_len): model = mx.mod.BucketingModule( sym_gen = sym_gen, - default_bucket_key = data_train.default_bucket_key, + default_bucket_key = data_test.default_bucket_key, context = contexts) model.bind(data_test.provide_data, data_test.provide_label, for_training=False) @@ -505,10 +505,10 @@ def sym_gen(seq_len): # mx.metric.Perplexity model.score(data_test, BleuScore(invalid_label), #mx.metric.Perplexity(invalid_label), batch_end_callback=mx.callback.Speedometer(batch_size=args.batch_size, frequent=1, auto_reset=True)) - - for bkt in range(10): - data_val.reset() - data_batch = data_val.next() + # 10 + for bkt in range(0): + data_test.reset() + data_batch = data_test.next() model.forward(data_batch, is_train=None) source = data_batch.data[0] From 99b6cd7a50afdbfeab54371c023d03dc608a0fe9 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Wed, 3 May 2017 21:25:49 +0000 Subject: [PATCH 13/58] WIP --- seq2seq/data/test_iterator.pkl | Bin 0 -> 859434 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 seq2seq/data/test_iterator.pkl diff --git a/seq2seq/data/test_iterator.pkl b/seq2seq/data/test_iterator.pkl new file mode 100644 index 0000000000000000000000000000000000000000..c70312552d9a980b019ee657c4b16fbd823a2aa4 GIT binary patch literal 859434 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

d9-8d)X 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 z


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 a3cWqi6%;y~@-1N<^0MekD!YbD?f(JfT0h Date: Wed, 3 May 2017 22:16:41 +0000 Subject: [PATCH 14/58] Change preprocess to DE-EN --- seq2seq/preprocess_data.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/seq2seq/preprocess_data.py b/seq2seq/preprocess_data.py index b010c0a..fa88c14 100644 --- a/seq2seq/preprocess_data.py +++ b/seq2seq/preprocess_data.py @@ -28,12 +28,12 @@ start = time() dataset = get_s2s_data( - src_train_path= './data/europarl-v7.es-en.en_train_small', - src_valid_path= './data/europarl-v7.es-en.en_valid_small', - src_test_path = './data/europarl-v7.es-en.en_test_small', - targ_train_path= './data/europarl-v7.es-en.es_train_small', - targ_valid_path= './data/europarl-v7.es-en.en_valid_small', - targ_test_path = './data/europarl-v7.es-en.es_test_small' + src_train_path= './data/train.de', + src_valid_path= './data/valid.de', + src_test_path = './data/test.de', + targ_train_path= './data/train.en', + targ_valid_path= './data/valid.en', + targ_test_path = './data/test.en' ) From 604502c3a963f4adb641b16ca6ee3b47f1e2e4e9 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Wed, 3 May 2017 22:22:04 +0000 Subject: [PATCH 15/58] WMT15-DE-EN --- seq2seq/preprocess_data.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/seq2seq/preprocess_data.py b/seq2seq/preprocess_data.py index fa88c14..42aaafb 100644 --- a/seq2seq/preprocess_data.py +++ b/seq2seq/preprocess_data.py @@ -28,12 +28,12 @@ start = time() dataset = get_s2s_data( - src_train_path= './data/train.de', - src_valid_path= './data/valid.de', - src_test_path = './data/test.de', - targ_train_path= './data/train.en', - targ_valid_path= './data/valid.en', - targ_test_path = './data/test.en' + src_train_path= './data/wmt15-de-en/train.de', + src_valid_path= './data/wmt15-de-en/valid.de', + src_test_path = './data/wmt15-de-en/test.de', + targ_train_path= './data/wmt15-de-en/train.en', + targ_valid_path= './data/wmt15-de-en/valid.en', + targ_test_path = './data/wmt15-de-en/test.en' ) From 7fc4e07548fb9b7514f3bc3eb739a8b7e7c7499c Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Wed, 3 May 2017 17:27:54 -0700 Subject: [PATCH 16/58] Fixed validation iterator --- seq2seq/preprocess_data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seq2seq/preprocess_data.py b/seq2seq/preprocess_data.py index 42aaafb..7836dea 100644 --- a/seq2seq/preprocess_data.py +++ b/seq2seq/preprocess_data.py @@ -85,7 +85,7 @@ print("Serializing validation set iterator.") start = time() with open('./data/valid_iterator.pkl', 'wb') as f: - pickle.dump(train_iter, f, pickle.HIGHEST_PROTOCOL) + pickle.dump(valid_iter, f, pickle.HIGHEST_PROTOCOL) valid_ser_duration = time() - start print("\nSerializing validation set iterator took %.4f seconds\n" % valid_ser_duration) From 29f12dad5c6dd8f3aad938714ec4d7dbec5aeebc Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Thu, 4 May 2017 01:24:02 +0000 Subject: [PATCH 17/58] Fixed dataset fetching --- seq2seq/data/test_iterator.pkl | Bin 859434 -> 0 bytes seq2seq/get_opennmt_data.sh | 38 ++++++++------------------------- 2 files changed, 9 insertions(+), 29 deletions(-) delete mode 100644 seq2seq/data/test_iterator.pkl diff --git a/seq2seq/data/test_iterator.pkl b/seq2seq/data/test_iterator.pkl deleted file mode 100644 index c70312552d9a980b019ee657c4b16fbd823a2aa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 859434 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

d9-8d)X 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 z


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 a3cWqi6%;y~@-1N<^0MekD!YbD?f(JfT0h all.de +cat commoncrawl.de-en.de europarl-v7.de-en.de news-commentary-v10.de-en.de > train.de # the test set already officially exists -mv newstest2013.de test.de +mv newstest2013.de valid.de -# do the same thing to English corpora - -cat commoncrawl.de-en.en europarl-v7.de-en.en news-commentary-v10.de-en.en > all.en -mv newstest2013.en test.en - -popd > /dev/null - -echo -e "\nShuffling examples and splitting into training and validation samples" +wget -O test.de https://nlp.stanford.edu/projects/nmt/data/wmt14.en-de/newstest2014.de +# do the same thing to English corpora -# shuffle examples so validation data isn't completely from one -# corpus while training is from another +cat commoncrawl.de-en.en europarl-v7.de-en.en news-commentary-v10.de-en.en > train.en +mv newstest2013.en valid.en -python split_train_valid.py \ - --in-src-data-path ${IN_SRC_DATA_PATH} \ - --in-targ-data-path ${IN_TARG_DATA_PATH} \ - --out-src-train-path ${OUT_SRC_TRAIN_PATH} \ - --out-targ-train-path ${OUT_TARG_TRAIN_PATH} \ - --out-src-valid-path ${OUT_SRC_VALID_PATH} \ - --out-targ-valid-path ${OUT_TARG_VALID_PATH} \ - --validation-fraction 0.2 \ - --shuffle-seed 42 +wget -O test.en https://nlp.stanford.edu/projects/nmt/data/wmt14.en-de/newstest2014.en +popd > /dev/null +echo -e "\nData download complete\n" From 179313a4f5252cdec4cb8c87a3f22c2cb67db19e Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Thu, 4 May 2017 06:59:22 +0000 Subject: [PATCH 18/58] Correction of s2s preprocess data method arg order --- seq2seq/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seq2seq/utils.py b/seq2seq/utils.py index b5f848b..28be52f 100644 --- a/seq2seq/utils.py +++ b/seq2seq/utils.py @@ -91,8 +91,8 @@ def array_to_text(array, inv_vocab): sent.append(inv_vocab[token]) return " ".join(sent) -def get_s2s_data(src_train_path, src_valid_path, targ_train_path, - targ_valid_path, src_test_path, targ_test_path, +def get_s2s_data(src_train_path, src_valid_path, src_test_path, targ_train_path, + targ_valid_path, targ_test_path, reserved_tokens=['', '', '', '']): print("Creating joint source dictionary") From f8d063167ceb13a94265554f954b7ddc09ee1b6c Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Thu, 4 May 2017 14:28:57 +0000 Subject: [PATCH 19/58] Sanity check printing fix --- seq2seq/seq2seq_bucketing.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index 35211bd..3ba23e1 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -171,7 +171,7 @@ def get_data(layout): print("\nEncoded target language sentences:\n") for i in range(5): - print(array_to_text(valid_iter.targ_sent[i], train_iter.inv_targ_vocab)) + print(array_to_text(train_iter.targ_sent[i], train_iter.inv_targ_vocab)) duration = time() - start @@ -506,7 +506,7 @@ def sym_gen(seq_len): model.score(data_test, BleuScore(invalid_label), #mx.metric.Perplexity(invalid_label), batch_end_callback=mx.callback.Speedometer(batch_size=args.batch_size, frequent=1, auto_reset=True)) # 10 - for bkt in range(0): + for bkt in range(10): data_test.reset() data_batch = data_test.next() From 5dc86a124fada88cd54859562b419ff4b8bed4df Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Thu, 4 May 2017 20:13:27 +0000 Subject: [PATCH 20/58] Prevent mem. reallocations --- seq2seq/seq2seq_bucketing.py | 9 +++------ seq2seq/seq2seq_iterator.py | 4 +++- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index 3ba23e1..3a21682 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -148,22 +148,19 @@ def get_data(layout): with open('./data/train_iterator.pkl', 'rb') as f: # _en_de.pkl train_iter = pickle.load(f) - train_iter.initialize() - train_iter.batch_size = args.batch_size + train_iter.initialize(curr_batch_size=args.batch_size) print("\nUnpickling validation iterator") with open('./data/valid_iterator.pkl', 'rb') as f: # _en_de.pkl valid_iter = pickle.load(f) - valid_iter.initialize() - valid_iter.batch_size = args.batch_size + valid_iter.initialize(curr_batch_size=args.batch_size) with open('./data/test_iterator.pkl', 'rb') as f: test_iter = pickle.load(f) - test_iter.initialize() - test_iter.batch_size = args.batch_size + test_iter.initialize(curr_batch_size=args.batch_size) print("\nEncoded source language sentences:\n") for i in range(5): diff --git a/seq2seq/seq2seq_iterator.py b/seq2seq/seq2seq_iterator.py index 3fd096b..b254565 100644 --- a/seq2seq/seq2seq_iterator.py +++ b/seq2seq/seq2seq_iterator.py @@ -102,7 +102,9 @@ def __init__( # else: # raise ValueError("Invalid layout %s: Must by NT (batch major) or TN (time major)") - def initialize(self): + def initialize(self, curr_batch_size=None): + if curr_batch_size: + self.batch_size = curr_batch_size if self.layout == 'TN': self.provide_data = [ mx.io.DataDesc(self.src_data_name, (self.default_bucket_key[0], self.batch_size), layout='TN'), From c26c1c90c0395c2b68e23f211907fff9039cba28 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Thu, 4 May 2017 20:48:12 +0000 Subject: [PATCH 21/58] More realloc fixes --- seq2seq/seq2seq_iterator.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/seq2seq/seq2seq_iterator.py b/seq2seq/seq2seq_iterator.py index b254565..d851f32 100644 --- a/seq2seq/seq2seq_iterator.py +++ b/seq2seq/seq2seq_iterator.py @@ -105,16 +105,17 @@ def __init__( def initialize(self, curr_batch_size=None): if curr_batch_size: self.batch_size = curr_batch_size + self.default_bucket_key = (self.default_bucket_key[0]+1, self.default_bucket_key[1]+1) if self.layout == 'TN': self.provide_data = [ mx.io.DataDesc(self.src_data_name, (self.default_bucket_key[0], self.batch_size), layout='TN'), - mx.io.DataDesc(self.targ_data_name, (self.default_bucket_key[0], self.batch_size), layout='TN') + mx.io.DataDesc(self.targ_data_name, (self.default_bucket_key[1], self.batch_size), layout='TN') ] self.provide_label = [mx.io.DataDesc(self.label_name, (self.default_bucket_key[1], self.batch_size), layout='TN')] elif self.layout == 'NT': self.provide_data = [ (self.src_data_name, (self.batch_size, self.default_bucket_key[0])), - (self.targ_data_name, (self.batch_size, self.default_bucket_key[0]))] + (self.targ_data_name, (self.batch_size, self.default_bucket_key[1]))] self.provide_label = [(self.label_name, (self.batch_size, self.default_bucket_key[1]))] else: raise ValueError("Invalid layout %s: Must by NT (batch major) or TN (time major)") From e36fd44a1e36e6aeed105f6372207092948defcc Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Thu, 4 May 2017 21:56:07 +0000 Subject: [PATCH 22/58] Set all seeds (Python, NumPy and MxNet) --- seq2seq/model_train_gpu.sh | 4 ++-- seq2seq/seq2seq_bucketing.py | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/seq2seq/model_train_gpu.sh b/seq2seq/model_train_gpu.sh index f51ce41..233bc34 100755 --- a/seq2seq/model_train_gpu.sh +++ b/seq2seq/model_train_gpu.sh @@ -1,5 +1,5 @@ #!/bin/bash python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 128 \ - --optimizer adagrad --lr 0.1 --disp-batches 1 --num-epochs 1 --model-prefix trained_model --dropout 0.0 --use-cudnn-cells + --optimizer adagrad --lr 0.141 --disp-batches 100 --num-epochs 1 --model-prefix trained_model \ + --dropout 0.3 --seed 1234 --use-cudnn-cells # --inference-unrolling-for-training -# --use-cudnn-cells diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index 3a21682..414f518 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -72,6 +72,8 @@ parser.add_argument('--inference-unrolling-for-training', action='store_true', help='Feed previous prediction (instead of previous ground truth) into the decoder input during training') +parser.add_argument('--seed', type=int, default=1234, + help='Set random seed for Python, NumPy and MxNet RNGs') #buckets = [32] # buckets = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] @@ -551,6 +553,15 @@ def sym_gen(seq_len): logging.basicConfig(level=logging.DEBUG, format=head) args = parser.parse_args() + + # set random seeds for Python, NumPy and MxNet + import random + seed = args.seed + np.random.seed(seed) + random.seed(seed) + mx.random.seed(seed) + print("Using seed: %d" % seed) + if args.gpus: contexts = [mx.gpu(int(i)) for i in args.gpus.split(',')] else: From b8447cfbb1ab638642734b3544babe1583b39cad Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Fri, 5 May 2017 16:40:02 +0000 Subject: [PATCH 23/58] Report only final average BLEU --- seq2seq/seq2seq_bucketing.py | 112 +++++++++++++++++++---------------- 1 file changed, 61 insertions(+), 51 deletions(-) diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index 414f518..46befd5 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -141,42 +141,46 @@ def _normalize_sequence(length, inputs, layout, merge, in_layout=None): return inputs, axis -def get_data(layout): +def get_data(layout, infer=False): start = time() print("\nUnpickling training iterator") - with open('./data/train_iterator.pkl', 'rb') as f: # _en_de.pkl - train_iter = pickle.load(f) + if not infer: + with open('./data/train_iterator.pkl', 'rb') as f: # _en_de.pkl + train_iter = pickle.load(f) - train_iter.initialize(curr_batch_size=args.batch_size) + train_iter.initialize(curr_batch_size=args.batch_size) - print("\nUnpickling validation iterator") + print("\nUnpickling validation iterator") - with open('./data/valid_iterator.pkl', 'rb') as f: # _en_de.pkl - valid_iter = pickle.load(f) + with open('./data/valid_iterator.pkl', 'rb') as f: # _en_de.pkl + valid_iter = pickle.load(f) - valid_iter.initialize(curr_batch_size=args.batch_size) + valid_iter.initialize(curr_batch_size=args.batch_size) with open('./data/test_iterator.pkl', 'rb') as f: test_iter = pickle.load(f) test_iter.initialize(curr_batch_size=args.batch_size) - print("\nEncoded source language sentences:\n") - for i in range(5): - print(array_to_text(train_iter.src_sent[i], train_iter.inv_src_vocab)) +# print("\nEncoded source language sentences:\n") +# for i in range(5): +# print(array_to_text(train_iter.src_sent[i], train_iter.inv_src_vocab)) - print("\nEncoded target language sentences:\n") - for i in range(5): - print(array_to_text(train_iter.targ_sent[i], train_iter.inv_targ_vocab)) +# print("\nEncoded target language sentences:\n") +# for i in range(5): +# print(array_to_text(train_iter.targ_sent[i], train_iter.inv_targ_vocab)) duration = time() - start print("\nDataset deserialization time: %.2f seconds\n" % duration) - - return train_iter, valid_iter, test_iter, train_iter.src_vocab, train_iter.targ_vocab, train_iter.inv_src_vocab, train_iter.inv_targ_vocab + + if not infer: + return train_iter, valid_iter, test_iter, train_iter.src_vocab, train_iter.targ_vocab, train_iter.inv_src_vocab, train_iter.inv_targ_vocab + else: + return test_iter, test_iter.src_vocab, test_iter.inv_src_vocab, test_iter.targ_vocab, test_iter.inv_targ_vocab # WORK IN PROGRESS !!! def decoder_unroll(decoder, target_embed, targ_vocab, unroll_length, @@ -390,7 +394,7 @@ def get(self): def infer(args): assert args.model_prefix, "Must specifiy path to load from" - _, _, data_test, src_vocab, targ_vocab, inv_src_vocab, inv_targ_vocab = get_data('TN') + data_test, src_vocab, inv_src_vocab, targ_vocab, inv_targ_vocab = get_data('TN', infer=True) print "len(src_vocab) len(targ_vocab)", len(src_vocab), len(targ_vocab) @@ -502,50 +506,56 @@ def sym_gen(seq_len): start = time() # mx.metric.Perplexity - model.score(data_test, BleuScore(invalid_label), #mx.metric.Perplexity(invalid_label), - batch_end_callback=mx.callback.Speedometer(batch_size=args.batch_size, frequent=1, auto_reset=True)) - # 10 - for bkt in range(10): - data_test.reset() - data_batch = data_test.next() +# model.score(data_test, BleuScore(invalid_label), #mx.metric.Perplexity(invalid_label), +# batch_end_callback=mx.callback.Speedometer(batch_size=args.batch_size, frequent=1, auto_reset=True)) - model.forward(data_batch, is_train=None) - source = data_batch.data[0] - preds = model.get_outputs()[0] - labels = data_batch.label[0] + examples = [] + bleu_acc = 0.0 + num_inst = 0 - maxed = mx.ndarray.argmax(data=preds, axis=1) - pred_nparr = maxed.asnumpy() - src_nparr = source.asnumpy() - label_nparr = labels.asnumpy().astype(np.int32) - sent_len, batch_size = np.shape(label_nparr) - pred_nparr = pred_nparr.reshape(sent_len, batch_size).astype(np.int32) + try: + data_test.reset() + smoothing_fn = nltk.translate.bleu_score.SmoothingFunction().method3 - # range should be number of examples in the bucket - for i in range(10): - src_lst = list(reversed(drop_sentinels(src_nparr[:, i].tolist()))) - exp_lst = drop_sentinels(label_nparr[:, i].tolist()) - act_lst = drop_sentinels(pred_nparr[:, i].tolist()) + while True: - # convert source to text - src_txt = array_to_text(src_lst, inv_src_vocab) + data_batch = data_test.next() + model.forward(data_batch, is_train=None) + source = data_batch.data[0] + preds = model.get_outputs()[0] + labels = data_batch.label[0] - # convert expected translation to text - exp_txt = array_to_text(exp_lst, inv_targ_vocab) + maxed = mx.ndarray.argmax(data=preds, axis=1) + pred_nparr = maxed.asnumpy() + src_nparr = source.asnumpy() + label_nparr = labels.asnumpy().astype(np.int32) + sent_len, batch_size = np.shape(label_nparr) + pred_nparr = pred_nparr.reshape(sent_len, batch_size).astype(np.int32) + + for i in range(batch_size): - # convert actual translation to text - act_txt = array_to_text(act_lst, inv_targ_vocab) + src_lst = list(reversed(drop_sentinels(src_nparr[:, i].tolist()))) + exp_lst = drop_sentinels(label_nparr[:, i].tolist()) + act_lst = drop_sentinels(pred_nparr[:, i].tolist()) - print("\n") - print("Source text: %s" % src_txt) - print("Expected translation: %s" % exp_txt) - print("Actual translation: %s" % act_txt) + expected = exp_lst + actual = act_lst + bleu = nltk.translate.bleu_score.sentence_bleu( + references=[expected], hypothesis=actual, weights=(0.25, 0.25, 0.25, 0.25), + smoothing_function = smoothing_fn + ) + bleu_acc += bleu + num_inst += 1 + examples.append((src_lst, exp_lst, act_lst, bleu)) + except StopIteration as se: + pass + + bleu_acc /= num_inst - infer_duration = time() - start - time_per_epoch = infer_duration / args.num_epochs - print("\n\nTime per epoch: %.2f seconds\n\n" % time_per_epoch) + print("\nTest set BLEU score (averaged over all examples): %.3f\n" % bleu_acc) + if __name__ == '__main__': import logging From c140bccf557cc61ca2962ff68ecdc311a513859c Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Fri, 5 May 2017 18:33:42 +0000 Subject: [PATCH 24/58] Print final BLEU and translations --- seq2seq/seq2seq_bucketing.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq/seq2seq_bucketing.py index 46befd5..9146a26 100755 --- a/seq2seq/seq2seq_bucketing.py +++ b/seq2seq/seq2seq_bucketing.py @@ -9,6 +9,7 @@ from mxnet.rnn import LSTMCell, SequentialRNNCell, FusedRNNCell #from rnn_cell import LSTMCell, SequentialRNNCell from itertools import takewhile, dropwhile +from operator import itemgetter from time import time import re @@ -554,8 +555,23 @@ def sym_gen(seq_len): bleu_acc /= num_inst + # Find the top K best translations + examples = sorted(examples, key=itemgetter(3), reverse=True) + + num_examples = 20 + + print("\nSample translations:\n") + for i in range(min(num_examples, len(examples))): + src_lst, exp_lst, act_lst, bleu = examples[i] + src_txt = array_to_text(src_lst, data_test.inv_src_vocab) + exp_txt = array_to_text(exp_lst, data_test.inv_targ_vocab) + act_txt = array_to_text(act_lst, data_test.inv_targ_vocab) + print("\n") + print("Source text: %s" % src_txt) + print("Expected translation: %s" % exp_txt) + print("Actual translation: %s" % act_txt) + print("\n") print("\nTest set BLEU score (averaged over all examples): %.3f\n" % bleu_acc) - if __name__ == '__main__': import logging From 1070919a0ac9bc0e6c1c4e2077d14eced0466814 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Tue, 16 May 2017 19:50:25 +0000 Subject: [PATCH 25/58] Repo cleanup --- Dockerfile | 76 --- LICENSE.txt | 202 ++++++ seq2seq/README.md => README.md | 6 +- seq2seq/__init__.py => __init__.py | 0 .../attention_cell.py => attention_cell.py | 0 ...en_es_nmt_data.sh => get_en_es_nmt_data.sh | 0 ...get_opennmt_data.sh => get_opennmt_data.sh | 0 jupyter_notebook_config.py | 584 ------------------ .../model_infer_gpu.sh => model_infer_gpu.sh | 0 .../model_train_cpu.sh => model_train_cpu.sh | 0 .../model_train_gpu.sh => model_train_gpu.sh | 0 nan.patch | 46 -- .../preprocess_data.py => preprocess_data.py | 0 seq2seq/rnn_cell.py => rnn_cell.py | 0 ...q2seq_bucketing.py => seq2seq_bucketing.py | 0 ...seq2seq_iterator.py => seq2seq_iterator.py | 0 speedometer_reset.patch | 32 - ...lit_train_valid.py => split_train_valid.py | 0 start_container.sh | 3 - train_ptb/README.md | 15 - train_ptb/cudnn_lstm_bucketing.py | 218 ------- train_ptb/get_ptb_data.sh | 14 - train_ptb/lstm_bucketing.py | 107 ---- seq2seq/utils.py => utils.py | 0 24 files changed, 207 insertions(+), 1096 deletions(-) delete mode 100755 Dockerfile create mode 100644 LICENSE.txt rename seq2seq/README.md => README.md (84%) rename seq2seq/__init__.py => __init__.py (100%) rename seq2seq/attention_cell.py => attention_cell.py (100%) rename seq2seq/get_en_es_nmt_data.sh => get_en_es_nmt_data.sh (100%) rename seq2seq/get_opennmt_data.sh => get_opennmt_data.sh (100%) delete mode 100755 jupyter_notebook_config.py rename seq2seq/model_infer_gpu.sh => model_infer_gpu.sh (100%) rename seq2seq/model_train_cpu.sh => model_train_cpu.sh (100%) rename seq2seq/model_train_gpu.sh => model_train_gpu.sh (100%) delete mode 100644 nan.patch rename seq2seq/preprocess_data.py => preprocess_data.py (100%) rename seq2seq/rnn_cell.py => rnn_cell.py (100%) rename seq2seq/seq2seq_bucketing.py => seq2seq_bucketing.py (100%) rename seq2seq/seq2seq_iterator.py => seq2seq_iterator.py (100%) delete mode 100644 speedometer_reset.patch rename seq2seq/split_train_valid.py => split_train_valid.py (100%) delete mode 100755 start_container.sh delete mode 100644 train_ptb/README.md delete mode 100644 train_ptb/cudnn_lstm_bucketing.py delete mode 100755 train_ptb/get_ptb_data.sh delete mode 100644 train_ptb/lstm_bucketing.py rename seq2seq/utils.py => utils.py (100%) diff --git a/Dockerfile b/Dockerfile deleted file mode 100755 index 0624d87..0000000 --- a/Dockerfile +++ /dev/null @@ -1,76 +0,0 @@ -FROM nvidia/cuda:8.0-cudnn5-devel - -RUN apt-get update && apt-get -y upgrade && \ - apt-get install -y \ - build-essential \ - ca-certificates \ - git \ - libopenblas-dev \ - libatlas-base-dev \ - libglib2.0-dev \ - libopencv-dev \ - python-dev \ - python-numpy \ - python-setuptools \ - wget \ - cmake \ - curl \ - python-pip \ - python-dev \ - unzip \ - sudo \ - vim \ - libglib2.0-dev \ - libtiff5-dev \ - libjpeg8-dev \ - zlib1g-dev - -RUN pip install --upgrade numpy scipy matplotlib scikit-learn sympy nltk setuptools requests - -COPY nan.patch /root - -# Build MxNet for Python -RUN cd /root && git clone --recursive https://github.com/dmlc/mxnet.git && cp nan.patch /root/mxnet/ && \ - cd mxnet && git checkout 955f6be6977ca1a27d3e912fd62a08f019dd1f76 && git apply nan.patch && \ - cp make/config.mk . && \ - echo "USE_CUDA=1" >> config.mk && \ - echo "USE_CUDNN=1" >> config.mk && \ - echo "CUDA_ARCH :=" \ - "-gencode arch=compute_35,code=sm_35" \ - "-gencode arch=compute_52,code=sm_52" \ - "-gencode arch=compute_60,code=sm_60" \ - "-gencode arch=compute_61,code=sm_61" \ - "-gencode arch=compute_61,code=compute_61" >> config.mk && \ - echo "USE_CUDA_PATH=/usr/local/cuda" >> config.mk - -ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/local/lib -RUN cd /root/mxnet && make -j$(nproc) && \ - mv lib/libmxnet.so /usr/local/lib && \ - ldconfig && \ - make clean && \ - cd python && \ - pip install -e . - -# Python3 support -RUN apt-get -y install python3-pip -RUN pip3 install numpy - -# Jupyter notebook support -COPY jupyter_notebook_config.py /root/.jupyter/jupyter_notebook_config.py -EXPOSE 8888 - -ENV PYTHONPATH /root/mxnet/python - -# Build MxNet for Scala -#RUN apt-get -y install maven openjdk-8-jdk scala -#RUN cd /root/mxnet && make scalapkg && make scalainstall - -# Build MxNet for R - WIP !!! -#RUN apt-get -y install r-base r-base-dev - -RUN pip install unidecode dill tqdm - -WORKDIR /root/mxnet - - - diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/seq2seq/README.md b/README.md similarity index 84% rename from seq2seq/README.md rename to README.md index 618e0bb..f0c92b6 100644 --- a/seq2seq/README.md +++ b/README.md @@ -38,8 +38,12 @@ How to run the scripts? Credits ------- -Thanks to Eric Xie (@piiswrong) for the attention cell implementation. +Many thanks to Eric Xie (@piiswrong), Sheng Zha (@szha) and Antti-Pekka Hynninen (@ap-hynninen) for valuable input. +License +------- + +This project is licensed under the Apache 2.0 license. See the text of the license [here](https://github.com/mkolod/mxnet_seq2seq/blob/master/LICENSE.txt). > **Note:** diff --git a/seq2seq/__init__.py b/__init__.py similarity index 100% rename from seq2seq/__init__.py rename to __init__.py diff --git a/seq2seq/attention_cell.py b/attention_cell.py similarity index 100% rename from seq2seq/attention_cell.py rename to attention_cell.py diff --git a/seq2seq/get_en_es_nmt_data.sh b/get_en_es_nmt_data.sh similarity index 100% rename from seq2seq/get_en_es_nmt_data.sh rename to get_en_es_nmt_data.sh diff --git a/seq2seq/get_opennmt_data.sh b/get_opennmt_data.sh similarity index 100% rename from seq2seq/get_opennmt_data.sh rename to get_opennmt_data.sh diff --git a/jupyter_notebook_config.py b/jupyter_notebook_config.py deleted file mode 100755 index 646be37..0000000 --- a/jupyter_notebook_config.py +++ /dev/null @@ -1,584 +0,0 @@ -# Configuration file for jupyter-notebook. - -#------------------------------------------------------------------------------ -# Application(SingletonConfigurable) configuration -#------------------------------------------------------------------------------ - -## This is an application. - -## The date format used by logging formatters for %(asctime)s -#c.Application.log_datefmt = '%Y-%m-%d %H:%M:%S' - -## The Logging format template -#c.Application.log_format = '[%(name)s]%(highlevel)s %(message)s' - -## Set the log level by value or name. -#c.Application.log_level = 30 - -#------------------------------------------------------------------------------ -# JupyterApp(Application) configuration -#------------------------------------------------------------------------------ - -## Base class for Jupyter applications - -## Answer yes to any prompts. -#c.JupyterApp.answer_yes = False - -## Full path of a config file. -#c.JupyterApp.config_file = u'' - -## Specify a config file to load. -#c.JupyterApp.config_file_name = u'' - -## Generate default config file. -#c.JupyterApp.generate_config = False - -#------------------------------------------------------------------------------ -# NotebookApp(JupyterApp) configuration -#------------------------------------------------------------------------------ - -## Set the Access-Control-Allow-Credentials: true header -#c.NotebookApp.allow_credentials = False - -## Set the Access-Control-Allow-Origin header -# -# Use '*' to allow any origin to access your server. -# -# Takes precedence over allow_origin_pat. -#c.NotebookApp.allow_origin = '' - -## Use a regular expression for the Access-Control-Allow-Origin header -# -# Requests from an origin matching the expression will get replies with: -# -# Access-Control-Allow-Origin: origin -# -# where `origin` is the origin of the request. -# -# Ignored if allow_origin is set. -#c.NotebookApp.allow_origin_pat = '' - -## DEPRECATED use base_url -#c.NotebookApp.base_project_url = '/' - -## The base URL for the notebook server. -# -# Leading and trailing slashes can be omitted, and will automatically be added. -#c.NotebookApp.base_url = '/' - -## Specify what command to use to invoke a web browser when opening the notebook. -# If not specified, the default browser will be determined by the `webbrowser` -# standard library module, which allows setting of the BROWSER environment -# variable to override it. -#c.NotebookApp.browser = u'' - -## The full path to an SSL/TLS certificate file. -#c.NotebookApp.certfile = u'' - -## The full path to a certificate authority certificate for SSL/TLS client -# authentication. -#c.NotebookApp.client_ca = u'' - -## The config manager class to use -#c.NotebookApp.config_manager_class = 'notebook.services.config.manager.ConfigManager' - -## The notebook manager class to use. -#c.NotebookApp.contents_manager_class = 'notebook.services.contents.filemanager.FileContentsManager' - -## Extra keyword arguments to pass to `set_secure_cookie`. See tornado's -# set_secure_cookie docs for details. -#c.NotebookApp.cookie_options = {} - -## The random bytes used to secure cookies. By default this is a new random -# number every time you start the Notebook. Set it to a value in a config file -# to enable logins to persist across server sessions. -# -# Note: Cookie secrets should be kept private, do not share config files with -# cookie_secret stored in plaintext (you can read the value from a file). -#c.NotebookApp.cookie_secret = '' - -## The file where the cookie secret is stored. -#c.NotebookApp.cookie_secret_file = u'' - -## The default URL to redirect to from `/` -#c.NotebookApp.default_url = '/tree' - -## Disable cross-site-request-forgery protection -# -# Jupyter notebook 4.3.1 introduces protection from cross-site request -# forgeries, requiring API requests to either: -# -# - originate from pages served by this server (validated with XSRF cookie and -# token), or - authenticate with a token -# -# Some anonymous compute resources still desire the ability to run code, -# completely without authentication. These services can disable all -# authentication and security checks, with the full knowledge of what that -# implies. -#c.NotebookApp.disable_check_xsrf = False - -## Whether to enable MathJax for typesetting math/TeX -# -# MathJax is the javascript library Jupyter uses to render math/LaTeX. It is -# very large, so you may want to disable it if you have a slow internet -# connection, or for offline use of the notebook. -# -# When disabled, equations etc. will appear as their untransformed TeX source. -#c.NotebookApp.enable_mathjax = True - -## extra paths to look for Javascript notebook extensions -#c.NotebookApp.extra_nbextensions_path = [] - -## Extra paths to search for serving static files. -# -# This allows adding javascript/css to be available from the notebook server -# machine, or overriding individual files in the IPython -#c.NotebookApp.extra_static_paths = [] - -## Extra paths to search for serving jinja templates. -# -# Can be used to override templates from notebook.templates. -#c.NotebookApp.extra_template_paths = [] - -## -#c.NotebookApp.file_to_run = '' - -## Use minified JS file or not, mainly use during dev to avoid JS recompilation -#c.NotebookApp.ignore_minified_js = False - -## (bytes/sec) Maximum rate at which messages can be sent on iopub before they -# are limited. -#c.NotebookApp.iopub_data_rate_limit = 0 - -## (msg/sec) Maximum rate at which messages can be sent on iopub before they are -# limited. -#c.NotebookApp.iopub_msg_rate_limit = 0 - -## The IP address the notebook server will listen on. -c.NotebookApp.ip = '*' - -## Supply extra arguments that will be passed to Jinja environment. -#c.NotebookApp.jinja_environment_options = {} - -## Extra variables to supply to jinja templates when rendering. -#c.NotebookApp.jinja_template_vars = {} - -## The kernel manager class to use. -#c.NotebookApp.kernel_manager_class = 'notebook.services.kernels.kernelmanager.MappingKernelManager' - -## The kernel spec manager class to use. Should be a subclass of -# `jupyter_client.kernelspec.KernelSpecManager`. -# -# The Api of KernelSpecManager is provisional and might change without warning -# between this version of Jupyter and the next stable one. -#c.NotebookApp.kernel_spec_manager_class = 'jupyter_client.kernelspec.KernelSpecManager' - -## The full path to a private key file for usage with SSL/TLS. -#c.NotebookApp.keyfile = u'' - -## The login handler class to use. -#c.NotebookApp.login_handler_class = 'notebook.auth.login.LoginHandler' - -## The logout handler class to use. -#c.NotebookApp.logout_handler_class = 'notebook.auth.logout.LogoutHandler' - -## A custom url for MathJax.js. Should be in the form of a case-sensitive url to -# MathJax, for example: /static/components/MathJax/MathJax.js -#c.NotebookApp.mathjax_url = '' - -## Dict of Python modules to load as notebook server extensions.Entry values can -# be used to enable and disable the loading ofthe extensions. The extensions -# will be loaded in alphabetical order. -#c.NotebookApp.nbserver_extensions = {} - -## The directory to use for notebooks and kernels. -#c.NotebookApp.notebook_dir = u'' - -## Whether to open in a browser after starting. The specific browser used is -# platform dependent and determined by the python standard library `webbrowser` -# module, unless it is overridden using the --browser (NotebookApp.browser) -# configuration option. -c.NotebookApp.open_browser = False - -## Hashed password to use for web authentication. -# -# To generate, type in a python/IPython shell: -# -# from notebook.auth import passwd; passwd() -# -# The string should be of the form type:salt:hashed-password. -#c.NotebookApp.password = u'' - -## The port the notebook server will listen on. -c.NotebookApp.port = 8888 - -## The number of additional ports to try if the specified port is not available. -#c.NotebookApp.port_retries = 50 - -## DISABLED: use %pylab or %matplotlib in the notebook to enable matplotlib. -#c.NotebookApp.pylab = 'disabled' - -## (sec) Time window used to check the message and data rate limits. -#c.NotebookApp.rate_limit_window = 1.0 - -## Reraise exceptions encountered loading server extensions? -#c.NotebookApp.reraise_server_extension_failures = False - -## DEPRECATED use the nbserver_extensions dict instead -#c.NotebookApp.server_extensions = [] - -## The session manager class to use. -#c.NotebookApp.session_manager_class = 'notebook.services.sessions.sessionmanager.SessionManager' - -## Supply SSL options for the tornado HTTPServer. See the tornado docs for -# details. -#c.NotebookApp.ssl_options = {} - -## Token used for authenticating first-time connections to the server. -# -# When no password is enabled, the default is to generate a new, random token. -# -# Setting to an empty string disables authentication altogether, which is NOT -# RECOMMENDED. -#c.NotebookApp.token = '' - -## Supply overrides for the tornado.web.Application that the Jupyter notebook -# uses. -#c.NotebookApp.tornado_settings = {} - -## Whether to trust or not X-Scheme/X-Forwarded-Proto and X-Real-Ip/X-Forwarded- -# For headerssent by the upstream reverse proxy. Necessary if the proxy handles -# SSL -#c.NotebookApp.trust_xheaders = False - -## DEPRECATED, use tornado_settings -#c.NotebookApp.webapp_settings = {} - -## The base URL for websockets, if it differs from the HTTP server (hint: it -# almost certainly doesn't). -# -# Should be in the form of an HTTP origin: ws[s]://hostname[:port] -#c.NotebookApp.websocket_url = '' - -#------------------------------------------------------------------------------ -# ConnectionFileMixin(LoggingConfigurable) configuration -#------------------------------------------------------------------------------ - -## Mixin for configurable classes that work with connection files - -## JSON file in which to store connection info [default: kernel-.json] -# -# This file will contain the IP, ports, and authentication key needed to connect -# clients to this kernel. By default, this file will be created in the security -# dir of the current profile, but can be specified by absolute path. -#c.ConnectionFileMixin.connection_file = '' - -## set the control (ROUTER) port [default: random] -#c.ConnectionFileMixin.control_port = 0 - -## set the heartbeat port [default: random] -#c.ConnectionFileMixin.hb_port = 0 - -## set the iopub (PUB) port [default: random] -#c.ConnectionFileMixin.iopub_port = 0 - -## Set the kernel's IP address [default localhost]. If the IP address is -# something other than localhost, then Consoles on other machines will be able -# to connect to the Kernel, so be careful! -#c.ConnectionFileMixin.ip = u'' - -## set the shell (ROUTER) port [default: random] -#c.ConnectionFileMixin.shell_port = 0 - -## set the stdin (ROUTER) port [default: random] -#c.ConnectionFileMixin.stdin_port = 0 - -## -#c.ConnectionFileMixin.transport = 'tcp' - -#------------------------------------------------------------------------------ -# KernelManager(ConnectionFileMixin) configuration -#------------------------------------------------------------------------------ - -## Manages a single kernel in a subprocess on this host. -# -# This version starts kernels with Popen. - -## Should we autorestart the kernel if it dies. -#c.KernelManager.autorestart = True - -## DEPRECATED: Use kernel_name instead. -# -# The Popen Command to launch the kernel. Override this if you have a custom -# kernel. If kernel_cmd is specified in a configuration file, Jupyter does not -# pass any arguments to the kernel, because it cannot make any assumptions about -# the arguments that the kernel understands. In particular, this means that the -# kernel does not receive the option --debug if it given on the Jupyter command -# line. -#c.KernelManager.kernel_cmd = [] - -## Time to wait for a kernel to terminate before killing it, in seconds. -#c.KernelManager.shutdown_wait_time = 5.0 - -#------------------------------------------------------------------------------ -# Session(Configurable) configuration -#------------------------------------------------------------------------------ - -## Object for handling serialization and sending of messages. -# -# The Session object handles building messages and sending them with ZMQ sockets -# or ZMQStream objects. Objects can communicate with each other over the -# network via Session objects, and only need to work with the dict-based IPython -# message spec. The Session will handle serialization/deserialization, security, -# and metadata. -# -# Sessions support configurable serialization via packer/unpacker traits, and -# signing with HMAC digests via the key/keyfile traits. -# -# Parameters ---------- -# -# debug : bool -# whether to trigger extra debugging statements -# packer/unpacker : str : 'json', 'pickle' or import_string -# importstrings for methods to serialize message parts. If just -# 'json' or 'pickle', predefined JSON and pickle packers will be used. -# Otherwise, the entire importstring must be used. -# -# The functions must accept at least valid JSON input, and output *bytes*. -# -# For example, to use msgpack: -# packer = 'msgpack.packb', unpacker='msgpack.unpackb' -# pack/unpack : callables -# You can also set the pack/unpack callables for serialization directly. -# session : bytes -# the ID of this Session object. The default is to generate a new UUID. -# username : unicode -# username added to message headers. The default is to ask the OS. -# key : bytes -# The key used to initialize an HMAC signature. If unset, messages -# will not be signed or checked. -# keyfile : filepath -# The file containing a key. If this is set, `key` will be initialized -# to the contents of the file. - -## Threshold (in bytes) beyond which an object's buffer should be extracted to -# avoid pickling. -#c.Session.buffer_threshold = 1024 - -## Whether to check PID to protect against calls after fork. -# -# This check can be disabled if fork-safety is handled elsewhere. -#c.Session.check_pid = True - -## Threshold (in bytes) beyond which a buffer should be sent without copying. -#c.Session.copy_threshold = 65536 - -## Debug output in the Session -#c.Session.debug = False - -## The maximum number of digests to remember. -# -# The digest history will be culled when it exceeds this value. -#c.Session.digest_history_size = 65536 - -## The maximum number of items for a container to be introspected for custom -# serialization. Containers larger than this are pickled outright. -#c.Session.item_threshold = 64 - -## execution key, for signing messages. -#c.Session.key = '' - -## path to file containing execution key. -#c.Session.keyfile = '' - -## Metadata dictionary, which serves as the default top-level metadata dict for -# each message. -#c.Session.metadata = {} - -## The name of the packer for serializing messages. Should be one of 'json', -# 'pickle', or an import name for a custom callable serializer. -#c.Session.packer = 'json' - -## The UUID identifying this session. -#c.Session.session = u'' - -## The digest scheme used to construct the message signatures. Must have the form -# 'hmac-HASH'. -#c.Session.signature_scheme = 'hmac-sha256' - -## The name of the unpacker for unserializing messages. Only used with custom -# functions for `packer`. -#c.Session.unpacker = 'json' - -## Username for the Session. Default is your system username. -#c.Session.username = u'username' - -#------------------------------------------------------------------------------ -# MultiKernelManager(LoggingConfigurable) configuration -#------------------------------------------------------------------------------ - -## A class for managing multiple kernels. - -## The name of the default kernel to start -#c.MultiKernelManager.default_kernel_name = 'python2' - -## The kernel manager class. This is configurable to allow subclassing of the -# KernelManager for customized behavior. -#c.MultiKernelManager.kernel_manager_class = 'jupyter_client.ioloop.IOLoopKernelManager' - -#------------------------------------------------------------------------------ -# MappingKernelManager(MultiKernelManager) configuration -#------------------------------------------------------------------------------ - -## A KernelManager that handles notebook mapping and HTTP error handling - -## -#c.MappingKernelManager.root_dir = u'' - -#------------------------------------------------------------------------------ -# ContentsManager(LoggingConfigurable) configuration -#------------------------------------------------------------------------------ - -## Base class for serving files and directories. -# -# This serves any text or binary file, as well as directories, with special -# handling for JSON notebook documents. -# -# Most APIs take a path argument, which is always an API-style unicode path, and -# always refers to a directory. -# -# - unicode, not url-escaped -# - '/'-separated -# - leading and trailing '/' will be stripped -# - if unspecified, path defaults to '', -# indicating the root path. - -## -#c.ContentsManager.checkpoints = None - -## -#c.ContentsManager.checkpoints_class = 'notebook.services.contents.checkpoints.Checkpoints' - -## -#c.ContentsManager.checkpoints_kwargs = {} - -## Glob patterns to hide in file and directory listings. -#c.ContentsManager.hide_globs = [u'__pycache__', '*.pyc', '*.pyo', '.DS_Store', '*.so', '*.dylib', '*~'] - -## Python callable or importstring thereof -# -# To be called on a contents model prior to save. -# -# This can be used to process the structure, such as removing notebook outputs -# or other side effects that should not be saved. -# -# It will be called as (all arguments passed by keyword):: -# -# hook(path=path, model=model, contents_manager=self) -# -# - model: the model to be saved. Includes file contents. -# Modifying this dict will affect the file that is stored. -# - path: the API path of the save destination -# - contents_manager: this ContentsManager instance -#c.ContentsManager.pre_save_hook = None - -## The base name used when creating untitled directories. -#c.ContentsManager.untitled_directory = 'Untitled Folder' - -## The base name used when creating untitled files. -#c.ContentsManager.untitled_file = 'untitled' - -## The base name used when creating untitled notebooks. -#c.ContentsManager.untitled_notebook = 'Untitled' - -#------------------------------------------------------------------------------ -# FileManagerMixin(Configurable) configuration -#------------------------------------------------------------------------------ - -## Mixin for ContentsAPI classes that interact with the filesystem. -# -# Provides facilities for reading, writing, and copying both notebooks and -# generic files. -# -# Shared by FileContentsManager and FileCheckpoints. -# -# Note ---- Classes using this mixin must provide the following attributes: -# -# root_dir : unicode -# A directory against against which API-style paths are to be resolved. -# -# log : logging.Logger - -## By default notebooks are saved on disk on a temporary file and then if -# succefully written, it replaces the old ones. This procedure, namely -# 'atomic_writing', causes some bugs on file system whitout operation order -# enforcement (like some networked fs). If set to False, the new notebook is -# written directly on the old one which could fail (eg: full filesystem or quota -# ) -#c.FileManagerMixin.use_atomic_writing = True - -#------------------------------------------------------------------------------ -# FileContentsManager(FileManagerMixin,ContentsManager) configuration -#------------------------------------------------------------------------------ - -## Python callable or importstring thereof -# -# to be called on the path of a file just saved. -# -# This can be used to process the file on disk, such as converting the notebook -# to a script or HTML via nbconvert. -# -# It will be called as (all arguments passed by keyword):: -# -# hook(os_path=os_path, model=model, contents_manager=instance) -# -# - path: the filesystem path to the file just written - model: the model -# representing the file - contents_manager: this ContentsManager instance -#c.FileContentsManager.post_save_hook = None - -## -#c.FileContentsManager.root_dir = u'' - -## DEPRECATED, use post_save_hook. Will be removed in Notebook 5.0 -#c.FileContentsManager.save_script = False - -#------------------------------------------------------------------------------ -# NotebookNotary(LoggingConfigurable) configuration -#------------------------------------------------------------------------------ - -## A class for computing and verifying notebook signatures. - -## The hashing algorithm used to sign notebooks. -#c.NotebookNotary.algorithm = 'sha256' - -## The sqlite file in which to store notebook signatures. By default, this will -# be in your Jupyter data directory. You can set it to ':memory:' to disable -# sqlite writing to the filesystem. -#c.NotebookNotary.db_file = u'' - -## The secret key with which notebooks are signed. -#c.NotebookNotary.secret = '' - -## The file where the secret key is stored. -#c.NotebookNotary.secret_file = u'' - -## A callable returning the storage backend for notebook signatures. The default -# uses an SQLite database. -#c.NotebookNotary.store_factory = traitlets.Undefined - -#------------------------------------------------------------------------------ -# KernelSpecManager(LoggingConfigurable) configuration -#------------------------------------------------------------------------------ - -## If there is no Python kernelspec registered and the IPython kernel is -# available, ensure it is added to the spec list. -#c.KernelSpecManager.ensure_native_kernel = True - -## The kernel spec class. This is configurable to allow subclassing of the -# KernelSpecManager for customized behavior. -#c.KernelSpecManager.kernel_spec_class = 'jupyter_client.kernelspec.KernelSpec' - -## Whitelist of allowed kernel names. -# -# By default, all installed kernels are allowed. -#c.KernelSpecManager.whitelist = set([]) diff --git a/seq2seq/model_infer_gpu.sh b/model_infer_gpu.sh similarity index 100% rename from seq2seq/model_infer_gpu.sh rename to model_infer_gpu.sh diff --git a/seq2seq/model_train_cpu.sh b/model_train_cpu.sh similarity index 100% rename from seq2seq/model_train_cpu.sh rename to model_train_cpu.sh diff --git a/seq2seq/model_train_gpu.sh b/model_train_gpu.sh similarity index 100% rename from seq2seq/model_train_gpu.sh rename to model_train_gpu.sh diff --git a/nan.patch b/nan.patch deleted file mode 100644 index e858c1e..0000000 --- a/nan.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/python/mxnet/callback.py b/python/mxnet/callback.py -index 396f5a1..544eab2 100644 ---- a/python/mxnet/callback.py -+++ b/python/mxnet/callback.py -@@ -96,13 +96,16 @@ class Speedometer(object): - frequent: int - How many batches between calculations. - Defaults to calculating & logging every 50 batches. -+ auto_reset : bool -+ Reset the metric after each log. - """ -- def __init__(self, batch_size, frequent=50): -+ def __init__(self, batch_size, frequent=50, auto_reset=False): - self.batch_size = batch_size - self.frequent = frequent - self.init = False - self.tic = 0 - self.last_count = 0 -+ self.auto_reset = auto_reset - - def __call__(self, param): - """Callback to Show speed.""" -@@ -116,7 +119,8 @@ class Speedometer(object): - speed = self.frequent * self.batch_size / (time.time() - self.tic) - if param.eval_metric is not None: - name_value = param.eval_metric.get_name_value() -- param.eval_metric.reset() -+ if self.auto_reset: -+ param.eval_metric.reset() - for name, value in name_value: - logging.info('Epoch[%d] Batch [%d]\tSpeed: %.2f samples/sec\tTrain-%s=%f', - param.epoch, count, speed, name, value) -diff --git a/python/mxnet/metric.py b/python/mxnet/metric.py -index 2870fab..8a8b974 100644 ---- a/python/mxnet/metric.py -+++ b/python/mxnet/metric.py -@@ -265,7 +265,8 @@ class Perplexity(EvalMetric): - self.num_inst += num - - def get(self): -- return (self.name, math.exp(self.sum_metric/self.num_inst)) -+ num = self.num_inst if self.num_inst > 0 else float('nan') -+ return (self.name, math.exp(self.sum_metric/num)) - - #################### - # REGRESSION METRICS diff --git a/seq2seq/preprocess_data.py b/preprocess_data.py similarity index 100% rename from seq2seq/preprocess_data.py rename to preprocess_data.py diff --git a/seq2seq/rnn_cell.py b/rnn_cell.py similarity index 100% rename from seq2seq/rnn_cell.py rename to rnn_cell.py diff --git a/seq2seq/seq2seq_bucketing.py b/seq2seq_bucketing.py similarity index 100% rename from seq2seq/seq2seq_bucketing.py rename to seq2seq_bucketing.py diff --git a/seq2seq/seq2seq_iterator.py b/seq2seq_iterator.py similarity index 100% rename from seq2seq/seq2seq_iterator.py rename to seq2seq_iterator.py diff --git a/speedometer_reset.patch b/speedometer_reset.patch deleted file mode 100644 index f284fd2..0000000 --- a/speedometer_reset.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff --git a/python/mxnet/callback.py b/python/mxnet/callback.py -index 396f5a1..544eab2 100644 ---- a/python/mxnet/callback.py -+++ b/python/mxnet/callback.py -@@ -96,13 +96,16 @@ class Speedometer(object): - frequent: int - How many batches between calculations. - Defaults to calculating & logging every 50 batches. -+ auto_reset : bool -+ Reset the metric after each log. - """ -- def __init__(self, batch_size, frequent=50): -+ def __init__(self, batch_size, frequent=50, auto_reset=False): - self.batch_size = batch_size - self.frequent = frequent - self.init = False - self.tic = 0 - self.last_count = 0 -+ self.auto_reset = auto_reset - - def __call__(self, param): - """Callback to Show speed.""" -@@ -116,7 +119,8 @@ class Speedometer(object): - speed = self.frequent * self.batch_size / (time.time() - self.tic) - if param.eval_metric is not None: - name_value = param.eval_metric.get_name_value() -- param.eval_metric.reset() -+ if self.auto_reset: -+ param.eval_metric.reset() - for name, value in name_value: - logging.info('Epoch[%d] Batch [%d]\tSpeed: %.2f samples/sec\tTrain-%s=%f', - param.epoch, count, speed, name, value) diff --git a/seq2seq/split_train_valid.py b/split_train_valid.py similarity index 100% rename from seq2seq/split_train_valid.py rename to split_train_valid.py diff --git a/start_container.sh b/start_container.sh deleted file mode 100755 index 685abfc..0000000 --- a/start_container.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -nvidia-docker run --rm -it -v `pwd`:/mxnet_seq2seq -p 8888:8888 mxnet_seq2seq diff --git a/train_ptb/README.md b/train_ptb/README.md deleted file mode 100644 index 8a6f29d..0000000 --- a/train_ptb/README.md +++ /dev/null @@ -1,15 +0,0 @@ -RNN Example -=========== -This folder contains RNN examples using high level mxnet.rnn interface. - -Examples using low level symbol interface have been deprecated and moved to old/ - -## Data -Run `get_ptb_data.sh` to download PenTreeBank data. - -## Python - -- [lstm_bucketing.py](lstm_bucketing.py) PennTreeBank language model by using LSTM - -Performance Note: -More ```MXNET_GPU_WORKER_NTHREADS``` may lead to better performance. For setting ```MXNET_GPU_WORKER_NTHREADS```, please refer to [Environment Variables](https://mxnet.readthedocs.org/en/latest/how_to/env_var.html). diff --git a/train_ptb/cudnn_lstm_bucketing.py b/train_ptb/cudnn_lstm_bucketing.py deleted file mode 100644 index 8e0ad9d..0000000 --- a/train_ptb/cudnn_lstm_bucketing.py +++ /dev/null @@ -1,218 +0,0 @@ -import numpy as np -import mxnet as mx -import argparse - -parser = argparse.ArgumentParser(description="Train RNN on Penn Tree Bank", - formatter_class=argparse.ArgumentDefaultsHelpFormatter) -parser.add_argument('--test', default=False, action='store_true', - help='whether to do testing instead of training') -parser.add_argument('--model-prefix', type=str, default=None, - help='path to save/load model') -parser.add_argument('--load-epoch', type=int, default=0, - help='load from epoch') -parser.add_argument('--num-layers', type=int, default=2, - help='number of stacked RNN layers') -parser.add_argument('--num-hidden', type=int, default=200, - help='hidden layer size') -parser.add_argument('--num-embed', type=int, default=200, - help='embedding layer size') -parser.add_argument('--bidirectional', type=bool, default=False, - help='whether to use bidirectional layers') -parser.add_argument('--gpus', type=str, - help='list of gpus to run, e.g. 0 or 0,2,5. empty means using cpu. ' \ - 'Increase batch size when using multiple gpus for best performance.') -parser.add_argument('--kv-store', type=str, default='device', - help='key-value store type') -parser.add_argument('--num-epochs', type=int, default=25, - help='max num of epochs') -parser.add_argument('--lr', type=float, default=0.01, - help='initial learning rate') -parser.add_argument('--optimizer', type=str, default='sgd', - help='the optimizer type') -parser.add_argument('--mom', type=float, default=0.0, - help='momentum for sgd') -parser.add_argument('--wd', type=float, default=0.00001, - help='weight decay for sgd') -parser.add_argument('--batch-size', type=int, default=32, - help='the batch size.') -parser.add_argument('--disp-batches', type=int, default=50, - help='show progress for every n batches') -# When training a deep, complex model, it's recommended to stack fused RNN cells (one -# layer per cell) together instead of one with all layers. The reason is that fused RNN -# cells doesn't set gradients to be ready until the computation for the entire layer is -# completed. Breaking a multi-layer fused RNN cell into several one-layer ones allows -# gradients to be processed ealier. This reduces communication overhead, especially with -# multiple GPUs. -parser.add_argument('--stack-rnn', default=False, - help='stack fused RNN cells to reduce communication overhead') -parser.add_argument('--dropout', type=float, default='0.0', - help='dropout keep probability') - -#buckets = [32] -buckets = [10, 20, 30, 40, 50, 60] - -start_label = 1 -invalid_label = 0 - -def tokenize_text(fname, vocab=None, invalid_label=-1, start_label=0): - lines = open(fname).readlines() - lines = [filter(None, i.split(' ')) for i in lines] - sentences, vocab = mx.rnn.encode_sentences(lines, vocab=vocab, invalid_label=invalid_label, start_label=start_label) - return sentences, vocab - -def get_data(layout): - train_sent, vocab = tokenize_text("./data/ptb.train.txt", start_label=start_label, - invalid_label=invalid_label) - val_sent, _ = tokenize_text("./data/ptb.test.txt", vocab=vocab, start_label=start_label, - invalid_label=invalid_label) - - data_train = mx.rnn.BucketSentenceIter(train_sent, args.batch_size, buckets=buckets, - invalid_label=invalid_label, layout=layout) - data_val = mx.rnn.BucketSentenceIter(val_sent, args.batch_size, buckets=buckets, - invalid_label=invalid_label, layout=layout) - return data_train, data_val, vocab - - -def train(args): - data_train, data_val, vocab = get_data('TN') - if args.stack_rnn: - stack = mx.rnn.SequentialRNNCell() - for layer in range(args.num_layers): - dropout = 0.0 - if layer < (args.num_layers - 1): - dropout = args.dropout - stack.add(mx.rnn.FusedRNNCell(args.num_hidden, num_layers=1, - mode='lstm', prefix='lstm_%d'%layer, dropout=dropout, - bidirectional=args.bidirectional)) - cell = stack - else: - cell = mx.rnn.FusedRNNCell(args.num_hidden, num_layers=args.num_layers, dropout=args.dropout, - mode='lstm', bidirectional=args.bidirectional) - - def sym_gen(seq_len): - data = mx.sym.Variable('data') - label = mx.sym.Variable('softmax_label') - embed = mx.sym.Embedding(data=data, input_dim=len(vocab), output_dim=args.num_embed,name='embed') - - output, _ = cell.unroll(seq_len, inputs=embed, merge_outputs=True, layout='TNC') - - pred = mx.sym.Reshape(output, - shape=(-1, args.num_hidden*(1+args.bidirectional))) - pred = mx.sym.FullyConnected(data=pred, num_hidden=len(vocab), name='pred') - - label = mx.sym.Reshape(label, shape=(-1,)) - pred = mx.sym.SoftmaxOutput(data=pred, label=label, name='softmax') - - return pred, ('data',), ('softmax_label',) - - if args.gpus: - contexts = [mx.gpu(int(i)) for i in args.gpus.split(',')] - else: - contexts = mx.cpu(0) - - model = mx.mod.BucketingModule( - sym_gen = sym_gen, - default_bucket_key = data_train.default_bucket_key, - context = contexts) - - if args.load_epoch: - _, arg_params, aux_params = mx.rnn.load_rnn_checkpoint( - cell, args.model_prefix, args.load_epoch) - else: - arg_params = None - aux_params = None - - opt_params = { - 'learning_rate': args.lr, - 'wd': args.wd - } - - if args.optimizer not in ['adadelta', 'adagrad', 'adam', 'rmsprop']: - opt_params['momentum'] = args.mom - - model.fit( - train_data = data_train, - eval_data = data_val, - eval_metric = mx.metric.Perplexity(invalid_label), - kvstore = args.kv_store, - optimizer = args.optimizer, - optimizer_params = opt_params, - initializer = mx.init.Xavier(factor_type="in", magnitude=2.34), - arg_params = arg_params, - aux_params = aux_params, - begin_epoch = args.load_epoch, - num_epoch = args.num_epochs, - batch_end_callback = mx.callback.Speedometer(args.batch_size, args.disp_batches), - epoch_end_callback = mx.rnn.do_rnn_checkpoint(cell, args.model_prefix, 1) - if args.model_prefix else None) - -def test(args): - assert args.model_prefix, "Must specifiy path to load from" - _, data_val, vocab = get_data('NT') - - if not args.stack_rnn: - stack = mx.rnn.FusedRNNCell(args.num_hidden, num_layers=args.num_layers, - mode='lstm', bidirectional=args.bidirectional).unfuse() - else: - stack = mx.rnn.SequentialRNNCell() - for i in range(args.num_layers): - cell = mx.rnn.LSTMCell(num_hidden=args.num_hidden, prefix='lstm_%dl0_'%i) - if args.bidirectional: - cell = mx.rnn.BidirectionalCell( - cell, - mx.rnn.LSTMCell(num_hidden=args.num_hidden, prefix='lstm_%dr0_'%i), - output_prefix='bi_lstm_%d'%i) - stack.add(cell) - - def sym_gen(seq_len): - data = mx.sym.Variable('data') - label = mx.sym.Variable('softmax_label') - embed = mx.sym.Embedding(data=data, input_dim=len(vocab), - output_dim=args.num_embed, name='embed') - - stack.reset() - outputs, states = stack.unroll(seq_len, inputs=embed, merge_outputs=True) - - pred = mx.sym.Reshape(outputs, - shape=(-1, args.num_hidden*(1+args.bidirectional))) - pred = mx.sym.FullyConnected(data=pred, num_hidden=len(vocab), name='pred') - - label = mx.sym.Reshape(label, shape=(-1,)) - pred = mx.sym.SoftmaxOutput(data=pred, label=label, name='softmax') - - return pred, ('data',), ('softmax_label',) - - if args.gpus: - contexts = [mx.gpu(int(i)) for i in args.gpus.split(',')] - else: - contexts = mx.cpu(0) - - model = mx.mod.BucketingModule( - sym_gen = sym_gen, - default_bucket_key = data_val.default_bucket_key, - context = contexts) - model.bind(data_val.provide_data, data_val.provide_label, for_training=False) - - # note here we load using SequentialRNNCell instead of FusedRNNCell. - _, arg_params, aux_params = mx.rnn.load_rnn_checkpoint(stack, args.model_prefix, args.load_epoch) - model.set_params(arg_params, aux_params) - - model.score(data_val, mx.metric.Perplexity(invalid_label), - batch_end_callback=mx.callback.Speedometer(args.batch_size, 5)) - -if __name__ == '__main__': - import logging - head = '%(asctime)-15s %(message)s' - logging.basicConfig(level=logging.DEBUG, format=head) - - args = parser.parse_args() - - if args.num_layers >= 4 and len(args.gpus.split(',')) >= 4 and not args.stack_rnn: - print('WARNING: stack-rnn is recommended to train complex model on multiple GPUs') - - if args.test: - # Demonstrates how to load a model trained with CuDNN RNN and predict - # with non-fused MXNet symbol - test(args) - else: - train(args) diff --git a/train_ptb/get_ptb_data.sh b/train_ptb/get_ptb_data.sh deleted file mode 100755 index 1ec009a..0000000 --- a/train_ptb/get_ptb_data.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash - -RNN_DIR=$(cd `dirname $0`; pwd) -DATA_DIR="${RNN_DIR}/data/" - -if [[ ! -d "${DATA_DIR}" ]]; then - echo "${DATA_DIR} doesn't exist, will create one"; - mkdir -p ${DATA_DIR} -fi - -wget -P ${DATA_DIR} https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/ptb/ptb.train.txt; -wget -P ${DATA_DIR} https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/ptb/ptb.valid.txt; -wget -P ${DATA_DIR} https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/ptb/ptb.test.txt; -wget -P ${DATA_DIR} https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/tinyshakespeare/input.txt; diff --git a/train_ptb/lstm_bucketing.py b/train_ptb/lstm_bucketing.py deleted file mode 100644 index 4bc934a..0000000 --- a/train_ptb/lstm_bucketing.py +++ /dev/null @@ -1,107 +0,0 @@ -import numpy as np -import mxnet as mx -import argparse - -parser = argparse.ArgumentParser(description="Train RNN on Penn Tree Bank", - formatter_class=argparse.ArgumentDefaultsHelpFormatter) -parser.add_argument('--num-layers', type=int, default=2, - help='number of stacked RNN layers') -parser.add_argument('--num-hidden', type=int, default=200, - help='hidden layer size') -parser.add_argument('--num-embed', type=int, default=200, - help='embedding layer size') -parser.add_argument('--gpus', type=str, - help='list of gpus to run, e.g. 0 or 0,2,5. empty means using cpu. ' \ - 'Increase batch size when using multiple gpus for best performance.') -parser.add_argument('--kv-store', type=str, default='device', - help='key-value store type') -parser.add_argument('--num-epochs', type=int, default=25, - help='max num of epochs') -parser.add_argument('--lr', type=float, default=0.01, - help='initial learning rate') -parser.add_argument('--optimizer', type=str, default='sgd', - help='the optimizer type') -parser.add_argument('--mom', type=float, default=0.0, - help='momentum for sgd') -parser.add_argument('--wd', type=float, default=0.00001, - help='weight decay for sgd') -parser.add_argument('--batch-size', type=int, default=32, - help='the batch size.') -parser.add_argument('--disp-batches', type=int, default=50, - help='show progress for every n batches') - - -def tokenize_text(fname, vocab=None, invalid_label=-1, start_label=0): - lines = open(fname).readlines() - lines = [filter(None, i.split(' ')) for i in lines] - sentences, vocab = mx.rnn.encode_sentences(lines, vocab=vocab, invalid_label=invalid_label, - start_label=start_label) - return sentences, vocab - - -if __name__ == '__main__': - import logging - head = '%(asctime)-15s %(message)s' - logging.basicConfig(level=logging.DEBUG, format=head) - - args = parser.parse_args() - - #buckets = [] - buckets = [10, 20, 30, 40, 50, 60] - - start_label = 1 - invalid_label = 0 - - train_sent, vocab = tokenize_text("./data/ptb.train.txt", start_label=start_label, - invalid_label=invalid_label) - val_sent, _ = tokenize_text("./data/ptb.test.txt", vocab=vocab, start_label=start_label, - invalid_label=invalid_label) - - data_train = mx.rnn.BucketSentenceIter(train_sent, args.batch_size, buckets=buckets, - invalid_label=invalid_label) - data_val = mx.rnn.BucketSentenceIter(val_sent, args.batch_size, buckets=buckets, - invalid_label=invalid_label) - - stack = mx.rnn.SequentialRNNCell() - for i in range(args.num_layers): - stack.add(mx.rnn.LSTMCell(num_hidden=args.num_hidden, prefix='lstm_l%d_'%i)) - - def sym_gen(seq_len): - data = mx.sym.Variable('data') - label = mx.sym.Variable('softmax_label') - embed = mx.sym.Embedding(data=data, input_dim=len(vocab), - output_dim=args.num_embed, name='embed') - - stack.reset() - outputs, states = stack.unroll(seq_len, inputs=embed, merge_outputs=True) - - pred = mx.sym.Reshape(outputs, shape=(-1, args.num_hidden)) - pred = mx.sym.FullyConnected(data=pred, num_hidden=len(vocab), name='pred') - - label = mx.sym.Reshape(label, shape=(-1,)) - pred = mx.sym.SoftmaxOutput(data=pred, label=label, name='softmax') - - return pred, ('data',), ('softmax_label',) - - if args.gpus: - contexts = [mx.gpu(int(i)) for i in args.gpus.split(',')] - else: - contexts = mx.cpu(0) - - model = mx.mod.BucketingModule( - sym_gen = sym_gen, - default_bucket_key = data_train.default_bucket_key, - context = contexts) - - model.fit( - train_data = data_train, - eval_data = data_val, - eval_metric = mx.metric.Perplexity(invalid_label), - kvstore = args.kv_store, - optimizer = args.optimizer, - optimizer_params = { 'learning_rate': args.lr, - 'momentum': args.mom, - 'wd': args.wd }, - initializer = mx.init.Xavier(factor_type="in", magnitude=2.34), - num_epoch = args.num_epochs, - batch_end_callback = mx.callback.Speedometer(args.batch_size, args.disp_batches)) diff --git a/seq2seq/utils.py b/utils.py similarity index 100% rename from seq2seq/utils.py rename to utils.py From c57d8920e2d7a07faa6c518f427b3dd2d90ef7a3 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Tue, 16 May 2017 19:52:38 +0000 Subject: [PATCH 26/58] Remove rnn_cell --- rnn_cell.py | 951 ---------------------------------------------------- 1 file changed, 951 deletions(-) delete mode 100644 rnn_cell.py diff --git a/rnn_cell.py b/rnn_cell.py deleted file mode 100644 index f93072f..0000000 --- a/rnn_cell.py +++ /dev/null @@ -1,951 +0,0 @@ -# coding: utf-8 -# pylint: disable=no-member, invalid-name, protected-access, no-self-use -# pylint: disable=too-many-branches, too-many-arguments, no-self-use -# pylint: disable=too-many-lines -"""Definition of various recurrent neural network cells.""" -from __future__ import print_function - -import warnings - -import mxnet as mx -from mxnet import symbol, init, ndarray, _symbol_internal -from mxnet.base import string_types, numeric_types - - -def _cells_state_shape(cells): - return sum([c.state_shape for c in cells], []) - -def _cells_begin_state(cells, **kwargs): - return sum([c.begin_state(**kwargs) for c in cells], []) - -def _cells_unpack_weights(cells, args): - for cell in cells: - args = cell.unpack_weights(args) - return args - -def _cells_pack_weights(cells, args): - for cell in cells: - args = cell.pack_weights(args) - return args - -def _normalize_sequence(length, inputs, layout, merge, in_layout=None): - assert inputs is not None, \ - "unroll(inputs=None) has been deprecated. " \ - "Please create input variables outside unroll." - - axis = layout.find('T') - in_axis = in_layout.find('T') if in_layout is not None else axis - if isinstance(inputs, symbol.Symbol): - if merge is False: - assert len(inputs.list_outputs()) == 1, \ - "unroll doesn't allow grouped symbol as input. Please convert " \ - "to list with list(inputs) first or let unroll handle splitting." - inputs = list(symbol.split(inputs, axis=in_axis, num_outputs=length, - squeeze_axis=1)) - else: - assert length is None or len(inputs) == length - if merge is True: - inputs = [symbol.expand_dims(i, axis=axis) for i in inputs] - inputs = symbol.Concat(*inputs, dim=axis) - in_axis = axis - - if isinstance(inputs, symbol.Symbol) and axis != in_axis: - inputs = symbol.swapaxes(inputs, dim0=axis, dim1=in_axis) - - return inputs, axis - - -class RNNParams(object): - """Container for holding variables. - Used by RNN cells for parameter sharing between cells. - - Parameters - ---------- - prefix : str - All variables' name created by this container will - be prepended with prefix - """ - def __init__(self, prefix=''): - self._prefix = prefix - self._params = {} - - def get(self, name, **kwargs): - """Get a variable with name or create a new one if missing. - - Parameters - ---------- - name : str - name of the variable - **kwargs : - more arguments that's passed to symbol.Variable - """ - name = self._prefix + name - if name not in self._params: - self._params[name] = symbol.Variable(name, **kwargs) - return self._params[name] - - -class BaseRNNCell(object): - """Abstract base class for RNN cells - - Parameters - ---------- - prefix : str - prefix for name of layers - (and name of weight if params is None) - params : RNNParams or None - container for weight sharing between cells. - created if None. - """ - def __init__(self, prefix='', params=None): - if params is None: - params = RNNParams(prefix) - self._own_params = True - else: - self._own_params = False - self._prefix = prefix - self._params = params - self._modified = False - - self.reset() - - def reset(self): - """Reset before re-using the cell for another graph""" - self._init_counter = -1 - self._counter = -1 - - def __call__(self, inputs, states): - """Construct symbol for one step of RNN. - - Parameters - ---------- - inputs : sym.Variable - input symbol, 2D, batch * num_units - states : sym.Variable - state from previous step or begin_state(). - - Returns - ------- - output : Symbol - output symbol - states : Symbol - state to next step of RNN. - """ - raise NotImplementedError() - - @property - def params(self): - """Parameters of this cell""" - self._own_params = False - return self._params - - @property - def state_shape(self): - """shape(s) of states""" - raise NotImplementedError() - - @property - def _gate_names(self): - """name(s) of gates""" - return () - - def begin_state(self, func=symbol.zeros, **kwargs): - """Initial state for this cell. - - Parameters - ---------- - func : callable, default symbol.zeros - Function for creating initial state. Can be symbol.zeros, - symbol.uniform, symbol.Variable etc. - Use symbol.Variable if you want to directly - feed input as states. - **kwargs : - more keyword arguments passed to func. For example - mean, std, dtype, etc. - - Returns - ------- - states : nested list of Symbol - starting states for first RNN step - """ - assert not self._modified, \ - "After applying modifier cells (e.g. DropoutCell) the base " \ - "cell cannot be called directly. Call the modifier cell instead." - states = [] - for shape in self.state_shape: - self._init_counter += 1 - if shape is None: - state = func(name='%sbegin_state_%d'%(self._prefix, self._init_counter), - **kwargs) - else: - state = func(name='%sbegin_state_%d'%(self._prefix, self._init_counter), - shape=shape, **kwargs) - states.append(state) - return states - - def unpack_weights(self, args): - """Unpack fused weight matrices into separate - weight matrices - - Parameters - ---------- - args : dict of str -> NDArray - dictionary containing packed weights. - usually from Module.get_output() - - Returns - ------- - args : dict of str -> NDArray - dictionary with weights associated to - this cell unpacked. - """ - args = args.copy() - if not self._gate_names: - return args - h = self._num_hidden - for group_name in ['i2h', 'h2h']: - weight = args.pop('%s%s_weight'%(self._prefix, group_name)) - bias = args.pop('%s%s_bias' % (self._prefix, group_name)) - for j, gate in enumerate(self._gate_names): - wname = '%s%s%s_weight' % (self._prefix, group_name, gate) - args[wname] = weight[j*h:(j+1)*h].copy() - bname = '%s%s%s_bias' % (self._prefix, group_name, gate) - args[bname] = bias[j*h:(j+1)*h].copy() - return args - - def pack_weights(self, args): - """Pack separate weight matrices into fused - weight. - - Parameters - ---------- - args : dict of str -> NDArray - dictionary containing unpacked weights. - - Returns - ------- - args : dict of str -> NDArray - dictionary with weights associated to - this cell packed. - """ - args = args.copy() - if not self._gate_names: - return args - for group_name in ['i2h', 'h2h']: - weight = [] - bias = [] - for gate in self._gate_names: - wname = '%s%s%s_weight'%(self._prefix, group_name, gate) - weight.append(args.pop(wname)) - bname = '%s%s%s_bias'%(self._prefix, group_name, gate) - bias.append(args.pop(bname)) - args['%s%s_weight'%(self._prefix, group_name)] = ndarray.concatenate(weight) - args['%s%s_bias'%(self._prefix, group_name)] = ndarray.concatenate(bias) - return args - - def unroll(self, length, inputs, begin_state=None, layout='NTC', merge_outputs=None): - """Unroll an RNN cell across time steps. - - Parameters - ---------- - length : int - number of steps to unroll - inputs : Symbol, list of Symbol, or None - if inputs is a single Symbol (usually the output - of Embedding symbol), it should have shape - (batch_size, length, ...) if layout == 'NTC', - or (length, batch_size, ...) if layout == 'TNC'. - - If inputs is a list of symbols (usually output of - previous unroll), they should all have shape - (batch_size, ...). - begin_state : nested list of Symbol - input states. Created by begin_state() - or output state of another cell. Created - from begin_state() if None. - layout : str - layout of input symbol. Only used if inputs - is a single Symbol. - merge_outputs : bool - If False, return outputs as a list of Symbols. - If True, concatenate output across time steps - and return a single symbol with shape - (batch_size, length, ...) if layout == 'NTC', - or (length, batch_size, ...) if layout == 'TNC'. - If None, output whatever is faster - - Returns - ------- - outputs : list of Symbol - output symbols. - states : Symbol or nested list of Symbol - has the same structure as begin_state() - """ - self.reset() - - inputs, _ = _normalize_sequence(length, inputs, layout, False) - if begin_state is None: - begin_state = self.begin_state() - - states = begin_state - outputs = [] - for i in range(length): - output, states = self(inputs[i], states) - outputs.append(output) - - outputs, _ = _normalize_sequence(length, outputs, layout, merge_outputs) - - return outputs, states - - #pylint: disable=no-self-use - def _get_activation(self, inputs, activation, **kwargs): - """Get activation function. Convert if is string""" - if isinstance(activation, string_types): - return symbol.Activation(inputs, act_type=activation, **kwargs) - else: - return activation(inputs, **kwargs) - - -class RNNCell(BaseRNNCell): - """Simple recurrent neural network cell - - Parameters - ---------- - num_hidden : int - number of units in output symbol - activation : str or Symbol, default 'tanh' - type of activation function - prefix : str, default 'rnn_' - prefix for name of layers - (and name of weight if params is None) - params : RNNParams or None - container for weight sharing between cells. - created if None. - """ - def __init__(self, num_hidden, activation='tanh', prefix='rnn_', params=None): - super(RNNCell, self).__init__(prefix=prefix, params=params) - self._num_hidden = num_hidden - self._activation = activation - self._iW = self.params.get('i2h_weight') - self._iB = self.params.get('i2h_bias') - self._hW = self.params.get('h2h_weight') - self._hB = self.params.get('h2h_bias') - - @property - def state_shape(self): - return [(0, self._num_hidden)] - - @property - def _gate_names(self): - return ('',) - - def __call__(self, inputs, states): - self._counter += 1 - name = '%st%d_'%(self._prefix, self._counter) - i2h = symbol.FullyConnected(data=inputs, weight=self._iW, bias=self._iB, - num_hidden=self._num_hidden, - name='%si2h'%name) - h2h = symbol.FullyConnected(data=states[0], weight=self._hW, bias=self._hB, - num_hidden=self._num_hidden, - name='%sh2h'%name) - output = self._get_activation(i2h + h2h, self._activation, - name='%sout'%name) - - return output, [output] - - -class LSTMCell(BaseRNNCell): - """Long-Short Term Memory (LSTM) network cell. - - Parameters - ---------- - num_hidden : int - number of units in output symbol - prefix : str, default 'rnn_' - prefix for name of layers - (and name of weight if params is None) - params : RNNParams or None - container for weight sharing between cells. - created if None. - forget_bias : bias added to forget gate, default 1.0. - Jozefowicz et al. 2015 recommends setting this to 1.0 - """ - def __init__(self, num_hidden, prefix='lstm_', params=None, forget_bias=1.0): - super(LSTMCell, self).__init__(prefix=prefix, params=params) - - self._num_hidden = num_hidden - self._iW = self.params.get('i2h_weight') - self._hW = self.params.get('h2h_weight') - # we add the forget_bias to i2h_bias, this adds the bias to the forget gate activation - self._iB = self.params.get('i2h_bias', init=init.LSTMBias(forget_bias=forget_bias)) - self._hB = self.params.get('h2h_bias') - - @property - def state_shape(self): - return [(0, self._num_hidden), (0, self._num_hidden)] - - @property - def _gate_names(self): - return ['_i', '_f', '_c', '_o'] - - def __call__(self, inputs, states): - self._counter += 1 - name = '%st%d_'%(self._prefix, self._counter) - i2h = symbol.FullyConnected(data=inputs, weight=self._iW, bias=self._iB, - num_hidden=self._num_hidden*4, - name='%si2h'%name) - h2h = symbol.FullyConnected(data=states[0], weight=self._hW, bias=self._hB, - num_hidden=self._num_hidden*4, - name='%sh2h'%name) - gates = i2h + h2h - slice_gates = symbol.SliceChannel(gates, num_outputs=4, - name="%sslice"%name) - in_gate = symbol.Activation(slice_gates[0], act_type="sigmoid", - name='%si'%name) - forget_gate = symbol.Activation(slice_gates[1], act_type="sigmoid", - name='%sf'%name) - in_transform = symbol.Activation(slice_gates[2], act_type="tanh", - name='%sc'%name) - out_gate = symbol.Activation(slice_gates[3], act_type="sigmoid", - name='%so'%name) - next_c = symbol._internal._plus(forget_gate * states[1], in_gate * in_transform, - name='%sstate'%name) - next_h = symbol._internal._mul(out_gate, symbol.Activation(next_c, act_type="tanh"), - name='%sout'%name) - - return next_h, [next_h, next_c] - - -class GRUCell(BaseRNNCell): - """Gated Rectified Unit (GRU) network cell. - Note: this is an implementation of the cuDNN version of GRUs - (slight modification compared to Cho et al. 2014). - - Parameters - ---------- - num_hidden : int - number of units in output symbol - prefix : str, default 'gru_' - prefix for name of layers - (and name of weight if params is None) - params : RNNParams or None - container for weight sharing between cells. - created if None. - """ - def __init__(self, num_hidden, prefix='gru_', params=None): - super(GRUCell, self).__init__(prefix=prefix, params=params) - self._num_hidden = num_hidden - self._iW = self.params.get("i2h_weight") - self._iB = self.params.get("i2h_bias") - self._hW = self.params.get("h2h_weight") - self._hB = self.params.get("h2h_bias") - - @property - def state_shape(self): - return [(0, self._num_hidden)] - - @property - def _gate_names(self): - return ['_r', '_z', '_o'] - - def __call__(self, inputs, states): - # pylint: disable=too-many-locals - self._counter += 1 - - seq_idx = self._counter - name = '%st%d_' % (self._prefix, seq_idx) - prev_state_h = states[0] - - i2h = symbol.FullyConnected(data=inputs, - weight=self._iW, - bias=self._iB, - num_hidden=self._num_hidden * 3, - name="%s_i2h" % name) - h2h = symbol.FullyConnected(data=prev_state_h, - weight=self._hW, - bias=self._hB, - num_hidden=self._num_hidden * 3, - name="%s_h2h" % name) - - i2h_r, i2h_z, i2h = symbol.SliceChannel(i2h, num_outputs=3, name="%s_i2h_slice" % name) - h2h_r, h2h_z, h2h = symbol.SliceChannel(h2h, num_outputs=3, name="%s_h2h_slice" % name) - - reset_gate = symbol.Activation(i2h_r + h2h_r, act_type="sigmoid", - name="%s_r_act" % name) - update_gate = symbol.Activation(i2h_z + h2h_z, act_type="sigmoid", - name="%s_z_act" % name) - - next_h_tmp = symbol.Activation(i2h + reset_gate * h2h, act_type="tanh", - name="%s_h_act" % name) - - next_h = symbol._internal._plus((1. - update_gate) * next_h_tmp, update_gate * prev_state_h, - name='%sout' % name) - - return next_h, [next_h] - - -class FusedRNNCell(BaseRNNCell): - """Fusing RNN layers across time step into one kernel. - Improves speed but is less flexible. Currently only - supported if using cuDNN on GPU. - - Parameters - ---------- - """ - def __init__(self, num_hidden, num_layers=1, mode='lstm', bidirectional=False, - dropout=0., get_next_state=False, forget_bias=1.0, - prefix=None, params=None): - if prefix is None: - prefix = '%s_'%mode - super(FusedRNNCell, self).__init__(prefix=prefix, params=params) - self._num_hidden = num_hidden - self._num_layers = num_layers - self._mode = mode - self._bidirectional = bidirectional - self._dropout = dropout - self._get_next_state = get_next_state - self._directions = ['l', 'r'] if bidirectional else ['l'] - - initializer = init.FusedRNN(None, num_hidden, num_layers, mode, - bidirectional, forget_bias) - self._parameter = self.params.get('parameters', init=initializer) - - @property - def state_shape(self): - b = self._bidirectional + 1 - n = (self._mode == 'lstm') + 1 - return [(b*self._num_layers, 0, self._num_hidden)]*n - - @property - def _gate_names(self): - return {'rnn_relu': [''], - 'rnn_tanh': [''], - 'lstm': ['_i', '_f', '_c', '_o'], - 'gru': ['_r', '_z', '_o']}[self._mode] - - @property - def _num_gates(self): - return len(self._gate_names) - - def _slice_weights(self, arr, li, lh): - """slice fused rnn weights""" - args = {} - gate_names = self._gate_names - directions = self._directions - - b = len(directions) - p = 0 - for layer in range(self._num_layers): - for direction in directions: - for gate in gate_names: - name = '%s%s%d_i2h%s_weight'%(self._prefix, direction, layer, gate) - if layer > 0: - size = b*lh*lh - args[name] = arr[p:p+size].reshape((lh, b*lh)) - else: - size = li*lh - args[name] = arr[p:p+size].reshape((lh, li)) - p += size - for gate in gate_names: - name = '%s%s%d_h2h%s_weight'%(self._prefix, direction, layer, gate) - size = lh**2 - args[name] = arr[p:p+size].reshape((lh, lh)) - p += size - - for layer in range(self._num_layers): - for direction in directions: - for gate in gate_names: - name = '%s%s%d_i2h%s_bias'%(self._prefix, direction, layer, gate) - args[name] = arr[p:p+lh] - p += lh - for gate in gate_names: - name = '%s%s%d_h2h%s_bias'%(self._prefix, direction, layer, gate) - args[name] = arr[p:p+lh] - p += lh - - assert p == arr.size, "Invalid parameters size for FusedRNNCell" - return args - - def unpack_weights(self, args): - args = args.copy() - arr = args.pop(self._parameter.name) - b = len(self._directions) - m = self._num_gates - h = self._num_hidden - num_input = arr.size//b//h//m - (self._num_layers - 1)*(h+b*h+2) - h - 2 - - nargs = self._slice_weights(arr, num_input, self._num_hidden) - args.update({name: nd.copy() for name, nd in nargs.items()}) - return args - - def pack_weights(self, args): - args = args.copy() - b = self._bidirectional + 1 - m = self._num_gates - c = self._gate_names - h = self._num_hidden - w0 = args['%sl0_i2h%s_weight'%(self._prefix, c[0])] - num_input = w0.shape[1] - total = (num_input+h+2)*h*m*b + (self._num_layers-1)*m*h*(h+b*h+2)*b - - arr = ndarray.zeros((total,), ctx=w0.context, dtype=w0.dtype) - for name, nd in self._slice_weights(arr, num_input, h).items(): - nd[:] = args.pop(name) - args[self._parameter.name] = arr - return args - - def __call__(self, inputs, states): - raise NotImplementedError("FusedRNNCell cannot be stepped. Please use unroll") - - def unroll(self, length, inputs, begin_state=None, layout='NTC', merge_outputs=None): - self.reset() - - inputs, axis = _normalize_sequence(length, inputs, layout, True) - if axis == 1: - warnings.warn("NTC layout detected. Consider using " - "TNC for FusedRNNCell for faster speed") - inputs = symbol.swapaxes(inputs, dim1=0, dim2=1) - else: - assert axis == 0, "Unsupported layout %s"%layout - if begin_state is None: - begin_state = self.begin_state() - - states = begin_state - if self._mode == 'lstm': - states = {'state': states[0], 'state_cell': states[1]} # pylint: disable=redefined-variable-type - else: - states = {'state': states[0]} - - rnn = symbol.RNN(data=inputs, parameters=self._parameter, - state_size=self._num_hidden, num_layers=self._num_layers, - bidirectional=self._bidirectional, p=self._dropout, - state_outputs=self._get_next_state, - mode=self._mode, name=self._prefix+'rnn', - **states) - - if not self._get_next_state: - outputs, states = rnn, [] - elif self._mode == 'lstm': - outputs, states = rnn[0], [rnn[1], rnn[2]] - else: - outputs, states = rnn[0], [rnn[1]] - - if axis == 1: - outputs = symbol.swapaxes(outputs, dim1=0, dim2=1) - - outputs, _ = _normalize_sequence(length, outputs, layout, merge_outputs) - - return outputs, states - - def unfuse(self): - """Unfuse the fused RNN in to a stack of rnn cells. - - Returns - ------- - cell : SequentialRNNCell - unfused cell that can be used for stepping, and can run on CPU. - """ - stack = SequentialRNNCell() - get_cell = {'rnn_relu': lambda cell_prefix: RNNCell(self._num_hidden, - activation='relu', - prefix=cell_prefix), - 'rnn_tanh': lambda cell_prefix: RNNCell(self._num_hidden, - activation='tanh', - prefix=cell_prefix), - 'lstm': lambda cell_prefix: LSTMCell(self._num_hidden, - prefix=cell_prefix), - 'gru': lambda cell_prefix: GRUCell(self._num_hidden, - prefix=cell_prefix)}[self._mode] - for i in range(self._num_layers): - if self._bidirectional: - stack.add(BidirectionalCell( - get_cell('%sl%d_'%(self._prefix, i)), - get_cell('%sr%d_'%(self._prefix, i)), - output_prefix='%sbi_l%d_'%(self._prefix, i))) - else: - stack.add(get_cell('%sl%d_'%(self._prefix, i))) - - if self._dropout > 0 and i != self._num_layers - 1: - stack.add(DropoutCell(self._dropout, prefix='%s_dropout%d_'%(self._prefix, i))) - - return stack - - -class SequentialRNNCell(BaseRNNCell): - """Sequantially stacking multiple RNN cells - - Parameters - ---------- - params : RNNParams or None - container for weight sharing between cells. - created if None. - """ - def __init__(self, params=None): - super(SequentialRNNCell, self).__init__(prefix='', params=params) - self._override_cell_params = params is not None - self._cells = [] - - def add(self, cell): - """Append a cell into the stack. - - Parameters - ---------- - cell : rnn cell - """ - self._cells.append(cell) - if self._override_cell_params: - assert cell._own_params, \ - "Either specify params for SequentialRNNCell " \ - "or child cells, not both." - cell.params._params.update(self.params._params) - self.params._params.update(cell.params._params) - - @property - def state_shape(self): - return _cells_state_shape(self._cells) - - def begin_state(self, **kwargs): - assert not self._modified, \ - "After applying modifier cells (e.g. ZoneoutCell) the base " \ - "cell cannot be called directly. Call the modifier cell instead." - return _cells_begin_state(self._cells, **kwargs) - - def unpack_weights(self, args): - return _cells_unpack_weights(self._cells, args) - - def pack_weights(self, args): - return _cells_pack_weights(self._cells, args) - - def __call__(self, inputs, states): - self._counter += 1 - next_states = [] - p = 0 - for cell in self._cells: - assert not isinstance(cell, BidirectionalCell) - n = len(cell.state_shape) - state = states[p:p+n] - p += n - inputs, state = cell(inputs, state) - next_states.append(state) - return inputs, sum(next_states, []) - - def unroll(self, length, inputs, begin_state=None, layout='NTC', merge_outputs=None): - self.reset() - - num_cells = len(self._cells) - if begin_state is None: - begin_state = self.begin_state() - - p = 0 - next_states = [] - for i, cell in enumerate(self._cells): - n = len(cell.state_shape) - states = begin_state[p:p+n] - p += n - inputs, states = cell.unroll(length, inputs=inputs, begin_state=states, layout=layout, - merge_outputs=None if i < num_cells-1 else merge_outputs) - next_states.extend(states) - - return inputs, next_states - - -class DropoutCell(BaseRNNCell): - """Apply dropout on input. - - Parameters - ---------- - dropout : float - percentage of elements to drop out, which - is 1 - percentage to retain. - """ - def __init__(self, dropout, prefix='dropout_', params=None): - super(DropoutCell, self).__init__(prefix, params) - assert isinstance(dropout, numeric_types), "dropout probability must be a number" - self.dropout = dropout - - @property - def state_shape(self): - return [] - - def __call__(self, inputs, states): - if self.dropout > 0: - inputs = symbol.Dropout(data=inputs, p=self.dropout) - return inputs, states - - def unroll(self, length, inputs, begin_state=None, layout='NTC', merge_outputs=None): - self.reset() - inputs, _ = _normalize_sequence(length, inputs, layout, merge_outputs) - if isinstance(inputs, symbol.Symbol): - return self(inputs, []) - else: - return super(DropoutCell, self).unroll( - length, inputs, begin_state=begin_state, layout=layout, - merge_outputs=merge_outputs) - - -class ModifierCell(BaseRNNCell): - """Base class for modifier cells. A modifier - cell takes a base cell, apply modifications - on it (e.g. Zoneout), and returns a new cell. - - After applying modifiers the base cell should - no longer be called directly. The modifer cell - should be used instead. - """ - def __init__(self, base_cell): - super(ModifierCell, self).__init__() - base_cell._modified = True - self.base_cell = base_cell - - @property - def params(self): - self._own_params = False - return self.base_cell.params - - @property - def state_shape(self): - return self.base_cell.state_shape - - def begin_state(self, init_sym=symbol.zeros, **kwargs): - assert not self._modified, \ - "After applying modifier cells (e.g. DropoutCell) the base " \ - "cell cannot be called directly. Call the modifier cell instead." - self.base_cell._modified = False - begin = self.base_cell.begin_state(init_sym, **kwargs) - self.base_cell._modified = True - return begin - - def unpack_weights(self, args): - return self.base_cell.unpack_weights(args) - - def pack_weights(self, args): - return self.base_cell.pack_weights(args) - - def __call__(self, inputs, states): - raise NotImplementedError - - -class ZoneoutCell(ModifierCell): - """Apply Zoneout on base cell""" - def __init__(self, base_cell, zoneout_outputs=0., zoneout_states=0.): - assert not isinstance(base_cell, FusedRNNCell), \ - "FusedRNNCell doesn't support zoneout. " \ - "Please unfuse first." - assert not isinstance(base_cell, BidirectionalCell), \ - "BidirectionalCell doesn't support zoneout since it doesn't support step. " \ - "Please add ZoneoutCell to the cells underneath instead." - assert not isinstance(base_cell, SequentialRNNCell) or not base_cell._bidirectional, \ - "Bidirectional SequentialRNNCell doesn't support zoneout. " \ - "Please add ZoneoutCell to the cells underneath instead." - super(ZoneoutCell, self).__init__(base_cell) - self.zoneout_outputs = zoneout_outputs - self.zoneout_states = zoneout_states - self.prev_output = None - - def reset(self): - super(ZoneoutCell, self).reset() - self.prev_output = None - - def __call__(self, inputs, states): - cell, p_outputs, p_states = self.base_cell, self.zoneout_outputs, self.zoneout_states - next_output, next_states = cell(inputs, states) - mask = (lambda p, like: - symbol.Dropout(_symbol_internal._identity_with_attr_like_rhs(symbol.ones((0, 0)), - like), - p=p)) - - prev_output = self.prev_output if self.prev_output else symbol.zeros((0, 0)) - - output = (symbol.where(mask(p_outputs, next_output), next_output, prev_output) - if p_outputs != 0. else next_output) - states = ([symbol.where(mask(p_states, new_s), new_s, old_s) for new_s, old_s in - zip(next_states, states)] if p_states != 0. else next_states) - - self.prev_output = output - - return output, states - - - -class BidirectionalCell(BaseRNNCell): - """Bidirectional RNN cell - - Parameters - ---------- - l_cell : BaseRNNCell - cell for forward unrolling - r_cell : BaseRNNCell - cell for backward unrolling - output_prefix : str, default 'bi_' - prefix for name of output - """ - def __init__(self, l_cell, r_cell, params=None, output_prefix='bi_'): - super(BidirectionalCell, self).__init__('', params=params) - self._override_cell_params = params is not None - self._cells = [l_cell, r_cell] - self._output_prefix = output_prefix - - def unpack_weights(self, args): - return _cells_unpack_weights(self._cells, args) - - def pack_weights(self, args): - return _cells_pack_weights(self._cells, args) - - def __call__(self, inputs, states): - raise NotImplementedError("Bidirectional cannot be stepped. Please use unroll") - - @property - def state_shape(self): - return _cells_state_shape(self._cells) - - def begin_state(self, **kwargs): - assert not self._modified, \ - "After applying modifier cells (e.g. DropoutCell) the base " \ - "cell cannot be called directly. Call the modifier cell instead." - return _cells_begin_state(self._cells, **kwargs) - - def unroll(self, length, inputs, begin_state=None, layout='NTC', merge_outputs=None): - self.reset() - - inputs, axis = _normalize_sequence(length, inputs, layout, False) - if begin_state is None: - begin_state = self.begin_state() - - states = begin_state - l_cell, r_cell = self._cells - l_outputs, l_states = l_cell.unroll(length, inputs=inputs, - begin_state=states[:len(l_cell.state_shape)], - layout=layout, merge_outputs=merge_outputs) - r_outputs, r_states = r_cell.unroll(length, - inputs=list(reversed(inputs)), - begin_state=states[len(l_cell.state_shape):], - layout=layout, merge_outputs=merge_outputs) - - if merge_outputs is None: - merge_outputs = (isinstance(l_outputs, symbol.Symbol) - and isinstance(r_outputs, symbol.Symbol)) - if not merge_outputs: - if isinstance(l_outputs, symbol.Symbol): - l_outputs = list(symbol.SliceChannel(l_outputs, axis=axis, - num_outputs=length, squeeze_axis=1)) - if isinstance(r_outputs, symbol.Symbol): - r_outputs = list(symbol.SliceChannel(r_outputs, axis=axis, - num_outputs=length, squeeze_axis=1)) - - if merge_outputs: - l_outputs = [l_outputs] - r_outputs = [symbol.reverse(r_outputs, axis=axis)] - else: - r_outputs = list(reversed(r_outputs)) - - outputs = [symbol.Concat(l_o, r_o, dim=1+merge_outputs, - name=('%sout'%(self._output_prefix) if merge_outputs - else '%st%d'%(self._output_prefix, i))) - for i, l_o, r_o in - zip(range(len(l_outputs)), l_outputs, r_outputs)] - - if merge_outputs: - outputs = outputs[0] - - states = [l_states, r_states] - return outputs, states From 00c13e411e26f303eaadb6cb0e96b97f7618642d Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Tue, 16 May 2017 22:20:34 +0000 Subject: [PATCH 27/58] WIP --- model_train_gpu_alt_unrolling.sh | 4 +++ seq2seq_bucketing.py | 48 ++++++++++++++++---------------- 2 files changed, 28 insertions(+), 24 deletions(-) create mode 100755 model_train_gpu_alt_unrolling.sh diff --git a/model_train_gpu_alt_unrolling.sh b/model_train_gpu_alt_unrolling.sh new file mode 100755 index 0000000..c6be5b1 --- /dev/null +++ b/model_train_gpu_alt_unrolling.sh @@ -0,0 +1,4 @@ +#!/bin/bash +python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 128 \ + --optimizer adagrad --lr 0.141 --disp-batches 100 --num-epochs 1 --model-prefix trained_model \ + --dropout 0.3 --seed 1234 --inference-unrolling-for-training diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 9146a26..587b756 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -183,10 +183,9 @@ def get_data(layout, infer=False): else: return test_iter, test_iter.src_vocab, test_iter.inv_src_vocab, test_iter.targ_vocab, test_iter.inv_targ_vocab -# WORK IN PROGRESS !!! -def decoder_unroll(decoder, target_embed, targ_vocab, unroll_length, - go_symbol, - fc_weight, fc_bias, targ_em_weight, + +def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unroll_length, + go_symbol, fc_weight, fc_bias, attention_fc_weight, attention_fc_bias, targ_em_weight, begin_state=None, layout='TNC', merge_outputs=None): decoder.reset() @@ -202,10 +201,6 @@ def decoder_unroll(decoder, target_embed, targ_vocab, unroll_length, embed = inputs[0] - # NEW 1 -# fc_weight = mx.sym.Variable('fc_weight') -# fc_bias = mx.sym.Variable('fc_bias') -# targ_em_weight = mx.sym.Variable('targ_em_weight') for i in range(0, unroll_length): output, states = decoder(embed, states) outputs.append(output) @@ -214,11 +209,6 @@ def decoder_unroll(decoder, target_embed, targ_vocab, unroll_length, embed = mx.sym.Embedding(data=am, weight=targ_em_weight, input_dim=len(targ_vocab), output_dim=args.num_embed, name='decoder_embed%d_'%i) - # NEW 2 -# for i in range(0, unroll_length): -# embed, states = decoder(embed, states) -# outputs.append(embed) - outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) return outputs, states @@ -230,6 +220,9 @@ def train(args): data_train, data_val, _, src_vocab, targ_vocab, inv_src_vocab, inv_targ_vocab = get_data('TN') print "len(src_vocab) len(targ_vocab)", len(src_vocab), len(targ_vocab) + attention_fc_weight = mx.sym.Variable('attention_fc_weight') + attention_fc_bias = mx.sym.Variable('attention_fc_bias') + fc_weight = mx.sym.Variable('fc_weight') fc_bias = mx.sym.Variable('fc_bias') targ_em_weight = mx.sym.Variable('targ_embed_weight') @@ -244,7 +237,7 @@ def train(args): encoder.add(LSTMCell(args.num_hidden, prefix='rnn_encoder%d_' % i)) if i < args.num_layers - 1 and args.dropout > 0.0: encoder.add(mx.rnn.DropoutCell(args.dropout, prefix='rnn_encoder%d_' % i)) - encoder.add(AttentionEncoderCell()) +# encoder.add(AttentionEncoderCell()) decoder = mx.rnn.SequentialRNNCell() @@ -256,7 +249,7 @@ def train(args): decoder.add(LSTMCell(args.num_hidden, prefix=('rnn_decoder%d_' % i))) if i < args.num_layers - 1 and args.dropout > 0.0: decoder.add(mx.rnn.DropoutCell(args.dropout, prefix='rnn_decoder%d_' % i)) - decoder.add(DotAttentionCell()) +# decoder.add(DotAttentionCell()) def sym_gen(seq_len): src_data = mx.sym.Variable('src_data') @@ -274,14 +267,16 @@ def sym_gen(seq_len): enc_seq_len, dec_seq_len = seq_len layout = 'TNC' - _, states = encoder.unroll(enc_seq_len, inputs=src_embed, layout=layout) + encoder_outputs, encoder_states = encoder.unroll(enc_seq_len, inputs=src_embed, layout=layout) # This should be based on EOS or max seq len for inference, but here we unroll to the target length # TODO: fix symbol if args.inference_unrolling_for_training: - outputs, _ = decoder_unroll(decoder, targ_embed, targ_vocab, dec_seq_len, 0, fc_weight, fc_bias, targ_em_weight, begin_state=states, layout='TNC', merge_outputs=True) + outputs, _ = infer_decoder_unroll(decoder, encoder_outputs, targ_embed, targ_vocab, dec_seq_len, 0, fc_weight, fc_bias, + attention_fc_weight, attention_fc_bias, + targ_em_weight, begin_state=encoder_states, layout='TNC', merge_outputs=True) else: - outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=states, layout=layout, merge_outputs=True) + outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=encoder_states, layout=layout, merge_outputs=True) # NEW rs = mx.sym.Reshape(outputs, shape=(-1, args.num_hidden), name='sym_gen_reshape1') @@ -399,6 +394,9 @@ def infer(args): print "len(src_vocab) len(targ_vocab)", len(src_vocab), len(targ_vocab) + attention_fc_weight = mx.sym.Variable('attention_fc_weight') + attention_fc_bias = mx.sym.Variable('attention_fc_bias') + fc_weight = mx.sym.Variable('fc_weight') fc_bias = mx.sym.Variable('fc_bias') targ_em_weight = mx.sym.Variable('targ_embed_weight') @@ -415,7 +413,7 @@ def infer(args): if i < args.num_layers - 1 and args.dropout > 0.0: encoder.add(mx.rnn.DropoutCell(args.dropout, prefix='rnn_encoder%d_' % i)) - encoder.add(AttentionEncoderCell()) +# encoder.add(AttentionEncoderCell()) if args.use_cudnn_cells: decoder = mx.rnn.FusedRNNCell(args.num_hidden, num_layers=args.num_layers, @@ -429,7 +427,7 @@ def infer(args): if i < args.num_layers - 1 and args.dropout > 0.0: decoder.add(mx.rnn.DropoutCell(args.dropout, prefix='rnn_decoder%d_' % i)) - decoder.add(DotAttentionCell()) +# decoder.add(DotAttentionCell()) def sym_gen(seq_len): src_data = mx.sym.Variable('src_data') @@ -448,14 +446,16 @@ def sym_gen(seq_len): enc_seq_len, dec_seq_len = seq_len layout = 'TNC' - _, states = encoder.unroll(enc_seq_len, inputs=src_embed, layout=layout) + encoder_outputs, encoder_states = encoder.unroll(enc_seq_len, inputs=src_embed, layout=layout) # This should be based on EOS or max seq len for inference, but here we unroll to the target length # TODO: fix symbol # outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=states, layout=layout, merge_outputs=True) - outputs, _ = decoder_unroll(decoder, targ_embed, targ_vocab, dec_seq_len, 0, - fc_weight, fc_bias, targ_em_weight, - begin_state=states, layout='TNC', merge_outputs=True) + outputs, _ = infer_decoder_unroll(decoder, encoder_outputs, targ_embed, targ_vocab, dec_seq_len, 0, + fc_weight, fc_bias, + attention_fc_weight, attention_fc_bias, + targ_em_weight, + begin_state=encoder_states, layout='TNC', merge_outputs=True) # NEW From 624fad8f652bc34ad04e3d4ed94993cf0ae2feba Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Wed, 17 May 2017 20:59:34 +0000 Subject: [PATCH 28/58] WIP --- seq2seq_bucketing.py | 46 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 587b756..4afe327 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -202,14 +202,44 @@ def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr embed = inputs[0] for i in range(0, unroll_length): - output, states = decoder(embed, states) - outputs.append(output) - fc = mx.sym.FullyConnected(data=output, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='decoder_fc%d_'%i) - am = mx.sym.argmax(data=fc, axis=1) - embed = mx.sym.Embedding(data=am, weight=targ_em_weight, input_dim=len(targ_vocab), - output_dim=args.num_embed, name='decoder_embed%d_'%i) - - outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) + + output, states = decoder(inputs[j], states) + transposed = mx.sym.transpose(output, axes=(0, 2, 1)) + + alignments = [] + + for j in range(len(encoder_outputs)): + + alignments.append(mx.sym.batch_dot(transposed, encoder_outputs[j])) + + alignments = mx.sym.softmax(mx.sym.Group(alignments)) + + + + +# concatted = mx.sym.concat(inputs, decoder_outputs[j]) +# att_fc = mx.sym.FullyConnected( +# data=concatted, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % j +# ) +# att_tanh = mx.sym.Activation(data=att_fc, act_type="tanh", name='attention_tanh%d_' % j) + + +# dots.append(concatted) +# dots = mx.sym.Group(dots) + +# if len(decoder_outputs) > 1: +# attention_states = [symbol.concat(*decoder_outputs, dim=1)] + +# concatted = decoder_outputs * + +# output, states = decoder(embed, states) +# outputs.append(output) +# fc = mx.sym.FullyConnected(data=output, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='decoder_fc%d_'%i) +# am = mx.sym.argmax(data=fc, axis=1) +# embed = mx.sym.Embedding(data=am, weight=targ_em_weight, input_dim=len(targ_vocab), +# output_dim=args.num_embed, name='decoder_embed%d_'%i) +# +# outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) return outputs, states From 40112a36aad66da20435e71e76bd127b8910ff51 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Wed, 17 May 2017 21:14:26 +0000 Subject: [PATCH 29/58] WIP --- seq2seq_bucketing.py | 56 +++++++++++++++++++------------------------- 1 file changed, 24 insertions(+), 32 deletions(-) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 4afe327..c80e9bc 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -184,7 +184,7 @@ def get_data(layout, infer=False): return test_iter, test_iter.src_vocab, test_iter.inv_src_vocab, test_iter.targ_vocab, test_iter.inv_targ_vocab -def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unroll_length, +def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unroll_length, go_symbol, fc_weight, fc_bias, attention_fc_weight, attention_fc_bias, targ_em_weight, begin_state=None, layout='TNC', merge_outputs=None): @@ -203,43 +203,31 @@ def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr for i in range(0, unroll_length): - output, states = decoder(inputs[j], states) - transposed = mx.sym.transpose(output, axes=(0, 2, 1)) + output, states = decoder(inputs[j], states) + transposed = mx.sym.transpose(output, axes=(0, 2, 1)) - alignments = [] + alignments = [] - for j in range(len(encoder_outputs)): + for j in range(len(encoder_outputs)): - alignments.append(mx.sym.batch_dot(transposed, encoder_outputs[j])) + alignments.append(mx.sym.batch_dot(transposed, encoder_outputs[j])) - alignments = mx.sym.softmax(mx.sym.Group(alignments)) - - - + alignments = mx.sym.softmax(mx.sym.Group(alignments)) -# concatted = mx.sym.concat(inputs, decoder_outputs[j]) -# att_fc = mx.sym.FullyConnected( -# data=concatted, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % j -# ) -# att_tanh = mx.sym.Activation(data=att_fc, act_type="tanh", name='attention_tanh%d_' % j) + weighted = encoder_outputs[0] * alignments[0] - -# dots.append(concatted) -# dots = mx.sym.Group(dots) - -# if len(decoder_outputs) > 1: -# attention_states = [symbol.concat(*decoder_outputs, dim=1)] + for j in range(1, len(encoder_outputs)): + weighted += encoder_outputs[j] * alignments[j] + + concatenated = mx.sym.concat(inputs[i], weighted) -# concatted = decoder_outputs * - -# output, states = decoder(embed, states) -# outputs.append(output) -# fc = mx.sym.FullyConnected(data=output, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='decoder_fc%d_'%i) -# am = mx.sym.argmax(data=fc, axis=1) -# embed = mx.sym.Embedding(data=am, weight=targ_em_weight, input_dim=len(targ_vocab), -# output_dim=args.num_embed, name='decoder_embed%d_'%i) -# -# outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) + attention_fc = mx.sym.FullyConnected( + data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i + ) + + att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) + + outputs.append(att_tanh) return outputs, states @@ -306,7 +294,11 @@ def sym_gen(seq_len): attention_fc_weight, attention_fc_bias, targ_em_weight, begin_state=encoder_states, layout='TNC', merge_outputs=True) else: - outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=encoder_states, layout=layout, merge_outputs=True) + outputs, _ = train_decoder_unroll(decoder, encoder_outputs, targ_embed, targ_vocab, dec_seq_len, 0, fc_weight, fc_bias, + attention_fc_weight, attention_fc_bias, + targ_em_weight, begin_state=encoder_states, layout='TNC', merge_outputs=True) + +# outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=encoder_states, layout=layout, merge_outputs=True) # NEW rs = mx.sym.Reshape(outputs, shape=(-1, args.num_hidden), name='sym_gen_reshape1') From 05dd934f530290277207063a7c291c5581ec15f6 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Wed, 17 May 2017 21:32:31 +0000 Subject: [PATCH 30/58] WIP --- model_train_gpu_alt_unrolling.sh | 5 +++- seq2seq_bucketing.py | 51 +++++++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/model_train_gpu_alt_unrolling.sh b/model_train_gpu_alt_unrolling.sh index c6be5b1..9d7f816 100755 --- a/model_train_gpu_alt_unrolling.sh +++ b/model_train_gpu_alt_unrolling.sh @@ -1,4 +1,7 @@ #!/bin/bash python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 128 \ --optimizer adagrad --lr 0.141 --disp-batches 100 --num-epochs 1 --model-prefix trained_model \ - --dropout 0.3 --seed 1234 --inference-unrolling-for-training + --dropout 0.3 --seed 1234 + +# --inference-unrolling-for-training + diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index c80e9bc..332b98b 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -203,7 +203,7 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr for i in range(0, unroll_length): - output, states = decoder(inputs[j], states) + output, states = decoder(inputs[i], states) transposed = mx.sym.transpose(output, axes=(0, 2, 1)) alignments = [] @@ -231,6 +231,55 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr return outputs, states +def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unroll_length, + go_symbol, fc_weight, fc_bias, attention_fc_weight, attention_fc_bias, targ_em_weight, + begin_state=None, layout='TNC', merge_outputs=None): + + decoder.reset() + + if begin_state is None: + begin_state = decoder.begin_state() + + inputs, _ = _normalize_sequence(unroll_length, target_embed, layout, False) + + # Need to use hidden state from attention model, but as input + states = begin_state + outputs = [] + + embed = inputs[0] + + for i in range(0, unroll_length): + + output, states = decoder(inputs[j], states) + transposed = mx.sym.transpose(output, axes=(0, 2, 1)) + + alignments = [] + + for j in range(len(encoder_outputs)): + + alignments.append(mx.sym.batch_dot(transposed, encoder_outputs[j])) + + alignments = mx.sym.softmax(mx.sym.Group(alignments)) + + weighted = encoder_outputs[0] * alignments[0] + + for j in range(1, len(encoder_outputs)): + weighted += encoder_outputs[j] * alignments[j] + + concatenated = mx.sym.concat(inputs[i], weighted) + + attention_fc = mx.sym.FullyConnected( + data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i + ) + + att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) + + outputs.append(att_tanh) + + return outputs, states + + + def train(args): from time import time From 3bbc66934a09a160883c232f828d5c3177de5407 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Wed, 17 May 2017 21:51:07 +0000 Subject: [PATCH 31/58] WIP attention for training --- seq2seq_bucketing.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 332b98b..9355344 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -231,6 +231,8 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr return outputs, states +# This requires a rewrite now that we're adding attention. +# See the pre-attention version for hints. def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unroll_length, go_symbol, fc_weight, fc_bias, attention_fc_weight, attention_fc_bias, targ_em_weight, begin_state=None, layout='TNC', merge_outputs=None): From 5486c0e9c285af870d2a6665b51278e6401782eb Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Thu, 18 May 2017 21:47:26 +0000 Subject: [PATCH 32/58] WIP --- seq2seq_bucketing.py | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 9355344..f85dbf8 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -188,6 +188,8 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr go_symbol, fc_weight, fc_bias, attention_fc_weight, attention_fc_bias, targ_em_weight, begin_state=None, layout='TNC', merge_outputs=None): + print("EEFE#F#RF$F") + decoder.reset() if begin_state is None: @@ -209,13 +211,18 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr alignments = [] for j in range(len(encoder_outputs)): - - alignments.append(mx.sym.batch_dot(transposed, encoder_outputs[j])) - alignments = mx.sym.softmax(mx.sym.Group(alignments)) + dot = mx.sym.batch_dot(transposed, encoder_outputs[j]) + sm = mx.sym.softmax(dot) + alignments.append(sm) +# alignments = mx.sym.Group(alignments) + weighted = encoder_outputs[0] * alignments[0] + print(weighted) + print(type(weighted)) + for j in range(1, len(encoder_outputs)): weighted += encoder_outputs[j] * alignments[j] @@ -227,7 +234,10 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) - outputs.append(att_tanh) + outputs.append(att_tanh) + + + outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) return outputs, states @@ -252,16 +262,19 @@ def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr for i in range(0, unroll_length): - output, states = decoder(inputs[j], states) + output, states = decoder(inputs[i], states) transposed = mx.sym.transpose(output, axes=(0, 2, 1)) alignments = [] for j in range(len(encoder_outputs)): - alignments.append(mx.sym.batch_dot(transposed, encoder_outputs[j])) + dot = mx.sym.batch_dot(transposed, encoder_outputs[j]) + sm = mx.sym.softmax(dot) + + alignments.append(sm) - alignments = mx.sym.softmax(mx.sym.Group(alignments)) +# alignments = mx.sym.Group(alignments) weighted = encoder_outputs[0] * alignments[0] @@ -351,6 +364,11 @@ def sym_gen(seq_len): # outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=encoder_states, layout=layout, merge_outputs=True) + print(outputs) + print(type(outputs)) + + print("\n") + # NEW rs = mx.sym.Reshape(outputs, shape=(-1, args.num_hidden), name='sym_gen_reshape1') fc = mx.sym.FullyConnected(data=rs, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='sym_gen_fc') From d81b4d3414892120e1186bcb3e04fd959f5ae4f8 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Thu, 18 May 2017 22:27:09 +0000 Subject: [PATCH 33/58] WIP --- seq2seq_bucketing.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index f85dbf8..1c13bfc 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -188,8 +188,6 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr go_symbol, fc_weight, fc_bias, attention_fc_weight, attention_fc_bias, targ_em_weight, begin_state=None, layout='TNC', merge_outputs=None): - print("EEFE#F#RF$F") - decoder.reset() if begin_state is None: @@ -205,14 +203,21 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr for i in range(0, unroll_length): - output, states = decoder(inputs[i], states) - transposed = mx.sym.transpose(output, axes=(0, 2, 1)) + output, states = decoder(inputs[i], states) + # axes=(0, 2, 1) +# transposed = mx.sym.transpose(output, axes=(1, 0), name='train_decoder_transpose%d_' % i) + transposed = mx.sym.expand_dims(output, axis=2) + transposed = mx.sym.transpose(transposed, axes=(0, 2, 1), name='train_decoder_transpose%d_' % i) alignments = [] for j in range(len(encoder_outputs)): - dot = mx.sym.batch_dot(transposed, encoder_outputs[j]) + enc_out = encoder_outputs[j] + enc_out = mx.sym.expand_dims(enc_out, axis=2) + +# dot = mx.sym.batch_dot(transposed, enc_out) + dot = mx.sym.broadcast_mul(transposed, enc_out, name='train_decoder_broadcast_mul%d_' % j) sm = mx.sym.softmax(dot) alignments.append(sm) From 1c688107c7645c23e70e4670847778f17b51b89f Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Thu, 18 May 2017 22:30:16 +0000 Subject: [PATCH 34/58] WIP --- seq2seq_bucketing.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 1c13bfc..5593976 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -206,18 +206,20 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr output, states = decoder(inputs[i], states) # axes=(0, 2, 1) # transposed = mx.sym.transpose(output, axes=(1, 0), name='train_decoder_transpose%d_' % i) - transposed = mx.sym.expand_dims(output, axis=2) - transposed = mx.sym.transpose(transposed, axes=(0, 2, 1), name='train_decoder_transpose%d_' % i) +# transposed = mx.sym.expand_dims(output, axis=2) +# transposed = mx.sym.transpose(transposed, axes=(0, 2, 1), name='train_decoder_transpose%d_' % i) + transposed = output alignments = [] for j in range(len(encoder_outputs)): enc_out = encoder_outputs[j] - enc_out = mx.sym.expand_dims(enc_out, axis=2) +# enc_out = mx.sym.expand_dims(enc_out, axis=2) # dot = mx.sym.batch_dot(transposed, enc_out) - dot = mx.sym.broadcast_mul(transposed, enc_out, name='train_decoder_broadcast_mul%d_' % j) + dot = transposed * enc_out +# dot = mx.sym.broadcast_mul(transposed, enc_out, name='train_decoder_broadcast_mul%d_' % j) sm = mx.sym.softmax(dot) alignments.append(sm) @@ -225,9 +227,6 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr weighted = encoder_outputs[0] * alignments[0] - print(weighted) - print(type(weighted)) - for j in range(1, len(encoder_outputs)): weighted += encoder_outputs[j] * alignments[j] From f54822208da0a00375ee11d84c1bfd735cb0b808 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Thu, 18 May 2017 22:31:25 +0000 Subject: [PATCH 35/58] WIP --- seq2seq_bucketing.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 5593976..b6b8c71 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -368,11 +368,6 @@ def sym_gen(seq_len): # outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=encoder_states, layout=layout, merge_outputs=True) - print(outputs) - print(type(outputs)) - - print("\n") - # NEW rs = mx.sym.Reshape(outputs, shape=(-1, args.num_hidden), name='sym_gen_reshape1') fc = mx.sym.FullyConnected(data=rs, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='sym_gen_fc') From 4285117f5ece8bbd7376df13753dd17081847bf0 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Thu, 18 May 2017 23:20:21 +0000 Subject: [PATCH 36/58] Attention works? --- model_train_gpu.sh | 5 +++-- seq2seq_bucketing.py | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/model_train_gpu.sh b/model_train_gpu.sh index 233bc34..6c67644 100755 --- a/model_train_gpu.sh +++ b/model_train_gpu.sh @@ -1,5 +1,6 @@ #!/bin/bash python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 128 \ - --optimizer adagrad --lr 0.141 --disp-batches 100 --num-epochs 1 --model-prefix trained_model \ - --dropout 0.3 --seed 1234 --use-cudnn-cells + --optimizer adagrad --lr 0.141 --disp-batches 10 --num-epochs 10 --model-prefix trained_model \ + --dropout 0.3 --seed 1234 --remove-state-feed +# --use-cudnn-cells # --inference-unrolling-for-training diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index b6b8c71..1581409 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -58,6 +58,7 @@ help='show progress for every n batches') parser.add_argument('--max-grad-norm', type=float, default=5.0, help='maximum gradient norm (larger values will be clipped') + # When training a deep, complex model, it's recommended to stack fused RNN cells (one # layer per cell) together instead of one with all layers. The reason is that fused RNN # cells doesn't set gradients to be ready until the computation for the entire layer is @@ -76,6 +77,9 @@ parser.add_argument('--seed', type=int, default=1234, help='Set random seed for Python, NumPy and MxNet RNGs') +parser.add_argument('--remove-state-feed', action='store_true', + help='Remove direct state feeding from encoder to decoder (use when using attention)') + #buckets = [32] # buckets = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] @@ -355,6 +359,9 @@ def sym_gen(seq_len): layout = 'TNC' encoder_outputs, encoder_states = encoder.unroll(enc_seq_len, inputs=src_embed, layout=layout) + if args.remove_state_feed: + encoder_states = None + # This should be based on EOS or max seq len for inference, but here we unroll to the target length # TODO: fix symbol if args.inference_unrolling_for_training: From b987b88a0f963d51284f9e05b63375b8d22b5954 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Mon, 22 May 2017 17:12:53 +0000 Subject: [PATCH 37/58] Correct attention WIP --- seq2seq_bucketing.py | 68 +++++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 26 deletions(-) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 1581409..a3ce033 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -203,41 +203,59 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr states = begin_state outputs = [] - embed = inputs[0] + attention_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_attention_state') - for i in range(0, unroll_length): + enc_len = len(encoder_outputs) - output, states = decoder(inputs[i], states) - # axes=(0, 2, 1) -# transposed = mx.sym.transpose(output, axes=(1, 0), name='train_decoder_transpose%d_' % i) -# transposed = mx.sym.expand_dims(output, axis=2) -# transposed = mx.sym.transpose(transposed, axes=(0, 2, 1), name='train_decoder_transpose%d_' % i) - transposed = output + for i in range(unroll_length): - alignments = [] + weighted_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_weighted_state_%d_' % i) + +# align_weights = None - for j in range(len(encoder_outputs)): + curr_input = inputs[i] + curr_input = mx.sym.expand_dims(curr_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) + + dots = [] + concat_dots = None - enc_out = encoder_outputs[j] -# enc_out = mx.sym.expand_dims(enc_out, axis=2) + # loop over all the encoder periods to create weights for weighted state + for j in range(enc_len): -# dot = mx.sym.batch_dot(transposed, enc_out) - dot = transposed * enc_out -# dot = mx.sym.broadcast_mul(transposed, enc_out, name='train_decoder_broadcast_mul%d_' % j) - sm = mx.sym.softmax(dot) - alignments.append(sm) +# transposed = mx.sym.transpose(encoder_outputs[j], axes=(1, 0), name='train_decoder_transpose%d_' % i) +# transposed = encoder_outputs[j] + transposed = mx.sym.expand_dims(encoder_outputs[j], axis=2) + transposed = mx.sym.transpose(transposed, axes=(0, 2, 1), name='train_decoder_transpose%d_' % i) + + dot = mx.sym.batch_dot(transposed, curr_input, name='train_decoder_batch_dot_%d_%d_' % (i, j)) + dot = mx.sym.exp(dot) + dot = mx.sym.split(dot, axis=2, num_outputs=1) + + dots.append(dot) + if not concat_dots: + concat_dots = dot + else: + concat_dots = mx.sym.concat(concat_dots, dot) + + dot_sum = mx.sym.sum(concat_dots, axis = 1) + + for j in range(enc_len): + curr_dot = mx.sym.transpose(dots[j]) + + attention_state += mx.sym.broadcast_mul(curr_dot, encoder_outputs[j], name='train_encoder_acc_attention_%d_%d_' % (i, j)) # / dot_sum + attention_state = mx.sym.broadcast_div(attention_state, dot_sum) -# alignments = mx.sym.Group(alignments) - weighted = encoder_outputs[0] * alignments[0] +# arg_shapes, aux_shapes, out_shapes = attention_state.infer_shape() +# print_inferred_shapes(attention_state, arg_shapes, aux_shape, out_shapes) - for j in range(1, len(encoder_outputs)): - weighted += encoder_outputs[j] * alignments[j] - - concatenated = mx.sym.concat(inputs[i], weighted) +# def print_inferred_shapes(node, arg_shapes, aux_shapes, out_shapes): + + + concatenatted = mx.sym.concat(inputs[i], attention_state, name = 'train_decoder_concat_%d_' % i) attention_fc = mx.sym.FullyConnected( - data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i + data=concatenatted, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i ) att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) @@ -282,8 +300,6 @@ def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr alignments.append(sm) -# alignments = mx.sym.Group(alignments) - weighted = encoder_outputs[0] * alignments[0] for j in range(1, len(encoder_outputs)): From 13d1cd6591165f1371d145ffad28eb3743e57a23 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Mon, 22 May 2017 19:54:38 +0000 Subject: [PATCH 38/58] New attention works? --- model_train_gpu.sh | 2 +- seq2seq_bucketing.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/model_train_gpu.sh b/model_train_gpu.sh index 6c67644..01de685 100755 --- a/model_train_gpu.sh +++ b/model_train_gpu.sh @@ -1,6 +1,6 @@ #!/bin/bash python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 128 \ - --optimizer adagrad --lr 0.141 --disp-batches 10 --num-epochs 10 --model-prefix trained_model \ + --optimizer adagrad --lr 0.0141 --disp-batches 1 --num-epochs 10 --model-prefix trained_model \ --dropout 0.3 --seed 1234 --remove-state-feed # --use-cudnn-cells # --inference-unrolling-for-training diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index a3ce033..56bf1c4 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -229,7 +229,7 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr dot = mx.sym.batch_dot(transposed, curr_input, name='train_decoder_batch_dot_%d_%d_' % (i, j)) dot = mx.sym.exp(dot) - dot = mx.sym.split(dot, axis=2, num_outputs=1) + dot = mx.sym.reshape(dot, shape=(1, args.batch_size)) dots.append(dot) if not concat_dots: From 27bf57233a36a659a1c015b28c954f6e7e31e2ec Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Mon, 22 May 2017 20:32:43 +0000 Subject: [PATCH 39/58] New attention --- model_train_gpu.sh | 3 ++- seq2seq_bucketing.py | 13 +------------ 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/model_train_gpu.sh b/model_train_gpu.sh index 01de685..38ad422 100755 --- a/model_train_gpu.sh +++ b/model_train_gpu.sh @@ -1,6 +1,7 @@ #!/bin/bash python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 128 \ - --optimizer adagrad --lr 0.0141 --disp-batches 1 --num-epochs 10 --model-prefix trained_model \ + --optimizer adagrad --lr 0.0141 --disp-batches 1 --num-epochs 10 \ --dropout 0.3 --seed 1234 --remove-state-feed +# --model-prefix trained_model # --use-cudnn-cells # --inference-unrolling-for-training diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 56bf1c4..6c7d1ee 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -211,8 +211,6 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr weighted_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_weighted_state_%d_' % i) -# align_weights = None - curr_input = inputs[i] curr_input = mx.sym.expand_dims(curr_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) @@ -222,8 +220,6 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr # loop over all the encoder periods to create weights for weighted state for j in range(enc_len): -# transposed = mx.sym.transpose(encoder_outputs[j], axes=(1, 0), name='train_decoder_transpose%d_' % i) -# transposed = encoder_outputs[j] transposed = mx.sym.expand_dims(encoder_outputs[j], axis=2) transposed = mx.sym.transpose(transposed, axes=(0, 2, 1), name='train_decoder_transpose%d_' % i) @@ -242,16 +238,9 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr for j in range(enc_len): curr_dot = mx.sym.transpose(dots[j]) - attention_state += mx.sym.broadcast_mul(curr_dot, encoder_outputs[j], name='train_encoder_acc_attention_%d_%d_' % (i, j)) # / dot_sum + attention_state += mx.sym.broadcast_mul(curr_dot, encoder_outputs[j], name='train_encoder_acc_attention_%d_%d_' % (i, j)) attention_state = mx.sym.broadcast_div(attention_state, dot_sum) - -# arg_shapes, aux_shapes, out_shapes = attention_state.infer_shape() -# print_inferred_shapes(attention_state, arg_shapes, aux_shape, out_shapes) - -# def print_inferred_shapes(node, arg_shapes, aux_shapes, out_shapes): - - concatenatted = mx.sym.concat(inputs[i], attention_state, name = 'train_decoder_concat_%d_' % i) attention_fc = mx.sym.FullyConnected( From d52fa23c658bb2ec7343fe85468040add5e5e261 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Mon, 22 May 2017 23:49:58 +0000 Subject: [PATCH 40/58] scale attention only once --- seq2seq_bucketing.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 6c7d1ee..fe05e86 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -237,14 +237,14 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr for j in range(enc_len): curr_dot = mx.sym.transpose(dots[j]) - attention_state += mx.sym.broadcast_mul(curr_dot, encoder_outputs[j], name='train_encoder_acc_attention_%d_%d_' % (i, j)) - attention_state = mx.sym.broadcast_div(attention_state, dot_sum) - concatenatted = mx.sym.concat(inputs[i], attention_state, name = 'train_decoder_concat_%d_' % i) + attention_state = mx.sym.broadcast_div(attention_state, dot_sum) + + concatenated = mx.sym.concat(inputs[i], attention_state, name = 'train_decoder_concat_%d_' % i) attention_fc = mx.sym.FullyConnected( - data=concatenatted, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i + data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i ) att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) From 7a35432f05fdfcb4df2799dba962c78e7675d963 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Tue, 23 May 2017 00:06:40 +0000 Subject: [PATCH 41/58] Fixed decoder bug --- model_train_gpu.sh | 2 +- seq2seq_bucketing.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/model_train_gpu.sh b/model_train_gpu.sh index 38ad422..a7027a2 100755 --- a/model_train_gpu.sh +++ b/model_train_gpu.sh @@ -1,6 +1,6 @@ #!/bin/bash python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 128 \ - --optimizer adagrad --lr 0.0141 --disp-batches 1 --num-epochs 10 \ + --optimizer adagrad --lr 0.0141 --disp-batches 10 --num-epochs 12 \ --dropout 0.3 --seed 1234 --remove-state-feed # --model-prefix trained_model # --use-cudnn-cells diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index fe05e86..ddd36b0 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -248,9 +248,10 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr ) att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) - - outputs.append(att_tanh) + output, states = decoder(att_tanh, states) + + outputs.append(output) outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) From 0d6a307f55598d2a57a79a8d9a9c1f926648cd4e Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Tue, 23 May 2017 00:56:31 +0000 Subject: [PATCH 42/58] Fixed place for attention concat --- seq2seq_bucketing.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index ddd36b0..e2fd0ef 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -241,7 +241,9 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr attention_state = mx.sym.broadcast_div(attention_state, dot_sum) - concatenated = mx.sym.concat(inputs[i], attention_state, name = 'train_decoder_concat_%d_' % i) + dec_out, states = decoder(inputs[i], states) + + concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) attention_fc = mx.sym.FullyConnected( data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i @@ -249,9 +251,7 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) - output, states = decoder(att_tanh, states) - - outputs.append(output) + outputs.append(att_tanh) outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) From eb952f02d8f6a78d3f597bc11fcc1b6ef6eb0610 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Wed, 24 May 2017 20:31:39 +0000 Subject: [PATCH 43/58] Input feed WIP --- model_train_gpu.sh | 7 ++++--- seq2seq_bucketing.py | 31 ++++++++++++++++++++++++------- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/model_train_gpu.sh b/model_train_gpu.sh index a7027a2..8c41920 100755 --- a/model_train_gpu.sh +++ b/model_train_gpu.sh @@ -1,7 +1,8 @@ #!/bin/bash -python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 128 \ - --optimizer adagrad --lr 0.0141 --disp-batches 10 --num-epochs 12 \ - --dropout 0.3 --seed 1234 --remove-state-feed +python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 1 --batch-size 128 \ + --optimizer adagrad --lr 0.01 --disp-batches 10 --num-epochs 12 \ + --dropout 0.3 --seed 1234 --input-feed --remove-state-feed +# --remove-state-feed # --model-prefix trained_model # --use-cudnn-cells # --inference-unrolling-for-training diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index e2fd0ef..738c857 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -80,6 +80,10 @@ parser.add_argument('--remove-state-feed', action='store_true', help='Remove direct state feeding from encoder to decoder (use when using attention)') + +parser.add_argument('--input-feed', action='store_true', + help='Enable input feed (attention is fed into the decoder as input, rather than concatenated with output)') + #buckets = [32] # buckets = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] @@ -241,17 +245,30 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr attention_state = mx.sym.broadcast_div(attention_state, dot_sum) - dec_out, states = decoder(inputs[i], states) - concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) + if args.input_feed: - attention_fc = mx.sym.FullyConnected( - data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i - ) + concatenated = mx.sym.concat(inputs[i], attention_state, name = 'train_decoder_concatt_%d_' % i) + attention_fc = mx.sym.FullyConnected( + data = concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i + ) + att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) + dec_out, states = decoder(att_tanh, states) + outputs.append(dec_out) + + else: + dec_out, states = decoder(inputs[i], states) + + # Should this be dec_out or states as the first argument? + concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) + + attention_fc = mx.sym.FullyConnected( + data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i + ) - att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) + att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) - outputs.append(att_tanh) + outputs.append(att_tanh) outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) From e9bef4abcf51c68d6f46577e2f5cbd2e40a4a798 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Wed, 24 May 2017 21:33:01 -0700 Subject: [PATCH 44/58] Note on how to fix input feed --- seq2seq_bucketing.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 738c857..093e433 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -248,6 +248,11 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr if args.input_feed: + # This is wrong !!! + # First produce the attentional output like in the else part (after tanh). + # Then feed this entire output together with input embedding as a concat state. + # See p. 5 here: https://arxiv.org/pdf/1508.04025.pdf + concatenated = mx.sym.concat(inputs[i], attention_state, name = 'train_decoder_concatt_%d_' % i) attention_fc = mx.sym.FullyConnected( data = concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i From a5997cd81f2afedf004bc9ac591509fb4d454ec5 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Thu, 25 May 2017 05:08:15 +0000 Subject: [PATCH 45/58] WIP input feed --- seq2seq_bucketing.py | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 093e433..4c13f9d 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -246,34 +246,42 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr attention_state = mx.sym.broadcast_div(attention_state, dot_sum) - if args.input_feed: +# if args.input_feed: # This is wrong !!! # First produce the attentional output like in the else part (after tanh). # Then feed this entire output together with input embedding as a concat state. # See p. 5 here: https://arxiv.org/pdf/1508.04025.pdf - concatenated = mx.sym.concat(inputs[i], attention_state, name = 'train_decoder_concatt_%d_' % i) - attention_fc = mx.sym.FullyConnected( - data = concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i - ) - att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) - dec_out, states = decoder(att_tanh, states) - outputs.append(dec_out) + +# concatenated = mx.sym.concat(inputs[i], attention_state, name = 'train_decoder_concatt_%d_' % i) +# attention_fc = mx.sym.FullyConnected( +# data = concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i +# ) +# att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) +# dec_out, states = decoder(att_tanh, states) +# outputs.append(dec_out) + + if i == 0: + att_tanh = inputs[0] + if args.input_feed: + decoder_feed = mx.sym.concat(inputs[i], att_tanh, name = 'decoder_feed_concat_%d_' % i) else: - dec_out, states = decoder(inputs[i], states) + decoder_feed = inputs[i] + + dec_out, states = decoder(decoder_feed, states) - # Should this be dec_out or states as the first argument? - concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) + # Should this be dec_out or states as the first argument? + concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) - attention_fc = mx.sym.FullyConnected( - data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i - ) + attention_fc = mx.sym.FullyConnected( + data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i + ) - att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) + att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) - outputs.append(att_tanh) + outputs.append(att_tanh) outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) From 77f215b9c53fa824391aba6491949af8d5600740 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Thu, 25 May 2017 21:48:42 +0000 Subject: [PATCH 46/58] Inference works with input feed --- model_infer_gpu.sh | 7 ++- model_train_gpu.sh | 2 +- seq2seq_bucketing.py | 122 ++++++++++++++++++------------------------- 3 files changed, 58 insertions(+), 73 deletions(-) diff --git a/model_infer_gpu.sh b/model_infer_gpu.sh index 0b01710..b94b6a3 100755 --- a/model_infer_gpu.sh +++ b/model_infer_gpu.sh @@ -1,5 +1,8 @@ #!/bin/bash -python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 128 \ +#!/bin/bash +python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 8 \ --disp-batches 1 --num-epochs 1 --model-prefix trained_model --dropout 0.0 \ - --infer --load-epoch 1 --use-cudnn-cells + --infer --load-epoch 1 --input-feed --remove-state-feed # --use-cudnn-cells +# --use-cudnn-cells +# --inference-unrolling-for-training diff --git a/model_train_gpu.sh b/model_train_gpu.sh index 8c41920..f3540a6 100755 --- a/model_train_gpu.sh +++ b/model_train_gpu.sh @@ -1,7 +1,7 @@ #!/bin/bash python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 1 --batch-size 128 \ --optimizer adagrad --lr 0.01 --disp-batches 10 --num-epochs 12 \ - --dropout 0.3 --seed 1234 --input-feed --remove-state-feed + --dropout 0.3 --seed 1234 --model-prefix trained_model --input-feed --remove-state-feed # --remove-state-feed # --model-prefix trained_model # --use-cudnn-cells diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 4c13f9d..3f45d30 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -195,96 +195,54 @@ def get_data(layout, infer=False): def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unroll_length, go_symbol, fc_weight, fc_bias, attention_fc_weight, attention_fc_bias, targ_em_weight, begin_state=None, layout='TNC', merge_outputs=None): - decoder.reset() - if begin_state is None: begin_state = decoder.begin_state() - inputs, _ = _normalize_sequence(unroll_length, target_embed, layout, False) - # Need to use hidden state from attention model, but as input states = begin_state outputs = [] - attention_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_attention_state') - enc_len = len(encoder_outputs) - for i in range(unroll_length): - weighted_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_weighted_state_%d_' % i) - curr_input = inputs[i] curr_input = mx.sym.expand_dims(curr_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) - dots = [] concat_dots = None - # loop over all the encoder periods to create weights for weighted state for j in range(enc_len): - transposed = mx.sym.expand_dims(encoder_outputs[j], axis=2) transposed = mx.sym.transpose(transposed, axes=(0, 2, 1), name='train_decoder_transpose%d_' % i) - dot = mx.sym.batch_dot(transposed, curr_input, name='train_decoder_batch_dot_%d_%d_' % (i, j)) dot = mx.sym.exp(dot) dot = mx.sym.reshape(dot, shape=(1, args.batch_size)) - dots.append(dot) if not concat_dots: concat_dots = dot else: concat_dots = mx.sym.concat(concat_dots, dot) - dot_sum = mx.sym.sum(concat_dots, axis = 1) - for j in range(enc_len): curr_dot = mx.sym.transpose(dots[j]) attention_state += mx.sym.broadcast_mul(curr_dot, encoder_outputs[j], name='train_encoder_acc_attention_%d_%d_' % (i, j)) attention_state = mx.sym.broadcast_div(attention_state, dot_sum) - - -# if args.input_feed: - - # This is wrong !!! - # First produce the attentional output like in the else part (after tanh). - # Then feed this entire output together with input embedding as a concat state. - # See p. 5 here: https://arxiv.org/pdf/1508.04025.pdf - - -# concatenated = mx.sym.concat(inputs[i], attention_state, name = 'train_decoder_concatt_%d_' % i) -# attention_fc = mx.sym.FullyConnected( -# data = concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i -# ) -# att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) -# dec_out, states = decoder(att_tanh, states) -# outputs.append(dec_out) - if i == 0: att_tanh = inputs[0] - if args.input_feed: decoder_feed = mx.sym.concat(inputs[i], att_tanh, name = 'decoder_feed_concat_%d_' % i) else: decoder_feed = inputs[i] - dec_out, states = decoder(decoder_feed, states) - # Should this be dec_out or states as the first argument? concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) - attention_fc = mx.sym.FullyConnected( data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i ) - att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) - outputs.append(att_tanh) - outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) - return outputs, states # This requires a rewrite now that we're adding attention. @@ -292,52 +250,77 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unroll_length, go_symbol, fc_weight, fc_bias, attention_fc_weight, attention_fc_bias, targ_em_weight, begin_state=None, layout='TNC', merge_outputs=None): - decoder.reset() - if begin_state is None: begin_state = decoder.begin_state() - inputs, _ = _normalize_sequence(unroll_length, target_embed, layout, False) - # Need to use hidden state from attention model, but as input states = begin_state outputs = [] - embed = inputs[0] - for i in range(0, unroll_length): - - output, states = decoder(inputs[i], states) - transposed = mx.sym.transpose(output, axes=(0, 2, 1)) - - alignments = [] - - for j in range(len(encoder_outputs)): - - dot = mx.sym.batch_dot(transposed, encoder_outputs[j]) - sm = mx.sym.softmax(dot) - - alignments.append(sm) - - weighted = encoder_outputs[0] * alignments[0] - - for j in range(1, len(encoder_outputs)): - weighted += encoder_outputs[j] * alignments[j] - - concatenated = mx.sym.concat(inputs[i], weighted) +######################################################################################################################### + attention_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_attention_state') + enc_len = len(encoder_outputs) + for i in range(unroll_length): + weighted_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_weighted_state_%d_' % i) + curr_input = inputs[i] + curr_input = mx.sym.expand_dims(curr_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) + dots = [] + concat_dots = None + # loop over all the encoder periods to create weights for weighted state + for j in range(enc_len): + transposed = mx.sym.expand_dims(encoder_outputs[j], axis=2) + transposed = mx.sym.transpose(transposed, axes=(0, 2, 1), name='train_decoder_transpose%d_' % i) + dot = mx.sym.batch_dot(transposed, curr_input, name='train_decoder_batch_dot_%d_%d_' % (i, j)) + dot = mx.sym.exp(dot) + dot = mx.sym.reshape(dot, shape=(1, args.batch_size)) + dots.append(dot) + if not concat_dots: + concat_dots = dot + else: + concat_dots = mx.sym.concat(concat_dots, dot) + dot_sum = mx.sym.sum(concat_dots, axis = 1) + for j in range(enc_len): + curr_dot = mx.sym.transpose(dots[j]) + attention_state += mx.sym.broadcast_mul(curr_dot, encoder_outputs[j], name='train_encoder_acc_attention_%d_%d_' % (i, j)) + attention_state = mx.sym.broadcast_div(attention_state, dot_sum) + if i == 0: + att_tanh = embed + if args.input_feed: + decoder_feed = mx.sym.concat(embed, att_tanh, name = 'decoder_feed_concat_%d_' % i) + else: + decoder_feed = inputs[i] + dec_out, states = decoder(decoder_feed, states) + # Should this be dec_out or states as the first argument? + concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) attention_fc = mx.sym.FullyConnected( data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i ) - att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) - outputs.append(att_tanh) + fc = mx.sym.FullyConnected(data=att_tanh, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='decoder_fc%d_'%i) + am = mx.sym.argmax(data=fc, axis=1) + embed = mx.sym.Embedding(data=am, weight=targ_em_weight, input_dim=len(targ_vocab), output_dim=args.num_embed, name='decoder_embed%d_'%i) + + outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) return outputs, states +######################################################################################################################### +# for i in range(0, unroll_length): +# output, states = decoder(embed, states) +# outputs.append(output) +# fc = mx.sym.FullyConnected(data=output, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='decoder_fc%d_'%i) +# am = mx.sym.argmax(data=fc, axis=1) +# embed = mx.sym.Embedding(data=am, weight=targ_em_weight, input_dim=len(targ_vocab), +# output_dim=args.num_embed, name='decoder_embed%d_'%i) +# +# outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) +# +# return outputs, states def train(args): @@ -703,7 +686,6 @@ def sym_gen(seq_len): print("Source text: %s" % src_txt) print("Expected translation: %s" % exp_txt) print("Actual translation: %s" % act_txt) - print("\n") print("\nTest set BLEU score (averaged over all examples): %.3f\n" % bleu_acc) if __name__ == '__main__': From 1d44d241c5dca95a0e68f7cda7d6dc76d40a963e Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Fri, 26 May 2017 16:41:46 +0000 Subject: [PATCH 47/58] Multi-GPU training working again --- model_train_gpu.sh | 8 ++++---- seq2seq_bucketing.py | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/model_train_gpu.sh b/model_train_gpu.sh index f3540a6..ce03e52 100755 --- a/model_train_gpu.sh +++ b/model_train_gpu.sh @@ -1,8 +1,8 @@ #!/bin/bash -python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 1 --batch-size 128 \ - --optimizer adagrad --lr 0.01 --disp-batches 10 --num-epochs 12 \ - --dropout 0.3 --seed 1234 --model-prefix trained_model --input-feed --remove-state-feed -# --remove-state-feed +python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0,1 --batch-size 256 \ + --optimizer adagrad --lr 0.01 --disp-batches 2 --num-epochs 1 \ + --dropout 0.3 --seed 1234 --model-prefix trained_model --model-prefix trained_model +# --input-feed --remove-state-feed # --model-prefix trained_model # --use-cudnn-cells # --inference-unrolling-for-training diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 3f45d30..3e48794 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -215,8 +215,10 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr transposed = mx.sym.expand_dims(encoder_outputs[j], axis=2) transposed = mx.sym.transpose(transposed, axes=(0, 2, 1), name='train_decoder_transpose%d_' % i) dot = mx.sym.batch_dot(transposed, curr_input, name='train_decoder_batch_dot_%d_%d_' % (i, j)) - dot = mx.sym.exp(dot) - dot = mx.sym.reshape(dot, shape=(1, args.batch_size)) + dot = mx.sym.exp(dot, name='train_decoder_exp_%d_%d' % (i, j)) + # The batch size shouldn't be an arg here anyway. We should just remove extra dimensions + # and then transpose. + dot = mx.sym.reshape(dot, shape=(1, args.batch_size / len(contexts)), name='train_decoder_unroll_reshape_%d_%d' % (i, j)) dots.append(dot) if not concat_dots: concat_dots = dot From 95ace12541633aeb20dc9f51b2df813ecfc22302 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Fri, 26 May 2017 16:47:31 +0000 Subject: [PATCH 48/58] Training and inference work with multi-GPU again --- model_infer_gpu.sh | 5 +++-- seq2seq_bucketing.py | 5 +---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/model_infer_gpu.sh b/model_infer_gpu.sh index b94b6a3..311b1d8 100755 --- a/model_infer_gpu.sh +++ b/model_infer_gpu.sh @@ -1,8 +1,9 @@ #!/bin/bash #!/bin/bash -python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0 --batch-size 8 \ +python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0,1 --batch-size 8 \ --disp-batches 1 --num-epochs 1 --model-prefix trained_model --dropout 0.0 \ - --infer --load-epoch 1 --input-feed --remove-state-feed + --infer --load-epoch 1 +# --input-feed --remove-state-feed # --use-cudnn-cells # --use-cudnn-cells # --inference-unrolling-for-training diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 3e48794..7ba3eaa 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -261,7 +261,6 @@ def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr outputs = [] embed = inputs[0] -######################################################################################################################### attention_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_attention_state') enc_len = len(encoder_outputs) for i in range(unroll_length): @@ -276,7 +275,7 @@ def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr transposed = mx.sym.transpose(transposed, axes=(0, 2, 1), name='train_decoder_transpose%d_' % i) dot = mx.sym.batch_dot(transposed, curr_input, name='train_decoder_batch_dot_%d_%d_' % (i, j)) dot = mx.sym.exp(dot) - dot = mx.sym.reshape(dot, shape=(1, args.batch_size)) + dot = mx.sym.reshape(dot, shape=(1, args.batch_size / len(contexts))) dots.append(dot) if not concat_dots: concat_dots = dot @@ -310,8 +309,6 @@ def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) return outputs, states -######################################################################################################################### - # for i in range(0, unroll_length): # output, states = decoder(embed, states) # outputs.append(output) From c216cd118f275ab52f6514b9b7ab1d2250e18047 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Fri, 26 May 2017 17:38:21 +0000 Subject: [PATCH 49/58] Attention is optional now (need to use a CLI switch to enable it) --- model_infer_gpu.sh | 3 ++- model_train_gpu.sh | 3 ++- seq2seq_bucketing.py | 42 +++++++++++++++++++++++++----------------- 3 files changed, 29 insertions(+), 19 deletions(-) diff --git a/model_infer_gpu.sh b/model_infer_gpu.sh index 311b1d8..3049bcb 100755 --- a/model_infer_gpu.sh +++ b/model_infer_gpu.sh @@ -2,7 +2,8 @@ #!/bin/bash python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0,1 --batch-size 8 \ --disp-batches 1 --num-epochs 1 --model-prefix trained_model --dropout 0.0 \ - --infer --load-epoch 1 + --infer --load-epoch 1 --attention +# --attention # --input-feed --remove-state-feed # --use-cudnn-cells # --use-cudnn-cells diff --git a/model_train_gpu.sh b/model_train_gpu.sh index ce03e52..5c7a066 100755 --- a/model_train_gpu.sh +++ b/model_train_gpu.sh @@ -1,7 +1,8 @@ #!/bin/bash python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0,1 --batch-size 256 \ --optimizer adagrad --lr 0.01 --disp-batches 2 --num-epochs 1 \ - --dropout 0.3 --seed 1234 --model-prefix trained_model --model-prefix trained_model + --dropout 0.3 --seed 1234 --model-prefix trained_model --model-prefix trained_model --attention +# --attention # --input-feed --remove-state-feed # --model-prefix trained_model # --use-cudnn-cells diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 7ba3eaa..fda88f7 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -19,7 +19,7 @@ from seq2seq_iterator import * -from attention_cell import AttentionEncoderCell, DotAttentionCell +# from attention_cell import AttentionEncoderCell, DotAttentionCell parser = argparse.ArgumentParser(description="Train RNN on Penn Tree Bank", formatter_class=argparse.ArgumentDefaultsHelpFormatter) @@ -84,6 +84,9 @@ parser.add_argument('--input-feed', action='store_true', help='Enable input feed (attention is fed into the decoder as input, rather than concatenated with output)') +parser.add_argument('--attention', action='store_true', + help='Use attention (dot attention is the currently implemented form') + #buckets = [32] # buckets = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] @@ -237,13 +240,16 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr else: decoder_feed = inputs[i] dec_out, states = decoder(decoder_feed, states) - # Should this be dec_out or states as the first argument? - concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) - attention_fc = mx.sym.FullyConnected( - data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i - ) - att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) - outputs.append(att_tanh) + if args.attention: + # Should this be dec_out or states as the first argument? + concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) + attention_fc = mx.sym.FullyConnected( + data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i + ) + curr_out = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) + else: + curr_out = dec_out + outputs.append(curr_out) outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) return outputs, states @@ -294,15 +300,17 @@ def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr else: decoder_feed = inputs[i] dec_out, states = decoder(decoder_feed, states) - # Should this be dec_out or states as the first argument? - concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) - attention_fc = mx.sym.FullyConnected( - data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i - ) - att_tanh = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) - outputs.append(att_tanh) - - fc = mx.sym.FullyConnected(data=att_tanh, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='decoder_fc%d_'%i) + # Should this be dec_out or states as the first argument? + if args.attention: + concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) + attention_fc = mx.sym.FullyConnected( + data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i + ) + curr_out = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) + else: + curr_out = dec_out + outputs.append(curr_out) + fc = mx.sym.FullyConnected(data=curr_out, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='decoder_fc%d_'%i) am = mx.sym.argmax(data=fc, axis=1) embed = mx.sym.Embedding(data=am, weight=targ_em_weight, input_dim=len(targ_vocab), output_dim=args.num_embed, name='decoder_embed%d_'%i) From af53f2b48af3069549ef8adbc9fa6ef39f273c1a Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Fri, 26 May 2017 18:18:07 +0000 Subject: [PATCH 50/58] Fixed bug in attention feed? --- model_train_gpu.sh | 4 ++-- seq2seq_bucketing.py | 15 ++++++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/model_train_gpu.sh b/model_train_gpu.sh index 5c7a066..e203ef6 100755 --- a/model_train_gpu.sh +++ b/model_train_gpu.sh @@ -1,7 +1,7 @@ #!/bin/bash python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0,1 --batch-size 256 \ - --optimizer adagrad --lr 0.01 --disp-batches 2 --num-epochs 1 \ - --dropout 0.3 --seed 1234 --model-prefix trained_model --model-prefix trained_model --attention + --optimizer adagrad --lr 0.001 --disp-batches 1 --num-epochs 10 \ + --dropout 0.3 --seed 1234 --model-prefix trained_model --model-prefix trained_model --attention # --attention # --input-feed --remove-state-feed # --model-prefix trained_model diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index fda88f7..2fdc479 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -208,16 +208,22 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr attention_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_attention_state') enc_len = len(encoder_outputs) for i in range(unroll_length): - weighted_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_weighted_state_%d_' % i) - curr_input = inputs[i] - curr_input = mx.sym.expand_dims(curr_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) +# curr_input = inputs[i] +# curr_input = mx.sym.expand_dims(curr_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) + + if i == 0: + curr_att_input = mx.sym.zeros_like(states[-1]) + else: + curr_att_input = curr_out + curr_att_input = mx.sym.expand_dims(curr_att_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) + dots = [] concat_dots = None # loop over all the encoder periods to create weights for weighted state for j in range(enc_len): transposed = mx.sym.expand_dims(encoder_outputs[j], axis=2) transposed = mx.sym.transpose(transposed, axes=(0, 2, 1), name='train_decoder_transpose%d_' % i) - dot = mx.sym.batch_dot(transposed, curr_input, name='train_decoder_batch_dot_%d_%d_' % (i, j)) + dot = mx.sym.batch_dot(transposed, curr_att_input, name='train_decoder_batch_dot_%d_%d_' % (i, j)) dot = mx.sym.exp(dot, name='train_decoder_exp_%d_%d' % (i, j)) # The batch size shouldn't be an arg here anyway. We should just remove extra dimensions # and then transpose. @@ -270,7 +276,6 @@ def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr attention_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_attention_state') enc_len = len(encoder_outputs) for i in range(unroll_length): - weighted_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_weighted_state_%d_' % i) curr_input = inputs[i] curr_input = mx.sym.expand_dims(curr_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) dots = [] From 3c498fd9adc83aeb956d742dd5451ae0a2ec458f Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Fri, 26 May 2017 20:21:07 +0000 Subject: [PATCH 51/58] WIP --- model_train_gpu.sh | 4 ++-- seq2seq_bucketing.py | 11 ++++------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/model_train_gpu.sh b/model_train_gpu.sh index e203ef6..4ca8e7c 100755 --- a/model_train_gpu.sh +++ b/model_train_gpu.sh @@ -1,7 +1,7 @@ #!/bin/bash python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0,1 --batch-size 256 \ - --optimizer adagrad --lr 0.001 --disp-batches 1 --num-epochs 10 \ - --dropout 0.3 --seed 1234 --model-prefix trained_model --model-prefix trained_model --attention + --optimizer adagrad --lr 0.01 --disp-batches 1 --num-epochs 10 \ + --dropout 0.3 --seed 1234 --model-prefix trained_model --model-prefix trained_model --attention # --input-feed --remove-state-feed # --attention # --input-feed --remove-state-feed # --model-prefix trained_model diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 2fdc479..65a33be 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -208,11 +208,8 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr attention_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_attention_state') enc_len = len(encoder_outputs) for i in range(unroll_length): -# curr_input = inputs[i] -# curr_input = mx.sym.expand_dims(curr_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) - if i == 0: - curr_att_input = mx.sym.zeros_like(states[-1]) + curr_att_input = mx.sym.zeros_like(states[-1]) # states[-1] else: curr_att_input = curr_out curr_att_input = mx.sym.expand_dims(curr_att_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) @@ -239,10 +236,10 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr attention_state += mx.sym.broadcast_mul(curr_dot, encoder_outputs[j], name='train_encoder_acc_attention_%d_%d_' % (i, j)) attention_state = mx.sym.broadcast_div(attention_state, dot_sum) - if i == 0: - att_tanh = inputs[0] if args.input_feed: - decoder_feed = mx.sym.concat(inputs[i], att_tanh, name = 'decoder_feed_concat_%d_' % i) + if i == 0: + curr_out = inputs[0] + decoder_feed = mx.sym.concat(inputs[i], curr_out, name = 'decoder_feed_concat_%d_' % i) else: decoder_feed = inputs[i] dec_out, states = decoder(decoder_feed, states) From b296d1e25a1012103c1a9cc1ea655f8b55080ce2 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Fri, 26 May 2017 14:54:03 -0700 Subject: [PATCH 52/58] WIP --- model_train_gpu.sh | 2 +- seq2seq_bucketing.py | 28 ++++++++++++++++++++++------ 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/model_train_gpu.sh b/model_train_gpu.sh index 4ca8e7c..20a81ca 100755 --- a/model_train_gpu.sh +++ b/model_train_gpu.sh @@ -1,7 +1,7 @@ #!/bin/bash python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0,1 --batch-size 256 \ --optimizer adagrad --lr 0.01 --disp-batches 1 --num-epochs 10 \ - --dropout 0.3 --seed 1234 --model-prefix trained_model --model-prefix trained_model --attention # --input-feed --remove-state-feed + --dropout 0.3 --seed 1234 --model-prefix trained_model --model-prefix trained_model --attention --input-feed --remove-state-feed # --attention # --input-feed --remove-state-feed # --model-prefix trained_model diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 65a33be..f1b7289 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -209,7 +209,10 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr enc_len = len(encoder_outputs) for i in range(unroll_length): if i == 0: - curr_att_input = mx.sym.zeros_like(states[-1]) # states[-1] +# if args.remove_state_feed: + curr_att_input = mx.sym.zeros_like(states[-1]) +# else: +# curr_att_input = states[-1] else: curr_att_input = curr_out curr_att_input = mx.sym.expand_dims(curr_att_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) @@ -238,7 +241,7 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr attention_state = mx.sym.broadcast_div(attention_state, dot_sum) if args.input_feed: if i == 0: - curr_out = inputs[0] + curr_out = mx.sym.zeros_like(inputs[0]) decoder_feed = mx.sym.concat(inputs[i], curr_out, name = 'decoder_feed_concat_%d_' % i) else: decoder_feed = inputs[i] @@ -272,16 +275,29 @@ def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr attention_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_attention_state') enc_len = len(encoder_outputs) + for i in range(unroll_length): - curr_input = inputs[i] - curr_input = mx.sym.expand_dims(curr_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) + + if i == 0: +# if args.remove_state_feed: + curr_att_input = mx.sym.zeros_like(states[-1]) +# else: +# curr_att_input = states[-1] + else: + curr_att_input = curr_out + curr_att_input = mx.sym.expand_dims(curr_att_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) + +# curr_input = inputs[i] +# curr_input = mx.sym.expand_dims(curr_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) + dots = [] concat_dots = None + # loop over all the encoder periods to create weights for weighted state for j in range(enc_len): transposed = mx.sym.expand_dims(encoder_outputs[j], axis=2) transposed = mx.sym.transpose(transposed, axes=(0, 2, 1), name='train_decoder_transpose%d_' % i) - dot = mx.sym.batch_dot(transposed, curr_input, name='train_decoder_batch_dot_%d_%d_' % (i, j)) + dot = mx.sym.batch_dot(transposed, curr_att_input, name='train_decoder_batch_dot_%d_%d_' % (i, j)) dot = mx.sym.exp(dot) dot = mx.sym.reshape(dot, shape=(1, args.batch_size / len(contexts))) dots.append(dot) @@ -298,7 +314,7 @@ def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr if i == 0: att_tanh = embed if args.input_feed: - decoder_feed = mx.sym.concat(embed, att_tanh, name = 'decoder_feed_concat_%d_' % i) + decoder_feed = mx.sym.concat(embed, curr_out, name = 'decoder_feed_concat_%d_' % i) else: decoder_feed = inputs[i] dec_out, states = decoder(decoder_feed, states) From f6adf225583f1ea5835146c2b835d9d8dbf9ad36 Mon Sep 17 00:00:00 2001 From: mattiadg Date: Mon, 29 May 2017 11:56:08 +0200 Subject: [PATCH 53/58] Fixed attention input with the decoder output, and input_feeding with the previous attention output --- seq2seq_bucketing.py | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index f1b7289..c5e8d6d 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -205,17 +205,19 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr # Need to use hidden state from attention model, but as input states = begin_state outputs = [] - attention_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_attention_state') enc_len = len(encoder_outputs) + attention_state = None for i in range(unroll_length): - if i == 0: -# if args.remove_state_feed: - curr_att_input = mx.sym.zeros_like(states[-1]) -# else: -# curr_att_input = states[-1] + if args.input_feed: + prev_attention_state = attention_state if attention_state else mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_prev_attention_state') + attention_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_attention_state') + if args.input_feed: + decoder_feed = mx.sym.concat(inputs[i], prev_attention_state, name = 'decoder_feed_concat_%d_' % i) else: - curr_att_input = curr_out - curr_att_input = mx.sym.expand_dims(curr_att_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) + decoder_feed = inputs[i] + dec_out, states = decoder(decoder_feed, states) + + curr_att_input = mx.sym.expand_dims(dec_out, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) dots = [] concat_dots = None @@ -239,13 +241,6 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr attention_state += mx.sym.broadcast_mul(curr_dot, encoder_outputs[j], name='train_encoder_acc_attention_%d_%d_' % (i, j)) attention_state = mx.sym.broadcast_div(attention_state, dot_sum) - if args.input_feed: - if i == 0: - curr_out = mx.sym.zeros_like(inputs[0]) - decoder_feed = mx.sym.concat(inputs[i], curr_out, name = 'decoder_feed_concat_%d_' % i) - else: - decoder_feed = inputs[i] - dec_out, states = decoder(decoder_feed, states) if args.attention: # Should this be dec_out or states as the first argument? concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) From 6e9d6902c29d4382f0fe5aa7bea6055cd7c2d1d8 Mon Sep 17 00:00:00 2001 From: mattiadg Date: Mon, 29 May 2017 16:13:59 +0200 Subject: [PATCH 54/58] I refactored the code for the attention and I added it also to the infer function --- seq2seq_bucketing.py | 255 +++++++++++++++++++------------------------ 1 file changed, 113 insertions(+), 142 deletions(-) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index c5e8d6d..8efbb35 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -194,153 +194,121 @@ def get_data(layout, infer=False): else: return test_iter, test_iter.src_vocab, test_iter.inv_src_vocab, test_iter.targ_vocab, test_iter.inv_targ_vocab +def attention_step(i, encoder_outputs, decoder_output): + + attention_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_attention_state') + curr_att_input = mx.sym.expand_dims(decoder_output, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) + enc_len = len(encoder_outputs) + dots = [] + concat_dots = None + # loop over all the encoder periods to create weights for weighted state + for j in range(enc_len): + transposed = mx.sym.expand_dims(encoder_outputs[j], axis=2) + transposed = mx.sym.transpose(transposed, axes=(0, 2, 1), name='train_decoder_transpose%d_' % i) + dot = mx.sym.batch_dot(transposed, curr_att_input, name='train_decoder_batch_dot_%d_%d_' % (i, j)) + dot = mx.sym.exp(dot, name='train_decoder_exp_%d_%d' % (i, j)) + # The batch size shouldn't be an arg here anyway. We should just remove extra dimensions + # and then transpose. + dot = mx.sym.reshape(dot, shape=(1, args.batch_size / len(contexts)), + name='train_decoder_unroll_reshape_%d_%d' % (i, j)) + dots.append(dot) + if not concat_dots: + concat_dots = dot + else: + concat_dots = mx.sym.concat(concat_dots, dot) + dot_sum = mx.sym.sum(concat_dots, axis=1) + for j in range(enc_len): + curr_dot = mx.sym.transpose(dots[j]) + attention_state += mx.sym.broadcast_mul(curr_dot, encoder_outputs[j], + name='train_encoder_acc_attention_%d_%d_' % (i, j)) + + attention_state = mx.sym.broadcast_div(attention_state, dot_sum) + + return attention_state + def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unroll_length, - go_symbol, fc_weight, fc_bias, attention_fc_weight, attention_fc_bias, targ_em_weight, - begin_state=None, layout='TNC', merge_outputs=None): - decoder.reset() - if begin_state is None: - begin_state = decoder.begin_state() - inputs, _ = _normalize_sequence(unroll_length, target_embed, layout, False) - # Need to use hidden state from attention model, but as input - states = begin_state - outputs = [] - enc_len = len(encoder_outputs) - attention_state = None - for i in range(unroll_length): - if args.input_feed: - prev_attention_state = attention_state if attention_state else mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_prev_attention_state') - attention_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_attention_state') - if args.input_feed: - decoder_feed = mx.sym.concat(inputs[i], prev_attention_state, name = 'decoder_feed_concat_%d_' % i) - else: - decoder_feed = inputs[i] - dec_out, states = decoder(decoder_feed, states) - - curr_att_input = mx.sym.expand_dims(dec_out, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) - - dots = [] - concat_dots = None - # loop over all the encoder periods to create weights for weighted state - for j in range(enc_len): - transposed = mx.sym.expand_dims(encoder_outputs[j], axis=2) - transposed = mx.sym.transpose(transposed, axes=(0, 2, 1), name='train_decoder_transpose%d_' % i) - dot = mx.sym.batch_dot(transposed, curr_att_input, name='train_decoder_batch_dot_%d_%d_' % (i, j)) - dot = mx.sym.exp(dot, name='train_decoder_exp_%d_%d' % (i, j)) - # The batch size shouldn't be an arg here anyway. We should just remove extra dimensions - # and then transpose. - dot = mx.sym.reshape(dot, shape=(1, args.batch_size / len(contexts)), name='train_decoder_unroll_reshape_%d_%d' % (i, j)) - dots.append(dot) - if not concat_dots: - concat_dots = dot - else: - concat_dots = mx.sym.concat(concat_dots, dot) - dot_sum = mx.sym.sum(concat_dots, axis = 1) - for j in range(enc_len): - curr_dot = mx.sym.transpose(dots[j]) - attention_state += mx.sym.broadcast_mul(curr_dot, encoder_outputs[j], name='train_encoder_acc_attention_%d_%d_' % (i, j)) - - attention_state = mx.sym.broadcast_div(attention_state, dot_sum) - if args.attention: - # Should this be dec_out or states as the first argument? - concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) - attention_fc = mx.sym.FullyConnected( - data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i - ) - curr_out = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) - else: - curr_out = dec_out - outputs.append(curr_out) - outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) - return outputs, states - -# This requires a rewrite now that we're adding attention. -# See the pre-attention version for hints. + go_symbol, fc_weight, fc_bias, attention_fc_weight, attention_fc_bias, targ_em_weight, + begin_state=None, layout='TNC', merge_outputs=None): + decoder.reset() + if begin_state is None: + begin_state = decoder.begin_state() + inputs, _ = _normalize_sequence(unroll_length, target_embed, layout, False) + # Need to use hidden state from attention model, but as input + states = begin_state + outputs = [] + + #At the first time step there is no previous attention + attention_state = None + + for i in range(unroll_length): + if args.input_feed: + # Copy previous attention output to concatenate with the embedding input + prev_attention_state = attention_state if attention_state else mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_prev_attention_state') + decoder_feed = mx.sym.concat(inputs[i], prev_attention_state, name = 'decoder_feed_concat_%d_' % i) + else: + decoder_feed = inputs[i] + dec_out, states = decoder(decoder_feed, states) + + if args.attention: + # The attention receives as input all the encoder outputs and the current decoder output and return the vector + # for this time step + attention_state = attention_step(i, encoder_outputs, dec_out) + # The attention output is combined with the decoder output for computing the next word + concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) + attention_fc = mx.sym.FullyConnected( + data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i + ) + curr_out = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) + else: + # We avoid all the attention computation + curr_out = dec_out + outputs.append(curr_out) + outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) + return outputs, states + + def infer_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unroll_length, go_symbol, fc_weight, fc_bias, attention_fc_weight, attention_fc_bias, targ_em_weight, begin_state=None, layout='TNC', merge_outputs=None): - decoder.reset() - if begin_state is None: - begin_state = decoder.begin_state() - inputs, _ = _normalize_sequence(unroll_length, target_embed, layout, False) - # Need to use hidden state from attention model, but as input - states = begin_state - outputs = [] - embed = inputs[0] - - attention_state = mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_attention_state') - enc_len = len(encoder_outputs) - - for i in range(unroll_length): - - if i == 0: -# if args.remove_state_feed: - curr_att_input = mx.sym.zeros_like(states[-1]) -# else: -# curr_att_input = states[-1] - else: - curr_att_input = curr_out - curr_att_input = mx.sym.expand_dims(curr_att_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) - -# curr_input = inputs[i] -# curr_input = mx.sym.expand_dims(curr_input, axis=2, name='train_dec_unroll_expand_dims_%d_' % i) - - dots = [] - concat_dots = None - - # loop over all the encoder periods to create weights for weighted state - for j in range(enc_len): - transposed = mx.sym.expand_dims(encoder_outputs[j], axis=2) - transposed = mx.sym.transpose(transposed, axes=(0, 2, 1), name='train_decoder_transpose%d_' % i) - dot = mx.sym.batch_dot(transposed, curr_att_input, name='train_decoder_batch_dot_%d_%d_' % (i, j)) - dot = mx.sym.exp(dot) - dot = mx.sym.reshape(dot, shape=(1, args.batch_size / len(contexts))) - dots.append(dot) - if not concat_dots: - concat_dots = dot - else: - concat_dots = mx.sym.concat(concat_dots, dot) - dot_sum = mx.sym.sum(concat_dots, axis = 1) - for j in range(enc_len): - curr_dot = mx.sym.transpose(dots[j]) - attention_state += mx.sym.broadcast_mul(curr_dot, encoder_outputs[j], name='train_encoder_acc_attention_%d_%d_' % (i, j)) - - attention_state = mx.sym.broadcast_div(attention_state, dot_sum) - if i == 0: - att_tanh = embed - if args.input_feed: - decoder_feed = mx.sym.concat(embed, curr_out, name = 'decoder_feed_concat_%d_' % i) - else: - decoder_feed = inputs[i] - dec_out, states = decoder(decoder_feed, states) - # Should this be dec_out or states as the first argument? - if args.attention: - concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) - attention_fc = mx.sym.FullyConnected( - data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i - ) - curr_out = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) - else: - curr_out = dec_out - outputs.append(curr_out) - fc = mx.sym.FullyConnected(data=curr_out, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='decoder_fc%d_'%i) - am = mx.sym.argmax(data=fc, axis=1) - embed = mx.sym.Embedding(data=am, weight=targ_em_weight, input_dim=len(targ_vocab), output_dim=args.num_embed, name='decoder_embed%d_'%i) - - outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) - return outputs, states - -# for i in range(0, unroll_length): -# output, states = decoder(embed, states) -# outputs.append(output) -# fc = mx.sym.FullyConnected(data=output, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='decoder_fc%d_'%i) -# am = mx.sym.argmax(data=fc, axis=1) -# embed = mx.sym.Embedding(data=am, weight=targ_em_weight, input_dim=len(targ_vocab), -# output_dim=args.num_embed, name='decoder_embed%d_'%i) -# -# outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) -# -# return outputs, states + decoder.reset() + if begin_state is None: + begin_state = decoder.begin_state() + inputs, _ = _normalize_sequence(unroll_length, target_embed, layout, False) + # Need to use hidden state from attention model, but as input + states = begin_state + outputs = [] + embed = inputs[0] + + attention_state = None + + for i in range(unroll_length): + if args.input_feed: + # Copy previous attention output to concatenate with the embedding input + prev_attention_state = attention_state if attention_state else mx.sym.zeros_like(encoder_outputs[-1], + name='train_dec_unroll_prev_attention_state') + decoder_feed = mx.sym.concat(embed, prev_attention_state, name='decoder_feed_concat_%d_' % i) + else: + decoder_feed = embed + dec_out, states = decoder(decoder_feed, states) + + # Should this be dec_out or states as the first argument? + if args.attention: + attention_state = attention_step(i, encoder_outputs, dec_out) + concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) + attention_fc = mx.sym.FullyConnected( + data=concatenated, weight=attention_fc_weight, bias=attention_fc_bias, num_hidden=args.num_hidden, name='attention_fc%d_' % i + ) + curr_out = mx.sym.Activation(data = attention_fc, act_type='tanh', name = 'attention_tanh%d_' % i) + else: + curr_out = dec_out + outputs.append(curr_out) + fc = mx.sym.FullyConnected(data=curr_out, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='decoder_fc%d_'%i) + am = mx.sym.argmax(data=fc, axis=1) + embed = mx.sym.Embedding(data=am, weight=targ_em_weight, input_dim=len(targ_vocab), output_dim=args.num_embed, name='decoder_embed%d_'%i) + + outputs, _ = _normalize_sequence(unroll_length, outputs, layout, merge_outputs) + return outputs, states def train(args): @@ -715,6 +683,9 @@ def sym_gen(seq_len): args = parser.parse_args() + if args.input_feed: + assert (args.attention == True), "--input-feed is legal only with --attention!" + # set random seeds for Python, NumPy and MxNet import random seed = args.seed From c7cf714d082914509573d231a97bce8383a13dfa Mon Sep 17 00:00:00 2001 From: mattiadg Date: Mon, 29 May 2017 18:05:52 +0200 Subject: [PATCH 55/58] Added a working bidirectional encoder --- seq2seq_bucketing.py | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 8efbb35..3a9e5bf 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -6,7 +6,7 @@ import math import nltk -from mxnet.rnn import LSTMCell, SequentialRNNCell, FusedRNNCell +from mxnet.rnn import LSTMCell, SequentialRNNCell, FusedRNNCell, BidirectionalCell #from rnn_cell import LSTMCell, SequentialRNNCell from itertools import takewhile, dropwhile from operator import itemgetter @@ -35,7 +35,7 @@ help='hidden layer size') parser.add_argument('--num-embed', type=int, default=200, help='embedding layer size') -parser.add_argument('--bidirectional', type=bool, default=False, +parser.add_argument('--bidirectional', action='store_true', help='whether to use bidirectional layers') parser.add_argument('--gpus', type=str, help='list of gpus to run, e.g. 0 or 0,2,5. empty means using cpu. ' \ @@ -331,10 +331,18 @@ def train(args): mode='lstm', prefix='lstm_encoder', bidirectional=args.bidirectional, get_next_state=True)) else: for i in range(args.num_layers): - encoder.add(LSTMCell(args.num_hidden, prefix='rnn_encoder%d_' % i)) - if i < args.num_layers - 1 and args.dropout > 0.0: - encoder.add(mx.rnn.DropoutCell(args.dropout, prefix='rnn_encoder%d_' % i)) -# encoder.add(AttentionEncoderCell()) + if args.bidirectional: + encoder.add( + BidirectionalCell( + LSTMCell(args.num_hidden // 2, prefix='rnn_encoder_f%d_' % i), + LSTMCell(args.num_hidden // 2, prefix='rnn_encoder_b%d_' % i))) + if i < args.num_layers - 1 and args.dropout > 0.0: + encoder.add(mx.rnn.DropoutCell(args.dropout, prefix='rnn_encoder%d_' % i)) + else: + encoder.add( + LSTMCell(args.num_hidden, prefix='rnn_encoder%d_' % i)) + if i < args.num_layers - 1 and args.dropout > 0.0: + encoder.add(mx.rnn.DropoutCell(args.dropout, prefix='rnn_encoder%d_' % i)) decoder = mx.rnn.SequentialRNNCell() @@ -346,7 +354,6 @@ def train(args): decoder.add(LSTMCell(args.num_hidden, prefix=('rnn_decoder%d_' % i))) if i < args.num_layers - 1 and args.dropout > 0.0: decoder.add(mx.rnn.DropoutCell(args.dropout, prefix='rnn_decoder%d_' % i)) -# decoder.add(DotAttentionCell()) def sym_gen(seq_len): src_data = mx.sym.Variable('src_data') @@ -380,8 +387,6 @@ def sym_gen(seq_len): attention_fc_weight, attention_fc_bias, targ_em_weight, begin_state=encoder_states, layout='TNC', merge_outputs=True) -# outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=encoder_states, layout=layout, merge_outputs=True) - # NEW rs = mx.sym.Reshape(outputs, shape=(-1, args.num_hidden), name='sym_gen_reshape1') fc = mx.sym.FullyConnected(data=rs, weight=fc_weight, bias=fc_bias, num_hidden=len(targ_vocab), name='sym_gen_fc') @@ -513,11 +518,18 @@ def infer(args): encoder = SequentialRNNCell() for i in range(args.num_layers): - encoder.add(LSTMCell(args.num_hidden, prefix='rnn_encoder%d_' % i)) - if i < args.num_layers - 1 and args.dropout > 0.0: - encoder.add(mx.rnn.DropoutCell(args.dropout, prefix='rnn_encoder%d_' % i)) - -# encoder.add(AttentionEncoderCell()) + if args.bidirectional: + encoder.add( + BidirectionalCell( + LSTMCell(args.num_hidden // 2, prefix='rnn_encoder_f%d_' % i), + LSTMCell(args.num_hidden // 2, prefix='rnn_encoder_b%d_' % i))) + if i < args.num_layers - 1 and args.dropout > 0.0: + encoder.add(mx.rnn.DropoutCell(args.dropout, prefix='rnn_encoder%d_' % i)) + else: + encoder.add( + LSTMCell(args.num_hidden, prefix='rnn_encoder%d_' % i)) + if i < args.num_layers - 1 and args.dropout > 0.0: + encoder.add(mx.rnn.DropoutCell(args.dropout, prefix='rnn_encoder%d_' % i)) if args.use_cudnn_cells: decoder = mx.rnn.FusedRNNCell(args.num_hidden, num_layers=args.num_layers, @@ -531,8 +543,6 @@ def infer(args): if i < args.num_layers - 1 and args.dropout > 0.0: decoder.add(mx.rnn.DropoutCell(args.dropout, prefix='rnn_decoder%d_' % i)) -# decoder.add(DotAttentionCell()) - def sym_gen(seq_len): src_data = mx.sym.Variable('src_data') targ_data = mx.sym.Variable('targ_data') From c1c11c14db3b615c0c83894c2885f60e18283041 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Wed, 7 Jun 2017 20:27:16 +0000 Subject: [PATCH 56/58] Attention based on previous state --- model_train_gpu.sh | 2 +- seq2seq_bucketing.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/model_train_gpu.sh b/model_train_gpu.sh index 20a81ca..6449087 100755 --- a/model_train_gpu.sh +++ b/model_train_gpu.sh @@ -1,6 +1,6 @@ #!/bin/bash python seq2seq_bucketing.py --num-hidden 512 --num-embed 512 --num-layers 2 --gpus 0,1 --batch-size 256 \ - --optimizer adagrad --lr 0.01 --disp-batches 1 --num-epochs 10 \ + --optimizer adagrad --lr 0.01 --disp-batches 10 --num-epochs 10 \ --dropout 0.3 --seed 1234 --model-prefix trained_model --model-prefix trained_model --attention --input-feed --remove-state-feed # --attention # --input-feed --remove-state-feed diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 3a9e5bf..243833a 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -240,6 +240,7 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr #At the first time step there is no previous attention attention_state = None + dec_out = None for i in range(unroll_length): if args.input_feed: @@ -248,12 +249,14 @@ def train_decoder_unroll(decoder, encoder_outputs, target_embed, targ_vocab, unr decoder_feed = mx.sym.concat(inputs[i], prev_attention_state, name = 'decoder_feed_concat_%d_' % i) else: decoder_feed = inputs[i] + + prev_dec_out = dec_out if dec_out else mx.sym.zeros_like(encoder_outputs[-1], name='train_dec_unroll_prev_dec_out') # begin_state dec_out, states = decoder(decoder_feed, states) if args.attention: # The attention receives as input all the encoder outputs and the current decoder output and return the vector # for this time step - attention_state = attention_step(i, encoder_outputs, dec_out) + attention_state = attention_step(i, encoder_outputs, prev_dec_out) # The attention output is combined with the decoder output for computing the next word concatenated = mx.sym.concat(dec_out, attention_state, name = 'train_decoder_concat_%d_' % i) attention_fc = mx.sym.FullyConnected( From 8929b81bce0ae8e6d89c6ec216eafb4892de7527 Mon Sep 17 00:00:00 2001 From: Marek Kolodziej Date: Mon, 7 Aug 2017 14:37:51 -0700 Subject: [PATCH 57/58] Update README.md --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f0c92b6..bbf30ab 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,10 @@ -OpenNMT seq2seq model -========================== +LSTM encoder-decoder seq2seq model +================================== -This project is an implementation of the [OpenNMT sequence-to-sequence model](http://opennmt.net/Models/) in MxNet. The OpenNMT model is based on: +This project is an implementation of a simple encoder-decoder seq2seq model in MxNet. The OpenNMT model is based on: - a stacked LSTM encoder - a stacked LSTM decoder -- an attention model The reference model configuration is: From d53289eeea575650bd3693c5cd3afb63095fb9ca Mon Sep 17 00:00:00 2001 From: xuerenlv Date: Fri, 11 Aug 2017 17:28:30 +0800 Subject: [PATCH 58/58] fix bug: bidirectional --- seq2seq_bucketing.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/seq2seq_bucketing.py b/seq2seq_bucketing.py index 243833a..e7bbd1a 100755 --- a/seq2seq_bucketing.py +++ b/seq2seq_bucketing.py @@ -376,6 +376,10 @@ def sym_gen(seq_len): layout = 'TNC' encoder_outputs, encoder_states = encoder.unroll(enc_seq_len, inputs=src_embed, layout=layout) + if args.bidirectional: + encoder_states = [mx.sym.concat(encoder_states[0][0], encoder_states[0][1]), + mx.sym.concat(encoder_states[0][1], encoder_states[1][1])] + if args.remove_state_feed: encoder_states = None @@ -565,6 +569,10 @@ def sym_gen(seq_len): layout = 'TNC' encoder_outputs, encoder_states = encoder.unroll(enc_seq_len, inputs=src_embed, layout=layout) + if args.bidirectional: + encoder_states = [mx.sym.concat(encoder_states[0][0], encoder_states[0][1]), + mx.sym.concat(encoder_states[0][1], encoder_states[1][1])] + # This should be based on EOS or max seq len for inference, but here we unroll to the target length # TODO: fix symbol # outputs, _ = decoder.unroll(dec_seq_len, targ_embed, begin_state=states, layout=layout, merge_outputs=True)