Switch to side-by-side view

--- a
+++ b/experiments/bleed_exp/default_configs.py
@@ -0,0 +1,140 @@
+#!/usr/bin/env python
+# Copyright 2018 Division of Medical Image Computing, German Cancer Research Center (DKFZ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Default Configurations script. Avoids changing configs of all experiments if general settings are to be changed."""
+
+import os
+
+class DefaultConfigs:
+
+    def __init__(self, model, server_env=None, dim=2):
+        self.server_env = server_env
+        #########################
+        #         I/O           #
+        #########################
+
+        self.model = model
+        self.dim = dim
+        # int [0 < dataset_size]. select n patients from dataset for prototyping.
+        self.select_prototype_subset = None
+
+        # some default paths.
+        self.backbone_path = 'models/backbone.py'
+        self.source_dir = os.path.dirname(os.path.realpath(__file__)) #current dir.
+        self.input_df_name = 'info_df.pickle'
+        self.model_path = 'models/{}.py'.format(self.model)
+
+        if server_env:
+            self.source_dir = '/home/jaegerp/code/mamma_code/medicaldetectiontoolkit'
+
+
+        #########################
+        #      Data Loader      #
+        #########################
+
+        #random seed for fold_generator and batch_generator.
+        self.seed = 0
+
+        #number of threads for multithreaded batch generation.
+        self.n_workers = 4 if server_env else os.cpu_count()-1
+
+        # if True, segmentation losses learn all categories, else only foreground vs. background.
+        self.class_specific_seg_flag = False
+
+        #########################
+        #      Architecture      #
+        #########################
+
+        self.weight_decay = 0.0
+
+        # nonlinearity to be applied after convs with nonlinearity. one of 'relu' or 'leaky_relu'
+        self.relu = 'relu'
+
+        # if True initializes weights as specified in model script. else use default Pytorch init.
+        self.custom_init = False
+
+        # if True adds high-res decoder levels to feature pyramid: P1 + P0. (e.g. set to true in retina_unet configs)
+        self.operate_stride1 = False
+
+        #########################
+        #  Schedule             #
+        #########################
+
+        # number of folds in cross validation.
+        self.n_cv_splits = 5
+
+
+        # number of probabilistic samples in validation.
+        self.n_probabilistic_samples = None
+
+        #########################
+        #   Testing / Plotting  #
+        #########################
+
+        # perform mirroring at test time. (only XY. Z not done to not blow up predictions times).
+        self.test_aug = True
+
+        # if True, test data lies in a separate folder and is not part of the cross validation.
+        self.hold_out_test_set = False
+
+        # if hold_out_test_set provided, ensemble predictions over models of all trained cv-folds.
+        self.ensemble_folds = False
+
+        # color specifications for all box_types in prediction_plot.
+        self.box_color_palette = {'det': 'b', 'gt': 'r', 'neg_class': 'purple',
+                                  'prop': 'w', 'pos_class': 'g', 'pos_anchor': 'c', 'neg_anchor': 'c'}
+
+        # scan over confidence score in evaluation to optimize it on the validation set.
+        self.scan_det_thresh = False
+
+        # plots roc-curves / prc-curves in evaluation.
+        self.plot_stat_curves = False
+
+        # evaluates average precision per image and averages over images. instead computing one ap over data set.
+        self.per_patient_ap = False
+
+        # threshold for clustering 2D box predictions to 3D Cubes. Overlap is computed in XY.
+        self.merge_3D_iou = 0.1
+
+        # monitor any value from training.
+        self.n_monitoring_figures = 1
+        # dict to assign specific plot_values to monitor_figures > 0. {1: ['class_loss'], 2: ['kl_loss', 'kl_sigmas']}
+        self.assign_values_to_extra_figure = {}
+
+        # save predictions to csv file in experiment dir.
+        self.save_preds_to_csv = True
+
+        # select a maximum number of patient cases to test. number or "all" for all
+        self.max_test_patients = "all"
+
+        #########################
+        #   MRCNN               #
+        #########################
+
+        # if True, mask loss is not applied. used for data sets, where no pixel-wise annotations are provided.
+        self.frcnn_mode = False
+
+        # if True, unmolds masks in Mask R-CNN to full-res for plotting/monitoring.
+        self.return_masks_in_val = False
+        self.return_masks_in_test = False # needed if doing instance segmentation. evaluation not yet implemented.
+
+        # add P6 to Feature Pyramid Network.
+        self.sixth_pooling = False
+
+        # for probabilistic detection
+        self.n_latent_dims = 0
+
+