def __init__(self):
        # ID and Name
        self.id = 205
        self.experiment_name = "pancreas_2D_unet_{}".format(self.id)
        self.debug = False

        # System
        self.checkpointsBasePath = "./checkpoints/"
        self.checkpointsBasePathMod = self.checkpointsBasePath + self.experiment_name + '/'
        self.datapath = "/local/DEEPLEARNING/TCIA/"
        self.split = 0

        # GPU
        self.gpu = '1'
        os.environ["CUDA_VISIBLE_DEVICES"] = self.gpu

        # Model
        self.channels = [64, 128, 256, 512, 1024]
        self.channels = [int(x) for x in self.channels]
        self.net = UNet(filters=self.channels,
                        n_classes=2,
                        in_channels=1,
                        dim='2d',
                        bn=False,
                        up_mode='deconv')
        self.n_parameters = count_parameters(self.net)
        print("N PARAMS : {}".format(self.n_parameters))

        self.model_path = './checkpoints/models/pancreas2D_unet_kaiming_nobn_deconv.pth'
        self.load_model()

        self.n_classes = 2

        # self.transform = tf.Compose([
        #                     tf.RandomAffine(degrees = 10,
        #                                     scale = (0.9,1.1),
        #                                     translate = (0.1, 0.1)),
        #                     tf.ToTensor(),
        #                     ])
        self.transform = True

        # Training
        self.start_epoch = 0
        self.epoch = 20
        self.loss = torch.nn.CrossEntropyLoss()
        self.batchsize = 3
        self.lr_rate = 1e-4
        self.final_lr_rate = 1e-5
        self.optimizer = optim.Adam(self.net.parameters(), lr=self.lr_rate)
        self.optimizer.zero_grad()
        self.validate_every_k_epochs = 1
        # self.lr_scheduler = get_scheduler(self.optimizer, "constant", self.lr_rate)
        # self.lr_scheduler = optim.lr_scheduler.ExponentialLR(self.optimizer, 0.99)
        self.decay = (self.lr_rate / self.final_lr_rate - 1) / self.epoch
        self.lr_scheduler = get_scheduler(self.optimizer, "po", {
            'lr': self.lr_rate,
            'decay': self.decay
        })
        # Other
        self.classes_name = ['background', 'pancreas']
Esempio n. 2
0
    def __init__(self):
        # ID and Name
        self.id = 21
        self.experiment_name = "pancreas_2D_unet_{}".format(self.id)
        self.debug = False

        # System
        self.checkpointsBasePath = "./checkpoints/"
        self.checkpointsBasePathMod = self.checkpointsBasePath + self.experiment_name + '/'
        self.datapath = "/local/DEEPLEARNING/TCIA/"
        self.split = 0

        # GPU
        self.gpu = '0'
        os.environ["CUDA_VISIBLE_DEVICES"] = self.gpu

        # Model
        self.channels = [64, 128, 256, 512, 1024]
        self.channels = [int(x) for x in self.channels]
        self.net = UNet(filters=self.channels,
                        n_classes=2,
                        in_channels=1,
                        dim='2d')
        self.n_parameters = count_parameters(self.net)
        print("N PARAMS : {}".format(self.n_parameters))

        self.model_path = './checkpoints/models/pancreas2D_unet.pth'
        self.load_model()

        self.n_classes = 2

        self.transform = tf.Compose([
            tf.RandomAffine(degrees=5,
                            scale=(0.95, 1.05),
                            translate=(0.05, 0.05)),
            tf.ToTensor(),
        ])

        # Training
        self.start_epoch = 0
        self.epoch = 300
        self.loss = torch.nn.CrossEntropyLoss()
        self.batchsize = 8
        self.lr_rate = 1e-4
        self.optimizer = optim.Adam(self.net.parameters(),
                                    lr=self.lr_rate,
                                    weight_decay=0)
        self.optimizer.zero_grad()
        self.validate_every_k_epochs = 1
        # self.lr_scheduler = get_scheduler(self.optimizer, "constant", self.lr_rate)
        self.lr_scheduler = optim.lr_scheduler.ExponentialLR(
            self.optimizer, 0.96)

        # Other
        self.classes_name = ['background', 'pancreas']
Esempio n. 3
0
    def __init__(self, patch_size, filters, n_classes=2, in_channels=1):
        super(Patched3DUNet, self).__init__()
        self.in_channels = in_channels
        self.dim = '3d'
        self.filters = filters
        # self.patch_size = patch_size
        self.ps_h, self.ps_w, self.ps_d = patch_size
        self.n_classes = n_classes

        self.unet = UNet(filters=self.filters,
                         n_classes=self.n_classes,
                         in_channels=self.in_channels,
                         dim=self.dim)