Пример #1
0
def eval_3outputs():

    folder_base = 'C:/Users/admin/Data/ghent_altar/' if os.name == 'nt' else '/scratch/lameeus/data/ghent_altar/'

    assert data == '19botrightcrack3'

    k = 9
    epoch = 25
    model_name = 'ti-unet'

    folder_base = 'C:/Users/admin/Data/ghent_altar/' if os.name == 'nt' else '/scratch/lameeus/data/ghent_altar/'
    path = os.path.join(
        folder_base,
        f'net_weight/{data}/{model_name}_d1_k{k}_n80/w_{epoch}.h5')

    model = load_model_quick(path)
    neural_net = NeuralNet(model, w_ext=10, norm_x=True)

    from scripts.journal_paper.comparison_sh.shared import load_data
    a = load_data("19botright", 80)
    img_x, y_eval = a.get_x_train(), a.get_y_test()

    y_pred = neural_net.predict(img_x)

    assert y_pred.shape[-1] == 3
    y_pred2 = np.stack([1 - y_pred[..., 1], y_pred[..., 1]], axis=-1)

    data_i = _eval_func_single(y_eval, y_pred2)

    print(data_i)

    return
Пример #2
0
    def _auto_eval(self):
        data_i = _eval_func_single(self.y_true,
                                   self.y_pred,
                                   metric=self.metric)

        self.t = data_i["thresh"]
        self.kappa = data_i["kappa"]
        self.acc = data_i["accuracy"]
        self.jaccard = data_i["jaccard"]
Пример #3
0
def pred_epochs():
    img_x, img_y_val = data_lamb()

    d = 2
    k = 10
    model_name = 'ti-unet'

    train_data = '1319_10nat'

    w_ext = 10 if d == 1 else 26

    y_pred_lst = []
    n = []
    for epoch in range(10, 101, 10):
        print(epoch)

        epoch_start = 50
        epoch_corr = epoch + epoch_start if train_data[:5] == '1319_' else epoch
        path = f'C:/Users/admin/Data/ghent_altar/net_weight/{train_data}/{model_name}_d{d}_k{k}/w_{epoch_corr}.h5'

        try:
            model = load_model_quick(path)
        except Exception as e:
            print(e)
            continue

        neural_net = NeuralNet(model, w_ext=w_ext, norm_x=True)

        y_pred = neural_net.predict(img_x)

        if 0:
            data_i = _eval_func_single(img_y_val, y_pred, metric='kappa')
            print(data_i)
            data_i = _eval_func_single(img_y_val, y_pred, metric='jaccard')
            print(data_i)

        y_pred_lst.append(y_pred)
        n.append(epoch)

    concurrent([a[..., 1] for a in y_pred_lst], n)
    plt.show()

    return 1
Пример #4
0
def transfer_learning(
        epoch=25,  # Could check a few
        b_plot=False):

    d = 2  # 1, 2

    img_x, img_y_val = data_lamb()

    k = 10

    model_name = 'ti-unet'

    w_ext = 10 if d == 1 else 26

    # train_data:
    y_pred_lst = []
    n = ['clean']

    # train_data_lst = ['1319_10', '10', '1319', '1319_101319']
    train_data_lst = ['10nat', '1319_10nat', '1319_10nat1319', '1319']

    data_i_lst = {}

    for train_data in train_data_lst:
        print(train_data)

        epoch_start = 50
        epoch_corr = epoch + epoch_start if train_data[:5] == '1319_' else epoch
        if train_data == '1319':
            epoch_corr = 50
        path = f'C:/Users/admin/Data/ghent_altar/net_weight/{train_data}/{model_name}_d{d}_k{k}/w_{epoch_corr}.h5'

        try:
            model = load_model_quick(path)
        except Exception as e:
            print(e)
            continue

        neural_net = NeuralNet(model, w_ext=w_ext, norm_x=True)

        y_pred = neural_net.predict(img_x)

        # baseline
        data_i = _eval_func_single(img_y_val, y_pred, metric='kappa')
        print(data_i)

        if 0:
            """
            Checking which 
            
            baseline ~ .22
            i = 0: .268, Remove huge improvement  ( a lot of "green" background annotated as paint loss)
            i = 1: .228 Keep!
            i = 2: .179 keep! Drop (keep!!
            i = 3: .159 keep! Even more important
            i = 4: .252 Remove (huge problem right top)
            i = 5: .233 Keep, quit relevant
            """

            from datasets.default_trainingsets import get_10lamb_6patches
            kFoldTrainData = get_10lamb_6patches(5)

            _eval_func_single(
                kFoldTrainData.k_split_i(0).get_y_train(),
                y_pred,
                metric='kappa')  # Check what is influence without!

        data_i_lst[train_data] = data_i

        data_i = _eval_func_single(img_y_val, y_pred, metric='jaccard')
        print(data_i)

        y_pred_lst.append(y_pred)
        n.append(train_data)

    # plt.imshow(neural_net.predict(img_x[::2,::2,:])[..., 1])

    if b_plot:
        concurrent([img_x[..., :3]] + [a[..., 1] for a in y_pred_lst], n)

    if 0:
        from figures_paper.overlay import semi_transparant
        from data.datatools import imread, imsave

        t = [data_i_lst[n_i]['thresh'] for n_i in train_data_lst]
        p = []
        for i, train_data in enumerate(train_data_lst):
            b = np.greater_equal(y_pred_lst[i][..., 1], t[i])

            k = semi_transparant(img_x[..., :3], b, 0)
            p.append(k)

            imsave(
                os.path.join(
                    "C:/Users/admin/OneDrive - ugentbe/data/images_paper",
                    train_data + '.png'), k)

        concurrent(p)

    return data_i_lst
Пример #5
0
            y_pred_lst.append(y_pred_i[..., 1])
        y_pred_avg = np.mean(y_pred_lst, axis=0)

        return y_pred_avg

    if 1:
        # Average out prediction

        y_pred_avg = average_out_pred()

        if 0:
            concurrent([y_pred_avg])

        y_pred_avg2 = np.stack([1 - y_pred_avg, y_pred_avg], axis=-1)

        data_i = _eval_func_single(get_crop(img_y), get_crop(y_pred_avg2))
        print(data_i)

    from performance.testing import get_y_pred_thresh

    thresh = df.iloc[i_max]['thresh']

    y_thresh = get_y_pred_thresh(y_pred, thresh=thresh)

    concurrent([img_x[..., :3], y_pred[..., 0], y_thresh[..., 0]])

    im_pred = get_crop(y_thresh)
    b_pred = im_pred[..., 1]

    # For U-Net
    model_name = 'unet'