vista3d / configs /train.json
project-monai's picture
Upload vista3d version 0.5.9
2ffbace verified
{
"imports": [
"$import glob",
"$import os",
"$import scripts",
"$import ignite",
"$import copy"
],
"bundle_root": ".",
"ckpt_dir": "$@bundle_root + '/models'",
"output_dir": "$@bundle_root + '/eval'",
"data_list_file_path": "$@bundle_root + '/configs/msd_task09_spleen_folds.json'",
"dataset_dir": "/data/Task09_Spleen",
"use_tensorboard": true,
"finetune": false,
"finetune_model_path": "$@bundle_root + '/models/model.pt'",
"early_stop": false,
"use_mlflow": true,
"mlflow_dir": "$@bundle_root + '/mlruns'",
"fold": 0,
"device": "$torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')",
"epochs": 5,
"val_interval": 1,
"val_at_start": false,
"sw_overlap": 0.625,
"learning_rate": 0.0001,
"num_patches_per_image": 1,
"input_channels": 1,
"output_classes": 2,
"max_point": 5,
"max_prompt": null,
"max_backprompt": null,
"max_foreprompt": null,
"drop_label_prob": 0.25,
"drop_point_prob": 0.25,
"exclude_background": true,
"label_set": null,
"val_label_set": "@label_set",
"amp": true,
"train_datalist": "$monai.auto3dseg.utils.datafold_read(datalist=@data_list_file_path, basedir=@dataset_dir, fold=@fold)[0]",
"val_datalist": "$monai.auto3dseg.utils.datafold_read(datalist=@data_list_file_path, basedir=@dataset_dir, fold=@fold)[1]",
"patch_size": [
128,
128,
128
],
"patch_size_valid": "$@patch_size",
"network_def": "$monai.networks.nets.vista3d132(in_channels=@input_channels)",
"network": "$@network_def.to(@device)",
"loss": {
"_target_": "DiceCELoss",
"include_background": true,
"sigmoid": true,
"smooth_dr": 1e-05,
"smooth_nr": 0,
"squared_pred": true,
"to_onehot_y": false
},
"optimizer": {
"_target_": "torch.optim.AdamW",
"params": "$@network.parameters()",
"lr": "@learning_rate",
"weight_decay": 1e-05
},
"lr_schedule": {
"activate": true,
"lr_scheduler": {
"_target_": "monai.optimizers.WarmupCosineSchedule",
"optimizer": "@optimizer",
"t_total": "$@epochs",
"warmup_steps": 3,
"warmup_multiplier": 0.1
}
},
"resample_to_spacing": [
1.5,
1.5,
1.5
],
"train": {
"deterministic_transforms": [
{
"_target_": "LoadImaged",
"keys": [
"image",
"label"
],
"image_only": true,
"ensure_channel_first": true
},
{
"_target_": "CropForegroundd",
"keys": [
"image",
"label"
],
"source_key": "image",
"margin": 10,
"allow_smaller": true,
"start_coord_key": null,
"end_coord_key": null
},
{
"_target_": "ScaleIntensityRanged",
"keys": "image",
"a_min": -963.8247715525971,
"a_max": 1053.678477684517,
"b_min": 0.0,
"b_max": 1.0,
"clip": true
},
{
"_target_": "Orientationd",
"keys": [
"image",
"label"
],
"axcodes": "RAS"
},
{
"_target_": "Spacingd",
"keys": [
"image",
"label"
],
"pixdim": "$@resample_to_spacing",
"mode": [
"bilinear",
"nearest"
]
},
{
"_target_": "CastToTyped",
"keys": [
"image",
"label"
],
"dtype": [
"$torch.float32",
"$torch.uint8"
]
},
{
"_target_": "EnsureTyped",
"keys": [
"image",
"label"
],
"track_meta": true
},
{
"_target_": "SpatialPadd",
"keys": [
"image",
"label"
],
"spatial_size": "@patch_size",
"mode": [
"constant",
"constant"
]
}
],
"random_transforms": [
{
"_target_": "RandCropByLabelClassesd",
"keys": [
"image",
"label"
],
"label_key": "label",
"num_classes": "@output_classes",
"spatial_size": "@patch_size",
"num_samples": "@num_patches_per_image",
"warn": false
},
{
"_target_": "ResizeWithPadOrCropd",
"keys": [
"image",
"label"
],
"spatial_size": "@patch_size"
},
{
"_target_": "RandScaleIntensityd",
"keys": "image",
"prob": 0.1,
"factors": 0.1
},
{
"_target_": "RandShiftIntensityd",
"keys": "image",
"prob": 0.1,
"offsets": 0.1
}
],
"inferer": {
"_target_": "SimpleInferer"
},
"preprocessing": {
"_target_": "Compose",
"transforms": "$@train#deterministic_transforms + @train#random_transforms"
},
"dataset": {
"_target_": "Dataset",
"data": "@train_datalist",
"transform": "@train#preprocessing"
},
"dataloader": {
"_target_": "DataLoader",
"dataset": "@train#dataset",
"batch_size": 1,
"shuffle": true,
"num_workers": 4,
"pin_memory": true,
"persistent_workers": true
},
"handlers": [
{
"_target_": "CheckpointLoader",
"_disabled_": "$not @finetune",
"load_path": "@finetune_model_path",
"load_dict": {
"model": "@network"
}
},
{
"_target_": "LrScheduleHandler",
"_disabled_": "$not @lr_schedule#activate",
"lr_scheduler": "@lr_schedule#lr_scheduler",
"print_lr": true
},
{
"_target_": "ValidationHandler",
"validator": "@validate#evaluator",
"epoch_level": true,
"exec_at_start": "@val_at_start",
"interval": "@val_interval"
},
{
"_target_": "TensorBoardStatsHandler",
"_disabled_": "$not @use_tensorboard",
"log_dir": "@output_dir",
"tag_name": "train_loss",
"output_transform": "$monai.handlers.from_engine(['loss'], first=True)"
},
{
"_target_": "StatsHandler",
"tag_name": "train_loss",
"name": "StatsHandler",
"output_transform": "$monai.handlers.from_engine(['loss'], first=True)"
},
{
"_target_": "MLFlowHandler",
"_disabled_": "$not @use_mlflow",
"tracking_uri": "$os.path.abspath(@mlflow_dir)",
"output_transform": "$monai.handlers.from_engine(['loss'], first=True)"
}
],
"key_metric": {
"train_accuracy": {
"_target_": "ignite.metrics.Accuracy",
"output_transform": "$monai.handlers.from_engine(['pred', 'label'])"
}
},
"trainer": {
"_target_": "scripts.trainer.Vista3dTrainer",
"max_epochs": "@epochs",
"device": "@device",
"train_data_loader": "@train#dataloader",
"network": "@network",
"loss_function": "@loss",
"optimizer": "@optimizer",
"inferer": "@train#inferer",
"key_train_metric": null,
"train_handlers": "@train#handlers",
"amp": "@amp",
"hyper_kwargs": {
"output_classes": "@output_classes",
"max_point": "@max_point",
"max_prompt": "@max_prompt",
"max_backprompt": "@max_backprompt",
"max_foreprompt": "@max_foreprompt",
"drop_label_prob": "@drop_label_prob",
"drop_point_prob": "@drop_point_prob",
"exclude_background": "@exclude_background",
"label_set": "@label_set",
"patch_size": "@patch_size",
"user_prompt": false
}
}
},
"validate": {
"preprocessing": {
"_target_": "Compose",
"transforms": "$@train#deterministic_transforms"
},
"postprocessing": {
"_target_": "Compose",
"transforms": [
{
"_target_": "AsDiscreted",
"keys": "pred",
"threshold": 0.0
}
]
},
"dataset": {
"_target_": "Dataset",
"data": "$@val_datalist",
"transform": "@validate#preprocessing"
},
"dataloader": {
"_target_": "DataLoader",
"dataset": "@validate#dataset",
"batch_size": 1,
"shuffle": false,
"num_workers": 4
},
"inferer": {
"_target_": "scripts.inferer.Vista3dInferer",
"roi_size": "@patch_size_valid",
"overlap": "@sw_overlap"
},
"handlers": [
{
"_target_": "EarlyStopHandler",
"_disabled_": "$not @early_stop",
"trainer": null,
"patience": 2,
"score_function": "$scripts.score_function",
"min_delta": 0.01
},
{
"_target_": "TensorBoardStatsHandler",
"_disabled_": "$not @use_tensorboard",
"log_dir": "@output_dir",
"iteration_log": false
},
{
"_target_": "StatsHandler",
"iteration_log": false,
"name": "StatsHandler"
},
{
"_target_": "CheckpointSaver",
"save_dir": "@ckpt_dir",
"save_dict": {
"model": "@network"
},
"save_key_metric": true,
"key_metric_filename": "model.pt"
},
{
"_target_": "MLFlowHandler",
"_disabled_": "$not @use_mlflow",
"iteration_log": false,
"tracking_uri": "$os.path.abspath(@mlflow_dir)"
}
],
"key_metric": {
"val_mean_dice": {
"_target_": "MeanDice",
"include_background": false,
"output_transform": "$monai.handlers.from_engine(['pred', 'label'])",
"num_classes": "@output_classes"
}
},
"additional_metrics": {
"val_accuracy": {
"_target_": "ignite.metrics.Accuracy",
"output_transform": "$monai.handlers.from_engine(['pred', 'label'])"
}
},
"evaluator": {
"_target_": "scripts.evaluator.Vista3dEvaluator",
"device": "@device",
"val_data_loader": "@validate#dataloader",
"network": "@network",
"inferer": "@validate#inferer",
"postprocessing": "@validate#postprocessing",
"key_val_metric": "@validate#key_metric",
"additional_metrics": null,
"val_handlers": "@validate#handlers",
"amp": true,
"hyper_kwargs": {
"output_classes": "@output_classes",
"drop_label_prob": "@drop_label_prob",
"drop_point_prob": "@drop_point_prob",
"exclude_background": "@exclude_background",
"label_set": "@label_set",
"val_head": "auto",
"user_prompt": false
}
}
},
"initialize": [
"$monai.utils.set_determinism(seed=0)"
],
"run": [
"$@validate#handlers#0.set_trainer(trainer=@train#trainer) if @early_stop else None",
"$@train#trainer.add_event_handler(ignite.engine.Events.ITERATION_COMPLETED, ignite.handlers.TerminateOnNan())",
"$@train#trainer.run()"
]
}