예제 #1
0
 def __init__(self,
              detr: Union[nn.DataParallel, CellDETR],
              detr_optimizer: torch.optim.Optimizer,
              detr_segmentation_optimizer: torch.optim.Optimizer,
              training_dataset: DataLoader,
              validation_dataset: DataLoader,
              test_dataset: DataLoader,
              loss_function: nn.Module,
              learning_rate_schedule: torch.optim.lr_scheduler.
              MultiStepLR = None,
              device: str = "cuda",
              save_data_path: str = "saved_data",
              use_telegram: bool = True) -> None:
     """
     Constructor method
     :param detr: (Union[nn.DataParallel, DETR]) DETR model
     :param detr_optimizer: (torch.optim.Optimizer) DETR model optimizer
     :param detr_segmentation_optimizer: (torch.optim.Optimizer) DETR segmentation head optimizer
     :param training_dataset: (DataLoader) Training dataset
     :param validation_dataset: (DataLoader) Validation dataset
     :param test_dataset: (DataLoader) Test dataset
     :param loss_function: (nn.Module) Loss function
     :param learning_rate_schedule: (torch.optim.lr_scheduler.MultiStepLR) Learning rate schedule
     :param device: (str) Device to be utilized
     :param save_data_path: (str) Path to store log data
     :param use_telegram: (bool) If true telegram_send is used
     """
     # Save parameters
     self.detr = detr
     self.detr_optimizer = detr_optimizer
     self.detr_segmentation_optimizer = detr_segmentation_optimizer
     self.training_dataset = training_dataset
     self.validation_dataset = validation_dataset
     self.test_dataset = test_dataset
     self.loss_function = loss_function
     self.learning_rate_schedule = learning_rate_schedule
     self.device = device
     self.save_data_path = save_data_path
     self.use_telegram = use_telegram
     # Init logger
     self.logger = misc.Logger()
     # Make directories to save logs, plots and models during training
     time_and_date = str(datetime.now())
     save_data_path = os.path.join(save_data_path, time_and_date)
     os.makedirs(save_data_path, exist_ok=True)
     self.path_save_models = os.path.join(save_data_path, "models")
     os.makedirs(self.path_save_models, exist_ok=True)
     self.path_save_plots = os.path.join(save_data_path, "plots")
     os.makedirs(self.path_save_plots, exist_ok=True)
     self.path_save_metrics = os.path.join(save_data_path, "metrics")
     os.makedirs(self.path_save_metrics, exist_ok=True)
     # Init variable to store best mIoU
     self.best_miou = 0.0
예제 #2
0
from __future__ import print_function

if __name__ == '__main__':
	from cifar_main import parse_argument
	arguments={
		'image-size':256, 
		'num_classes':4, 
		'batch-size':32, 
		'lr':0.002, 
		'gpu':1}
	args = parse_argument(additional_arguments=arguments, description='Location classification for stomach images.')
	import misc
	misc.ensure_dir(args.logdir)
	logger = misc.Logger(args.logdir, 'train_log')
	print = logger.info
	print("-----------------FLAGS-----------------")
	for k, v in args.__dict__.items():
		print('{}: {}'.format(k, v))
	print("---------------------------------------\n")

	image_path='Data/Normal'
	splits_p=[0.9, 0.1]
	import torchvision.transforms as transforms
	train_transform = transforms.Compose([
		transforms.Pad(args.image_size // 8),
		transforms.RandomCrop(args.image_size),
		transforms.RandomHorizontalFlip(),
	])
	trans = [train_transform, None]
	from stomach_data import get_data_loaders
예제 #3
0
 def __init__(self,
              detr: Union[nn.DataParallel, CellDETR],
              detr_optimizer: torch.optim.Optimizer,
              detr_segmentation_optimizer: torch.optim.Optimizer,
              training_dataset: DataLoader,
              validation_dataset: DataLoader,
              test_dataset: DataLoader,
              class_labels: [
                  "11", "12", "13", "14", "15", "16", "17", "18", "21",
                  "22", "23", "24", "25", "26", "27", "28", "31", "32",
                  "33", "34", "35", "36", "37", "38", "41", "42", "43",
                  "44", "45", "46", "47", "48"
              ],
              colors: list,
              loss_function: nn.Module,
              learning_rate_schedule: torch.optim.lr_scheduler.
              MultiStepLR = None,
              device: str = "cuda",
              save_data_path: str = "model_zoo/Cell-DETR",
              experiment: str = "first_run",
              use_telegram: bool = True) -> None:
     """
     Constructor method
     :param detr: (Union[nn.DataParallel, DETR]) DETR model
     :param detr_optimizer: (torch.optim.Optimizer) DETR model optimizer
     :param detr_segmentation_optimizer: (torch.optim.Optimizer) DETR segmentation head optimizer
     :param training_dataset: (DataLoader) Training dataset
     :param validation_dataset: (DataLoader) Validation dataset
     :param test_dataset: (DataLoader) Test dataset
     :param loss_function: (nn.Module) Loss function
     :param learning_rate_schedule: (torch.optim.lr_scheduler.MultiStepLR) Learning rate schedule
     :param device: (str) Device to be utilized
     :param save_data_path: (str) Path to store log data
     :param use_telegram: (bool) If true telegram_send is used
     """
     # Save parameters
     self.detr = detr
     self.detr_optimizer = detr_optimizer
     self.detr_segmentation_optimizer = detr_segmentation_optimizer
     self.training_dataset = training_dataset
     self.validation_dataset = validation_dataset
     self.test_dataset = test_dataset
     self.class_labels = class_labels
     self.colors = colors
     self.experiment = experiment
     self.loss_function = loss_function
     self.learning_rate_schedule = learning_rate_schedule
     self.device = device
     self.save_data_path = save_data_path
     self.use_telegram = use_telegram
     # Init logger
     self.logger = misc.Logger()
     # Make directories to save logs, plots and models during training
     save_data_path = os.path.join(save_data_path, experiment)
     os.makedirs(save_data_path, exist_ok=True)
     self.path_save_models = os.path.join(save_data_path, "models")
     os.makedirs(self.path_save_models, exist_ok=True)
     self.path_save_plots = os.path.join(save_data_path, "plots")
     os.makedirs(self.path_save_plots, exist_ok=True)
     self.path_save_metrics = os.path.join(save_data_path, "metrics")
     os.makedirs(self.path_save_metrics, exist_ok=True)
     # Init variable to store best mIoU
     self.best_miou = 0.0