epoch = start_from_epoch + 1
    with open(os.path.join(results_dir, "%s_Params_ep%d.pkl" % (EXPERIMENT_NAME, start_from_epoch)), 'r') as f:
        params = cPickle.load(f)
        lasagne.layers.set_all_param_values(output_layer_for_loss, params)
    with open(os.path.join(results_dir, "%s_allLossesNAccur_ep%d.pkl" % (EXPERIMENT_NAME, start_from_epoch)), 'r') as f:
        [all_training_losses, all_training_accuracies, all_validation_losses, all_validation_accuracies, auc_all, losses] = cPickle.load(f)

else:
    all_training_losses = []
    all_validation_losses = []
    all_validation_accuracies = []
    all_training_accuracies = []
    auc_all = []

    tmp = SegmentationBatchGeneratorDavid(all_patients, BATCH_SIZE, validation_patients, PATCH_SIZE=OUTPUT_PATCH_SIZE, mode="train", ignore=[81], losses=None, num_batches=None, seed=None)
    losses = np.ones(tmp.get_losses().shape[0])
    del tmp
    epoch = 0

def compare_seg_with_gt(max_n_images=10, epoch=0):
    data_gen_validation = SegmentationBatchGeneratorDavid(all_patients, BATCH_SIZE, validation_patients, PATCH_SIZE=OUTPUT_PATCH_SIZE, mode="test", ignore=[81], losses=None, num_batches=None, seed=10)
    data_gen_validation = seg_channel_selection_generator(data_gen_validation, [2])
    data_gen_validation = center_crop_seg_generator(data_gen_validation, OUTPUT_PATCH_SIZE)
    data, seg, idx = data_gen_validation.next()
    seg = np.array(seg)
    seg_pred = get_segmentation(data)
    plt.figure(figsize=(6, 20))
    n_images = np.min((seg_pred.shape[0], max_n_images))
    for i in range(n_images):
        seg_pred[i][0, :6] = np.array([0,1,2,3,4,5])
        seg[i,0,0,:6] = np.array([0,1,2,3,4,5])