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
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"]
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
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
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'