Exemple #1
0
def dist_eval(args):
    iterator = MINDIterator
    model = NRMSModel(hparams, iterator, seed=seed)
    model.model.load_weights(
        os.path.join(model_dir, "ckpt_ep{}".format(args.ep)))
    test_news_file = os.path.join(data_path, "valid", 'news.tsv')
    test_behaviors_file = os.path.join(data_path, "valid",
                                       'behaviors.{}.tsv'.format(args.fsplit))

    group_impr_indexes, group_labels, group_preds = model.run_slow_eval(
        test_news_file, test_behaviors_file)

    with open(
            os.path.join(
                data_path,
                'results/nrms-valid-prediction.{}.txt'.format(args.fsplit)),
            'w') as f:
        for labels, preds in tqdm(zip(group_labels, group_preds)):
            label_str = ",".join([str(x) for x in labels])
            pred_str = ",".join([str(x) for x in preds])
            f.write("{}\t{}\n".format(label_str, pred_str))
Exemple #2
0
def test(args):
    iterator = MINDIterator
    model = NRMSModel(hparams, iterator, seed=seed, test_mode=True)
    model.model.load_weights(
        os.path.join(model_dir, "ckpt_ep{}".format(args.ep)))
    test_news_file = os.path.join(data_path, "test", 'news.tsv')
    test_behaviors_file = os.path.join(data_path, "test",
                                       'behaviors.{}.tsv'.format(args.fsplit))

    group_impr_indexes, group_labels, group_preds = model.run_slow_eval(
        test_news_file, test_behaviors_file)

    with open(
            os.path.join(
                data_path,
                'results/nrms-test-prediction.{}.txt'.format(args.fsplit)),
            'w') as f:
        for impr_index, preds in tqdm(zip(group_impr_indexes, group_preds)):
            impr_index += 1
            pred_rank = (np.argsort(np.argsort(preds)[::-1]) + 1).tolist()
            pred_rank = '[' + ','.join([str(i) for i in pred_rank]) + ']'
            f.write(' '.join([str(impr_index), pred_rank]) + '\n')
Exemple #3
0
iterator = MINDIterator
model = NRMSModel(hparams, iterator, seed=seed)

# print(model.run_eval(valid_news_file, valid_behaviors_file))

model.fit(train_news_file, train_behaviors_file, valid_news_file, valid_behaviors_file)
# res_syn = model.run_eval(valid_news_file, valid_behaviors_file)
# print(res_syn)

# pm.record("res_syn", res_syn)

model_path = os.path.join(model_path, "model")
os.makedirs(model_path, exist_ok=True)

model.model.save_weights(os.path.join(model_path, "nrms_ckpt"))

group_impr_indexes, group_labels, group_preds = model.run_slow_eval(test_news_file, test_behaviors_file)

# res = cal_metric(group_labels, group_preds, hparams.metrics)

with open(os.path.join(data_path, 'nrms_prediction.txt'), 'w') as f:
    for impr_index, preds in tqdm(zip(group_impr_indexes, group_preds)):
        impr_index += 1
        pred_rank = (np.argsort(np.argsort(preds)[::-1]) + 1).tolist()
        pred_rank = '[' + ','.join([str(i) for i in pred_rank]) + ']'
        f.write(' '.join([str(impr_index), pred_rank])+ '\n')

f = zipfile.ZipFile(os.path.join(data_path, 'nrms_prediction.zip'), 'w', zipfile.ZIP_DEFLATED)
f.write(os.path.join(data_path, 'nrms_prediction.txt'), arcname='nrms_prediction.txt')
f.close()