batch_size: int = 64 embedding_size: int = 300 hidden_size: int = 300 da: int = 350 r: int = 30 output_mlp_size: int = 3000 max_epoch: int = 20 vocab_size: int = 20000 dropout_ratio: float = 0.3 attention_penalty_coef: float = 0.03 l2_penalty_coef: float = 1e-4 x_train, x_test, y_train, y_test = load_imdb(vocab_size) x_train = with_padding(x_train, padding_type='post', max_sequence_length=max_len) x_test = with_padding(x_test, padding_type='post', max_sequence_length=max_len) y_train = y_train[:, None] y_test = y_test[:, None] num_train_batch = len(x_train) // batch_size num_dev_batch = len(x_test) // batch_size def load_train_func(index): return x_train[index], y_train[index] def load_dev_func(index): return x_test[index], y_test[index]
import argparse parser = argparse.ArgumentParser(description='Char-cnn-lstm language model training.') parser.add_argument('--context', '-c', type=str, default='cpu', help='You can choose cpu or cudnn.') parser.add_argument('--device', '-d', type=int, default=0, help='You can choose the device id when you use cudnn.') args = parser.parse_args() if args.context == 'cudnn': from nnabla.ext_utils import get_extension_context ctx = get_extension_context('cudnn', device_id=args.device) nn.set_default_context(ctx) ptb_dataset = PTBDataset(return_char_info=True) train_data = with_padding(ptb_dataset.train_data, padding_type='post') valid_data = with_padding(ptb_dataset.valid_data, padding_type='post') sentence_length = 60 batch_size = 100 max_epoch = 300 word_vocab_size = len(ptb_dataset.w2i) char_vocab_size = len(ptb_dataset.c2i) x_train = train_data[:, :sentence_length].astype(np.int32) y_train = train_data[:, 1:sentence_length+1].astype(np.int32) x_train = wordseq2charseq(x_train, ptb_dataset.i2w, ptb_dataset.c2i, ptb_dataset.i2c) x_valid = valid_data[:, :sentence_length].astype(np.int32) y_valid = valid_data[:, 1:sentence_length+1].astype(np.int32)
help='You can choose cpu or cudnn.') parser.add_argument('--device', '-d', type=int, default=0, help='You can choose the device id when you use cudnn.') args = parser.parse_args() if args.context == 'cudnn': from nnabla.ext_utils import get_extension_context ctx = get_extension_context('cudnn', device_id=args.device) nn.set_default_context(ctx) train_source, dev_source, test_source, w2i_source, i2w_source = load_enja_parallel_data( 'en') train_source = with_padding(train_source, padding_type='post')[:, ::-1].astype(np.int32) dev_source = with_padding(dev_source, padding_type='post')[:, ::-1].astype(np.int32) test_source = with_padding(test_source, padding_type='post')[:, ::-1].astype(np.int32) train_target, dev_target, test_target, w2i_target, i2w_target = load_enja_parallel_data( 'ja') train_target = with_padding(train_target, padding_type='post').astype(np.int32) dev_target = with_padding(dev_target, padding_type='post').astype(np.int32) test_target = with_padding(test_target, padding_type='post').astype(np.int32) vocab_size_source = len(w2i_source) vocab_size_target = len(w2i_target) sentence_length_source = train_source.shape[1] sentence_length_target = train_target.shape[1]
default='cpu', help='You can choose cpu or cudnn.') parser.add_argument('--device', '-d', type=int, default=0, help='You can choose the device id when you use cudnn.') args = parser.parse_args() if args.context == 'cudnn': from nnabla.ext_utils import get_extension_context ctx = get_extension_context('cudnn', device_id=args.device) nn.set_default_context(ctx) train_data = load_data('./ptb/train.txt', with_bos=True) train_data = with_padding(train_data, padding_type='post') valid_data = load_data('./ptb/valid.txt', with_bos=True) valid_data = with_padding(valid_data, padding_type='post') vocab_size = len(w2i) sentence_length = 60 embedding_size = 128 hidden_size = 128 batch_size = 32 max_epoch = 100 x_train = train_data[:, :sentence_length].astype(np.int32) y_train = train_data[:, 1:sentence_length - 1].astype(np.int32) x_valid = valid_data[:, :sentence_length].astype(np.int32)