import numpy as np import os import json def get_pred(qry_t, tgt_t, normalization=False): """ Use L2 norms. """ if normalization: qry_t_norm = np.linalg.norm(qry_t) tgt_t_norms = np.linalg.norm(tgt_t, axis=1) scores = np.dot(tgt_t, qry_t) / (tgt_t_norms * qry_t_norm) else: scores = np.dot(tgt_t, qry_t) pred = np.argmax(scores) return scores, pred def save_results(results, model_args, data_args, train_args): save_file = model_args.model_name + "_" + (model_args.model_type if model_args.model_type is not None else "") + "_" + data_args.embedding_type + "_results.json" with open(os.path.join(data_args.encode_output_path, save_file), "w") as json_file: json.dump(results, json_file, indent=4) def print_results(results): for dataset, acc in results.items(): print(dataset, ",", acc)