|
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() |
|
|