checkpoint_dirpath = args.save_dirpath if checkpoint_dirpath == 'checkpoints/': checkpoint_dirpath += '%s+%s/%s' % (config["model"]["encoder"], config["model"]["decoder"], start_time) if args.save_model: summary_writer = SummaryWriter(log_dir=checkpoint_dirpath) checkpoint_manager = CheckpointManager(model, optimizer, checkpoint_dirpath, config=config) sparse_metrics = SparseGTMetrics() ndcg = NDCG() # If loading from checkpoint, adjust start epoch and load parameters. if args.load_pthpath == "": start_epoch = 0 else: start_epoch = 0 model_state_dict, optimizer_state_dict = load_checkpoint(args.load_pthpath) if isinstance(model, nn.DataParallel): model.module.load_state_dict(model_state_dict) else: model.load_state_dict(model_state_dict) print("Loaded model from {}".format(args.load_pthpath)) # ============================================================================= # TRAINING LOOP # ============================================================================= # Forever increasing counter to keep track of iterations (for tensorboard log). global_iteration_step = start_epoch * iterations ###load ndcg label list samplefile = open('data/visdial_1.0_train_dense_sample.json', 'r')
# Pass vocabulary to construct Embedding layer. encoder = Encoder(config["model"], val_dataset.vocabulary) decoder = Decoder(config["model"], val_dataset.vocabulary) print("Encoder: {}".format(config["model"]["encoder"])) print("Decoder: {}".format(config["model"]["decoder"])) # Share word embedding between encoder and decoder. decoder.word_embed = encoder.word_embed # Wrap encoder and decoder in a model. model = EncoderDecoderModel(encoder, decoder).to(device) if -1 not in args.gpu_ids: model = nn.DataParallel(model, args.gpu_ids) model_state_dict, _ = load_checkpoint(args.load_pthpath) if isinstance(model, nn.DataParallel): model.module.load_state_dict(model_state_dict) else: model.load_state_dict(model_state_dict) print("Loaded model from {}".format(args.load_pthpath)) # Declare metric accumulators (won't be used if --split=test) sparse_metrics = SparseGTMetrics() ndcg = NDCG() # ============================================================================= # EVALUATION LOOP # ============================================================================= model.eval()