From 310215bb18323621bd19bddc46f03c2d518d888d Mon Sep 17 00:00:00 2001 From: Yifei Ma Date: Mon, 12 Nov 2018 20:00:26 -0800 Subject: [PATCH 1/7] hybridize rnn and add model graph --- example/gluon/word_language_model/README.md | 13 +++++- .../gluon/word_language_model/model-graph.png | Bin 0 -> 126048 bytes example/gluon/word_language_model/model.py | 4 +- example/gluon/word_language_model/train.py | 37 ++++++++++++++++-- 4 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 example/gluon/word_language_model/model-graph.png diff --git a/example/gluon/word_language_model/README.md b/example/gluon/word_language_model/README.md index 43d173b868ab..7da3893a8336 100644 --- a/example/gluon/word_language_model/README.md +++ b/example/gluon/word_language_model/README.md @@ -28,7 +28,9 @@ python train.py --cuda --tied --nhid 650 --emsize 650 --epochs 40 --dropout 0.5 ``` python train.py --cuda --tied --nhid 1500 --emsize 1500 --epochs 60 --dropout 0.65 # Test ppl of 88.42 ``` - +``` +python train.py --export-only # hybridize and export model graph (requires mxboard) +```
@@ -38,7 +40,8 @@ usage: train.py [-h] [--model MODEL] [--emsize EMSIZE] [--nhid NHID] [--nlayers NLAYERS] [--lr LR] [--clip CLIP] [--epochs EPOCHS] [--batch_size N] [--bptt BPTT] [--dropout DROPOUT] [--tied] [--cuda] [--log-interval N] [--save SAVE] [--gctype GCTYPE] - [--gcthreshold GCTHRESHOLD] + [--gcthreshold GCTHRESHOLD] [--hybridize] [--static-alloc] + [--static-shape] MXNet Autograd RNN/LSTM Language Model on Wikitext-2. @@ -62,4 +65,10 @@ optional arguments: `none` for now. --gcthreshold GCTHRESHOLD threshold for 2bit gradient compression + --hybridize whether to hybridize in mxnet>=1.3 + --static-alloc whether to use static-alloc hybridize in mxnet>=1.3 + --static-shape whether to use static-shape hybridize in mxnet>=1.3 + --export-only export a symbol graph and exit ``` + +![model graph](./model-graph.png?raw=true "rnn model graph") diff --git a/example/gluon/word_language_model/model-graph.png b/example/gluon/word_language_model/model-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..c621518c57be599f1107fa0f7add4fe5757ae944 GIT binary patch literal 126048 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%0ABHFwN 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 Ok-euRm3LSF<^KSes*+Ox literal 0 HcmV?d00001 diff --git a/example/gluon/word_language_model/model.py b/example/gluon/word_language_model/model.py index a810c416d0ce..ec6e700a854a 100644 --- a/example/gluon/word_language_model/model.py +++ b/example/gluon/word_language_model/model.py @@ -19,7 +19,7 @@ from mxnet import gluon from mxnet.gluon import nn, rnn -class RNNModel(gluon.Block): +class RNNModel(gluon.HybridBlock): """A model with an encoder, recurrent layer, and a decoder.""" def __init__(self, mode, vocab_size, num_embed, num_hidden, @@ -53,7 +53,7 @@ def __init__(self, mode, vocab_size, num_embed, num_hidden, self.num_hidden = num_hidden - def forward(self, inputs, hidden): + def hybrid_forward(self, F, inputs, hidden): emb = self.drop(self.encoder(inputs)) output, hidden = self.rnn(emb, hidden) output = self.drop(output) diff --git a/example/gluon/word_language_model/train.py b/example/gluon/word_language_model/train.py index 7f0a916b79bd..17410e0f12f8 100644 --- a/example/gluon/word_language_model/train.py +++ b/example/gluon/word_language_model/train.py @@ -58,6 +58,14 @@ takes `2bit` or `none` for now.') parser.add_argument('--gcthreshold', type=float, default=0.5, help='threshold for 2bit gradient compression') +parser.add_argument('--hybridize', action='store_true', + help='whether to hybridize in mxnet>=1.3') +parser.add_argument('--static-alloc', action='store_true', + help='whether to use static-alloc hybridize in mxnet>=1.3') +parser.add_argument('--static-shape', action='store_true', + help='whether to use static-shape hybridize in mxnet>=1.3') +parser.add_argument('--export-only', action='store_true', + help='export a symbol graph and exit') args = parser.parse_args() print(args) @@ -72,6 +80,15 @@ else: context = mx.cpu(0) +if args.export_only: + args.hybridize = True + +# optional parameters only for mxnet >= 1.3 +hybridize_optional = dict(filter(lambda kv:kv[1], + {'static_alloc':args.static_alloc, 'static_shape':args.static_shape}.items())) +if args.hybridize: + print('hybridize_optional', hybridize_optional) + dirname = './data' dirname = os.path.expanduser(dirname) if not os.path.exists(dirname): @@ -114,6 +131,8 @@ ntokens = len(vocab) model = model.RNNModel(args.model, ntokens, args.emsize, args.nhid, args.nlayers, args.dropout, args.tied) +if args.hybridize: + model.hybridize(**hybridize_optional) model.initialize(mx.init.Xavier(), ctx=context) compression_params = None if args.gctype == 'none' else {'type': args.gctype, 'threshold': args.gcthreshold} @@ -123,6 +142,8 @@ 'wd': 0}, compression_params=compression_params) loss = gluon.loss.SoftmaxCrossEntropyLoss() +if args.hybridize: + loss.hybridize(**hybridize_optional) ############################################################################### # Training code @@ -177,6 +198,10 @@ def train(): epoch, i, cur_L, math.exp(cur_L))) total_L = 0.0 + if args.export_only: + model.export('model') + return + val_L = eval(val_data) print('[Epoch %d] time cost %.2fs, valid loss %.2f, valid ppl %.2f'%( @@ -193,6 +218,12 @@ def train(): if __name__ == '__main__': train() - model.load_parameters(args.save, context) - test_L = eval(test_data) - print('Best test loss %.2f, test ppl %.2f'%(test_L, math.exp(test_L))) + if args.export_only: + from mxboard import SummaryWriter + with SummaryWriter(logdir='./model-graph') as sw: + sw.add_graph(mx.sym.load('./model-symbol.json')) + else: + model.load_parameters(args.save, context) + test_L = eval(test_data) + print('Best test loss %.2f, test ppl %.2f'%(test_L, math.exp(test_L))) + From 3e151956eb2096a27811409ccc8d01dcd7923fff Mon Sep 17 00:00:00 2001 From: Yifei Ma Date: Thu, 15 Nov 2018 15:30:51 -0800 Subject: [PATCH 2/7] trigger CI --- example/gluon/word_language_model/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/gluon/word_language_model/README.md b/example/gluon/word_language_model/README.md index 7da3893a8336..9f5b1471e9cf 100644 --- a/example/gluon/word_language_model/README.md +++ b/example/gluon/word_language_model/README.md @@ -41,7 +41,7 @@ usage: train.py [-h] [--model MODEL] [--emsize EMSIZE] [--nhid NHID] [--batch_size N] [--bptt BPTT] [--dropout DROPOUT] [--tied] [--cuda] [--log-interval N] [--save SAVE] [--gctype GCTYPE] [--gcthreshold GCTHRESHOLD] [--hybridize] [--static-alloc] - [--static-shape] + [--static-shape] [--export-only] MXNet Autograd RNN/LSTM Language Model on Wikitext-2. From ae408386182e5a7df103970118a0a84927a7e77a Mon Sep 17 00:00:00 2001 From: Yifei Ma Date: Mon, 26 Nov 2018 15:47:11 -0800 Subject: [PATCH 3/7] separate mxboard visualization --- example/gluon/word_language_model/README.md | 11 ++++++++++- example/gluon/word_language_model/train.py | 8 ++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/example/gluon/word_language_model/README.md b/example/gluon/word_language_model/README.md index 9f5b1471e9cf..72cbbaf7a3f1 100644 --- a/example/gluon/word_language_model/README.md +++ b/example/gluon/word_language_model/README.md @@ -29,7 +29,7 @@ python train.py --cuda --tied --nhid 650 --emsize 650 --epochs 40 --dropout 0.5 python train.py --cuda --tied --nhid 1500 --emsize 1500 --epochs 60 --dropout 0.65 # Test ppl of 88.42 ``` ``` -python train.py --export-only # hybridize and export model graph (requires mxboard) +python train.py --export-only # hybridize and export model graph. See below for how to visualize the graph with mxboard (separately installed). ```
@@ -71,4 +71,13 @@ optional arguments: --export-only export a symbol graph and exit ``` +If [mxboard](https://github.com/awslabs/mxboard) is installed, use the following approach to visualize the graph +```python +import mxnet, mxboard +with mxboard.SummaryWriter(logdir='./model-graph') as sw: + sw.add_graph(mxnet.sym.load('./model-symbol.json')) +``` +```bash +tensorboard --logdir=./model-graph/ +``` ![model graph](./model-graph.png?raw=true "rnn model graph") diff --git a/example/gluon/word_language_model/train.py b/example/gluon/word_language_model/train.py index 17410e0f12f8..fdadb056a1ba 100644 --- a/example/gluon/word_language_model/train.py +++ b/example/gluon/word_language_model/train.py @@ -65,7 +65,7 @@ parser.add_argument('--static-shape', action='store_true', help='whether to use static-shape hybridize in mxnet>=1.3') parser.add_argument('--export-only', action='store_true', - help='export a symbol graph and exit') + help='export a symbol graph and exit', default=False) args = parser.parse_args() print(args) @@ -218,11 +218,7 @@ def train(): if __name__ == '__main__': train() - if args.export_only: - from mxboard import SummaryWriter - with SummaryWriter(logdir='./model-graph') as sw: - sw.add_graph(mx.sym.load('./model-symbol.json')) - else: + if not args.export_only: model.load_parameters(args.save, context) test_L = eval(test_data) print('Best test loss %.2f, test ppl %.2f'%(test_L, math.exp(test_L))) From bd824555421bb7f8c7d8aa7c950e59ff8262c511 Mon Sep 17 00:00:00 2001 From: Yifei Ma Date: Mon, 26 Nov 2018 15:52:43 -0800 Subject: [PATCH 4/7] add options and she-bang --- example/gluon/word_language_model/README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/example/gluon/word_language_model/README.md b/example/gluon/word_language_model/README.md index 72cbbaf7a3f1..a9a2b4f0e2b8 100644 --- a/example/gluon/word_language_model/README.md +++ b/example/gluon/word_language_model/README.md @@ -29,7 +29,7 @@ python train.py --cuda --tied --nhid 650 --emsize 650 --epochs 40 --dropout 0.5 python train.py --cuda --tied --nhid 1500 --emsize 1500 --epochs 60 --dropout 0.65 # Test ppl of 88.42 ``` ``` -python train.py --export-only # hybridize and export model graph. See below for how to visualize the graph with mxboard (separately installed). +python train.py --export-only # hybridize and export model graph. See below for visualization options. ```
@@ -71,13 +71,15 @@ optional arguments: --export-only export a symbol graph and exit ``` -If [mxboard](https://github.com/awslabs/mxboard) is installed, use the following approach to visualize the graph +You may visualize the graph with `mxnet.viz.plot_network` without any additional dependencies. Alternatively, if [mxboard](https://github.com/awslabs/mxboard) is installed, use the following approach for interactive visualization. ```python +#!python import mxnet, mxboard with mxboard.SummaryWriter(logdir='./model-graph') as sw: sw.add_graph(mxnet.sym.load('./model-symbol.json')) ``` ```bash +#!/bin/bash tensorboard --logdir=./model-graph/ ``` ![model graph](./model-graph.png?raw=true "rnn model graph") From 6fb5d851b8c018fec78edb55d6914f8f1dd65b6c Mon Sep 17 00:00:00 2001 From: Yifei Ma Date: Mon, 26 Nov 2018 15:55:23 -0800 Subject: [PATCH 5/7] add defaults --- example/gluon/word_language_model/README.md | 6 ++++-- example/gluon/word_language_model/train.py | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/example/gluon/word_language_model/README.md b/example/gluon/word_language_model/README.md index a9a2b4f0e2b8..ad53b4f253c3 100644 --- a/example/gluon/word_language_model/README.md +++ b/example/gluon/word_language_model/README.md @@ -65,10 +65,12 @@ optional arguments: `none` for now. --gcthreshold GCTHRESHOLD threshold for 2bit gradient compression - --hybridize whether to hybridize in mxnet>=1.3 + --hybridize whether to hybridize in mxnet>=1.3 (default=False) --static-alloc whether to use static-alloc hybridize in mxnet>=1.3 + (default=False) --static-shape whether to use static-shape hybridize in mxnet>=1.3 - --export-only export a symbol graph and exit + (default=False) + --export-only export a symbol graph and exit (default=False) ``` You may visualize the graph with `mxnet.viz.plot_network` without any additional dependencies. Alternatively, if [mxboard](https://github.com/awslabs/mxboard) is installed, use the following approach for interactive visualization. diff --git a/example/gluon/word_language_model/train.py b/example/gluon/word_language_model/train.py index fdadb056a1ba..88d4bf7fc957 100644 --- a/example/gluon/word_language_model/train.py +++ b/example/gluon/word_language_model/train.py @@ -59,13 +59,13 @@ parser.add_argument('--gcthreshold', type=float, default=0.5, help='threshold for 2bit gradient compression') parser.add_argument('--hybridize', action='store_true', - help='whether to hybridize in mxnet>=1.3') + help='whether to hybridize in mxnet>=1.3 (default=False)') parser.add_argument('--static-alloc', action='store_true', - help='whether to use static-alloc hybridize in mxnet>=1.3') + help='whether to use static-alloc hybridize in mxnet>=1.3 (default=False)') parser.add_argument('--static-shape', action='store_true', - help='whether to use static-shape hybridize in mxnet>=1.3') + help='whether to use static-shape hybridize in mxnet>=1.3 (default=False)') parser.add_argument('--export-only', action='store_true', - help='export a symbol graph and exit', default=False) + help='export a symbol graph and exit (default=False)') args = parser.parse_args() print(args) From f804accaf01d64795ca836459bf6a4ad22e2a63b Mon Sep 17 00:00:00 2001 From: Yifei Ma Date: Tue, 11 Dec 2018 11:45:45 -0500 Subject: [PATCH 6/7] trigger CI From 4846791fa76ce50556a606ecc0d0ab90b81977f8 Mon Sep 17 00:00:00 2001 From: Yifei Ma Date: Wed, 6 Feb 2019 23:01:05 -0800 Subject: [PATCH 7/7] rename export-model --- example/gluon/word_language_model/README.md | 6 +++--- example/gluon/word_language_model/train.py | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/example/gluon/word_language_model/README.md b/example/gluon/word_language_model/README.md index ad53b4f253c3..4a77950d01bc 100644 --- a/example/gluon/word_language_model/README.md +++ b/example/gluon/word_language_model/README.md @@ -29,7 +29,7 @@ python train.py --cuda --tied --nhid 650 --emsize 650 --epochs 40 --dropout 0.5 python train.py --cuda --tied --nhid 1500 --emsize 1500 --epochs 60 --dropout 0.65 # Test ppl of 88.42 ``` ``` -python train.py --export-only # hybridize and export model graph. See below for visualization options. +python train.py --export-model # hybridize and export model graph. See below for visualization options. ```
@@ -41,7 +41,7 @@ usage: train.py [-h] [--model MODEL] [--emsize EMSIZE] [--nhid NHID] [--batch_size N] [--bptt BPTT] [--dropout DROPOUT] [--tied] [--cuda] [--log-interval N] [--save SAVE] [--gctype GCTYPE] [--gcthreshold GCTHRESHOLD] [--hybridize] [--static-alloc] - [--static-shape] [--export-only] + [--static-shape] [--export-model] MXNet Autograd RNN/LSTM Language Model on Wikitext-2. @@ -70,7 +70,7 @@ optional arguments: (default=False) --static-shape whether to use static-shape hybridize in mxnet>=1.3 (default=False) - --export-only export a symbol graph and exit (default=False) + --export-model export a symbol graph and exit (default=False) ``` You may visualize the graph with `mxnet.viz.plot_network` without any additional dependencies. Alternatively, if [mxboard](https://github.com/awslabs/mxboard) is installed, use the following approach for interactive visualization. diff --git a/example/gluon/word_language_model/train.py b/example/gluon/word_language_model/train.py index 88d4bf7fc957..d08c07ec921d 100644 --- a/example/gluon/word_language_model/train.py +++ b/example/gluon/word_language_model/train.py @@ -64,7 +64,7 @@ help='whether to use static-alloc hybridize in mxnet>=1.3 (default=False)') parser.add_argument('--static-shape', action='store_true', help='whether to use static-shape hybridize in mxnet>=1.3 (default=False)') -parser.add_argument('--export-only', action='store_true', +parser.add_argument('--export-model', action='store_true', help='export a symbol graph and exit (default=False)') args = parser.parse_args() @@ -80,7 +80,7 @@ else: context = mx.cpu(0) -if args.export_only: +if args.export_model: args.hybridize = True # optional parameters only for mxnet >= 1.3 @@ -198,7 +198,7 @@ def train(): epoch, i, cur_L, math.exp(cur_L))) total_L = 0.0 - if args.export_only: + if args.export_model: model.export('model') return @@ -218,7 +218,7 @@ def train(): if __name__ == '__main__': train() - if not args.export_only: + if not args.export_model: model.load_parameters(args.save, context) test_L = eval(test_data) print('Best test loss %.2f, test ppl %.2f'%(test_L, math.exp(test_L)))