return sum_loss def save_model(model, epoch, model_weight_path, checkpoint_path): """ save model weight without embedding :param model: :param epoch: :param model_weight_path: :param checkpoint_path: :return: """ # save model weight model_weight = model.state_dict() del model_weight['embedding.embedding_layer.weight'] torch.save(model_weight, model_weight_path) with open(checkpoint_path, 'w') as checkpoint_f: checkpoint_f.write('epoch=%d' % epoch) if __name__ == '__main__': init_logging() parser = argparse.ArgumentParser(description="train on the model") parser.add_argument('--config', '-c', required=False, dest='config_path', default='config/global_config.yaml') args = parser.parse_args() train(args.config_path)
__author__ = 'han' import os import torch import logging import argparse import torch.optim as optim from dataset.squad_dataset import SquadDataset from models.match_lstm import MatchLSTMModel from models.loss import MyNLLLoss from utils.load_config import init_logging, read_config from utils.eval import eval_on_model from utils.functions import pop_dict_keys init_logging() logger = logging.getLogger(__name__) def main(config_path): logger.info('------------Match-LSTM Train--------------') logger.info('loading config file...') global_config = read_config(config_path) # set random seed seed = global_config['model']['global']['random_seed'] torch.manual_seed(seed) enable_cuda = global_config['train']['enable_cuda'] device = torch.device("cuda" if enable_cuda else "cpu") if torch.cuda.is_available() and not enable_cuda:
parser = argparse.ArgumentParser(description="preprocess/train/test the model") parser.add_argument('mode', help='preprocess or train or test') parser.add_argument('--config', '-c', required=False, dest='config_path', default='config/global_config.yaml') parser.add_argument('--output', '-o', required=False, dest='out_path') parser.add_argument('--remark', required=False, dest='remark', default="") args = parser.parse_args() cur_time = time.strftime('%Y-%m-%d-%H_%M_%S', time.localtime()) host_name = socket.gethostname() experiment_info = host_name + "_" + cur_time + "_" + args.remark init_logging(experiment_info) logger = logging.getLogger(__name__) logger.info('======================== %s =================================' % experiment_info) if args.mode == 'preprocess': preprocess(args.config_path) elif args.mode == 'train': train(args.config_path, experiment_info, training_info) elif args.mode == 'debug': debug(args.config_path, experiment_info) elif args.mode == 'test': test(args.config_path, experiment_info) elif args.mode == 'train_5c': train_5c(args.config_path, experiment_info, training_info) elif args.mode == 'test_5c': test_5c(args.config_path, experiment_info)