def train(train_data, val_data, data_parser, args): input_dict, output_dict = data_parser.input_dict, data_parser.output_dict net = get_model(input_dict, output_dict, args.model, args.hidden_size, args.max_len, args.layers, args.dropout, kernel_size=args.kernel_size, dilate=args.dilate, ignore_pad=args.ignore_pad, multilinear=(not args.single_linear), input_len=data_parser.input_max_len, stride=args.stride, attn_heads=args.attn_heads, cuda=args.cuda) net.initialize_params(args.init_params) print(args) print() print(net) print('Number of Elements: %d' % (sum([x.view(-1).size(0) for x in net.parameters()]))) trainer = Trainer(net, optim_type=args.optim, print_every=args.print_every, cuda=args.cuda, save_dir=args.save_dir, save_every=args.save_every, improve_wait=args.improve_wait, batch_size=args.batch_size) if args.train_from: trainer.load_checkpoint(args.train_from) trainer.continue_training(data_parser, train_data, val_data, args.epochs, lr=args.lr, weight_decay=args.weight_decay) else: trainer.train_epochs(data_parser, train_data, val_data, args.epochs, lr=args.lr, weight_decay=args.weight_decay) return trainer
def main(): parser = argparse.ArgumentParser() parser.add_argument('--config', required=True, help='see example at ') parser.add_argument('--checkpoint', required=False, help='your checkpoint') args = parser.parse_args() config = Cfg.load_config_from_file(args.config) trainer = Trainer(config) if args.checkpoint: trainer.load_checkpoint(args.checkpoint) trainer.train()