def calculate_fid_given_multi_list_files(list_files, batch_size, cuda, dims): block_idx = InceptionV3.BLOCK_INDEX_BY_DIM[dims] model = InceptionV3([block_idx]) if cuda: model.cuda() m_array = [] s_array = [] for i in range(len(list_files)): f_list = open(list_files[i], 'r') one_list = f_list.readlines() m, s = calculate_activation_statistics(one_list, model, batch_size, dims, cuda) print(list_files[i], ' finished') m_array.append(m) s_array.append(s) fid_value_array = [] for i in range(len(paths)): for j in range(len(paths)): fid_value = calculate_frechet_distance(m_array[i], s_array[i], m_array[j], s_array[j]) fid_value_array.append(fid_value) return fid_value_array
def calculate_fid_given_multi_paths(paths, batch_size, cuda, dims): """Calculates the FID of multi paths""" for p in paths: if not os.path.exists(p): raise RuntimeError('Invalid path: %s' % p) block_idx = InceptionV3.BLOCK_INDEX_BY_DIM[dims] model = InceptionV3([block_idx]) if cuda: model.cuda() m_array = [] s_array = [] for i in range(len(paths)): m, s = _compute_statistics_of_path(paths[i], model, batch_size, dims, cuda) print(paths[i], ' finished') m_array.append(m) s_array.append(s) fid_value_array = [] for i in range(len(paths)): for j in range(len(paths)): fid_value = calculate_frechet_distance(m_array[i], s_array[i], m_array[j], s_array[j]) fid_value_array.append(fid_value) return fid_value_array
def calculate_fid_given_list_files(list_files, batch_size, cuda, dims): f_list0 = open(list_files[0], 'r') one_list0 = f_list0.readlines() f_list0.close() for i in range(len(one_list0)): one_list0[i] = one_list0[i].split(",")[0] f_list1 = open(list_files[1], 'r') one_list1 = f_list1.readlines() f_list1.close() for i in range(len(one_list1)): one_list1[i] = one_list1[i].split(",")[0] block_idx = InceptionV3.BLOCK_INDEX_BY_DIM[dims] model = InceptionV3([block_idx]) if cuda: model.cuda() m1, s1 = calculate_activation_statistics(one_list0, model, batch_size, dims, cuda) m2, s2 = calculate_activation_statistics(one_list1, model, batch_size, dims, cuda) fid_value = calculate_frechet_distance(m1, s1, m2, s2) return fid_value
def calculate_fid_given_paths(paths, batch_size, cuda, dims): """Calculates the FID of two paths""" for p in paths: if not os.path.exists(p): raise RuntimeError('Invalid path: %s' % p) block_idx = InceptionV3.BLOCK_INDEX_BY_DIM[dims] model = InceptionV3([block_idx]) if cuda: model.cuda() m1, s1 = _compute_statistics_of_path(paths[0], model, batch_size, dims, cuda) m2, s2 = _compute_statistics_of_path(paths[1], model, batch_size, dims, cuda) fid_value = calculate_frechet_distance(m1, s1, m2, s2) return fid_value
def calculate_fid_given_list_files_csv(list_files_pair, data_folders_pair, batch_size, cuda, dims): one_list0 = [] for i in range(len(list_files_pair[0])): list_file = list_files_pair[0][i] f_list0 = open(list_file, 'r') one_list0_ = f_list0.readlines() f_list0.close() for line in one_list0_: one_list0.append(data_folders_pair[0][i] + line.split(",")[0]) #print(len(one_list0)) #one_list0 = one_list0[:-int(len(one_list0)/4)] #print(len(one_list0)) one_list1 = [] for i in range(len(list_files_pair[1])): list_file = list_files_pair[1][i] f_list1 = open(list_file, 'r') one_list1_ = f_list1.readlines() f_list1.close() for line in one_list1_: one_list1.append(data_folders_pair[1][i] + line.split(",")[0]) #print(len(one_list1)) #one_list1 = one_list1[:-int(len(one_list1)/4)] #print(len(one_list1)) block_idx = InceptionV3.BLOCK_INDEX_BY_DIM[dims] model = InceptionV3([block_idx]) if cuda: model.cuda() m1, s1 = calculate_activation_statistics(one_list0, model, batch_size, dims, cuda) m2, s2 = calculate_activation_statistics(one_list1, model, batch_size, dims, cuda) fid_value = calculate_frechet_distance(m1, s1, m2, s2) return fid_value