def evaluate(args, exe, test_prog, model, test_dataset, featurizer): """ Define the evaluate function In the dataset, a proportion of labels are blank. So we use a `valid` tensor to help eliminate these blank labels in both training and evaluation phase. """ data_gen = test_dataset.iter_batch(batch_size=args.batch_size, num_workers=args.num_workers, shuffle=True, collate_fn=featurizer.collate_fn) total_pred = [] total_label = [] total_valid = [] for batch_id, feed_dict in enumerate(data_gen): pred, = exe.run(test_prog, feed=feed_dict, fetch_list=[model.pred], return_numpy=False) total_pred.append(np.array(pred)) total_label.append(feed_dict['finetune_label']) total_valid.append(feed_dict['valid']) total_pred = np.concatenate(total_pred, 0) total_label = np.concatenate(total_label, 0) total_valid = np.concatenate(total_valid, 0) return calc_rocauc_score(total_label, total_pred, total_valid)
def evaluate(args, exe, test_prog, agent, test_data_list, epoch_id): """Evaluate the model on test dataset.""" collate_fn = MoleculeCollateFunc(agent.graph_wrapper, task_type='cls', num_cls_tasks=args.num_tasks, with_graph_label=True, with_pos_neg_mask=False) data_loader = Dataloader(test_data_list, batch_size=args.batch_size, num_workers=args.num_workers, shuffle=False, collate_fn=collate_fn) total_data, eval_data = len(test_data_list), 0 total_pred, total_label, total_valid = [], [], [] for batch_id, feed_dict in enumerate(data_loader): pred, = exe.run(test_prog, feed=feed_dict, fetch_list=[agent.pred], return_numpy=False) total_pred.append(np.array(pred)) total_label.append(feed_dict['label']) total_valid.append(feed_dict['valid']) total_pred = np.concatenate(total_pred, 0) total_label = np.concatenate(total_label, 0) total_valid = np.concatenate(total_valid, 0) return calc_rocauc_score(total_label, total_pred, total_valid)
def evaluate(args, exe, test_prog, model, test_dataset, featurizer): """tbd""" data_gen = test_dataset.iter_batch(batch_size=args.batch_size, num_workers=args.num_workers, shuffle=True, collate_fn=featurizer.collate_fn) total_pred = [] total_label = [] total_valid = [] for batch_id, feed_dict in enumerate(data_gen): pred, = exe.run(test_prog, feed=feed_dict, fetch_list=[model.pred], return_numpy=False) total_pred.append(np.array(pred)) total_label.append(feed_dict['finetune_label']) total_valid.append(feed_dict['valid']) total_pred = np.concatenate(total_pred, 0) total_label = np.concatenate(total_label, 0) total_valid = np.concatenate(total_valid, 0) return calc_rocauc_score(total_label, total_pred, total_valid)