Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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