import numpy as np import torch.nn as nn import torch.nn.functional as F def str2ind(categoryname, classlist): return [ i for i in range(len(classlist)) if categoryname == classlist[i].decode("utf-8") ][0] def strlist2indlist(strlist, classlist): return [str2ind(s, classlist) for s in strlist] def strlist2multihot(strlist, classlist): return np.sum(np.eye(len(classlist))[strlist2indlist(strlist, classlist)], axis=0) def idx2multihot(id_list, num_class): return np.sum(np.eye(num_class)[id_list], axis=0) def write_results_to_eval_file(args, dmap, itr1, itr2): file_folder = "./ckpt/" + args.dataset_name + "/eval/" file_name = args.dataset_name + "-results.log" fid = open(file_folder + file_name, "a+") string_to_write = str(itr1) string_to_write += " " + str(itr2) for item in dmap: string_to_write += " " + "%.2f" % item fid.write(string_to_write + "\n") fid.close() def write_results_to_file(args, dmap, cmap, itr): file_folder = "./ckpt/" + args.dataset_name + "/" + str(args.model_id) + "/" file_name = args.dataset_name + "-results.log" fid = open(file_folder + file_name, "a+") string_to_write = str(itr) for item in dmap: string_to_write += " " + "%.2f" % item string_to_write += " " + "%.2f" % cmap fid.write(string_to_write + "\n") fid.close() def write_settings_to_file(args): file_folder = "./ckpt/" + args.dataset_name + "/" + str(args.model_id) + "/" file_name = args.dataset_name + "-results.log" fid = open(file_folder + file_name, "a+") string_to_write = "#" * 80 + "\n" for arg in vars(args): string_to_write += str(arg) + ": " + str(getattr(args, arg)) + "\n" string_to_write += "*" * 80 + "\n" fid.write(string_to_write) fid.close()