def multip_grabCut():
    raw_example_list = _load_grabcut_unary_pairwise_cliques()
    parser = BatchExamplesParser()
    selected_num = 50
    examples_list_all = parser.parse_grabcut_pickle(raw_example_list)
    options = Options()

    batches_num = len(examples_list_all)

    inf_latent_method = ''
    init_method = 'clique_by_clique'

    Tasks = list()
    for i in range(selected_num):
        examples_list = examples_list_all[:i] + examples_list_all[i + 1:]
        Tasks.append((calcGrabCut, (examples_list, examples_list_all[i].name,
                                    inf_latent_method, init_method, options)))

    process_num = min(selected_num, 20)
    pool = multiprocessing.Pool(process_num)
    r = pool.map(calcFun, Tasks)
    pool.close()
    pool.join()
    print(r)
    print('finished')
def laipi_grabCut():
    raw_example_list = _load_grabcut_unary_pairwise_cliques()
    parser = BatchExamplesParser()
    selected_num = 50
    examples_list_all = parser.parse_grabcut_pickle(raw_example_list)
    options = Options()

    batches_num = len(examples_list_all)

    inf_latent_method = 'remove_redundancy'
    init_method = 'exlarge'

    laipi_name = [
        'tennis', 'person6', 'cross', '65019', 'elefant', 'bool', '37073',
        'banana1', '153077', 'book', '153093', '24077', '189080', '69020'
    ]

    Tasks = list()
    for i in range(selected_num):
        ex_test = examples_list_all[i]
        if ex_test.name.split('.')[0] in laipi_name:
            examples_list = examples_list_all[:i] + examples_list_all[i + 1:]
            Tasks.append(
                (laipiDog, (examples_list, examples_list_all[i].name,
                            inf_latent_method, init_method, options, ex_test)))
    if len(Tasks) != len(laipi_name):
        raise ValueError('Laipi doesn\'t match!')

    pool = multiprocessing.Pool(len(laipi_name))
    r = pool.map(calcFun, Tasks)
    pool.close()
    pool.join()
    print(r)
    print('laipi_finished')
def calcCheckboard(prefix_str, miu):
    instance = Instance('gaussian_portions',
                        portion_miu=miu,
                        is_gaussian=False)
    examples_list = parser.parse_checkboard(instance)

    options = Options()
    outer_history = cccp_outer_loop([examples_list[0]], options, init_method,
                                    inf_latent_method, prefix_str)

    with open(
            './expData/batchResult/training_result/'
            'image_%s_outer_history.pickle' % prefix_str, 'wb') as f:
        pickle.dump([outer_history, examples_list, prefix_str], f)

    sys.stdout.flush()
Exemple #4
0
path = './expData/batchResult/temp/bush.pickle_outer_iter0.pickle'

theta_list = list()
loss_list = list()
with open(path, 'rb') as f:
    data = pickle.load(f)
    inner_history = data[-1]['inner_history']
    for i in inner_history:
        theta_list.append(i['theta'])
        loss_list.append(i['loss_aug'])

batches_num = 25
raw_example_list = _load_grabcut_unary_pairwise_cliques()
parser = BatchExamplesParser()
examples_list_all = parser.parse_grabcut_pickle(raw_example_list)
options = Options()

inf_latent_method = ''
init_method = 'clique_by_clique'

Tasks = list()
# for i in range(batches_num):
i = 25
examples_list = examples_list_all[:i] + examples_list_all[i + 1:]

y_hat_loss = list()
for theta in theta_list:
    error = 0
    for ex in examples_list:
        y_hat = inf_label_latent_helper(ex.unary_observed, ex.pairwise,
                                        ex.clique_indexes, theta, options,