w.write('{}\t{}\t{}\n'.format(tid, gold, 'NM')) # ---------------------------------------------------------------------- # Mode: train test_label_preds = {} best_scores = {} if mode == 'train': if not os.path.exists(model_dir): os.mkdir(model_dir) for target_label in labels: model_file = os.path.join(model_dir, 'checkpoint_{}.mdl'.format(target_label)) model = models[target_label] optimizer = optimizers[target_label] # TODO: combine init_dataset() and shuffle_dataset() dev_set.init_dataset(target_label) test_set.init_dataset(target_label) ( dev_tids, dev_tokens, dev_labels, dev_lens ) = dev_set.get_dataset(max_seq_len, volatile=True, gpu=use_gpu) ( test_tids, test_tokens, test_labels, test_lens ) = test_set.get_dataset(max_seq_len, volatile=True, gpu=use_gpu) best_dev_fscore = 0.0 best_test_scores = None for epoch in range(max_epoch): epoch_start_time = current_time() epoch_loss = 0.0 train_set.shuffle_dataset(target_label, balance=True) batch_num = train_set.batch_num(batch_size)