project-monai's picture
Upload valve_landmarks version 0.5.1
f0e6555 verified
{
"imports": [
"$import datetime",
"$import numpy",
"$import torch",
"$import ignite",
"$import scripts"
],
"bundle_root": ".",
"ckpt_path": "$@bundle_root + '/models/model.pt'",
"device": "$torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')",
"val_interval": 1,
"num_iters": 400,
"batch_size": 600,
"num_epochs": 100,
"num_substeps": 3,
"learning_rate": 0.0001,
"num_workers": 8,
"dataset_dir": ".",
"dataset_file": "$@dataset_dir + '/valvelandmarks.npz'",
"output_dir": "$datetime.datetime.now().strftime('./results/output_%y%m%d_%H%M%S')",
"network_def": {
"_target_": "scripts.valve_landmarks.PointRegressor",
"in_shape": [
1,
256,
256
],
"out_shape": [
2,
10
],
"channels": [
8,
16,
32,
64,
128
],
"strides": [
2,
2,
2,
2,
2
]
},
"network": "$@network_def.to(@device)",
"im_shape": [
1,
256,
256
],
"both_keys": [
"image",
"label"
],
"rand_prob": 0.5,
"train_transforms": {
"_target_": "Compose",
"transforms": [
{
"_target_": "EnsureTyped",
"keys": "@both_keys",
"data_type": "numpy",
"dtype": "$(numpy.float32, numpy.int32)"
},
{
"_target_": "EnsureTyped",
"keys": "@both_keys"
},
{
"_target_": "ScaleIntensityd",
"keys": "image"
},
{
"_target_": "EnsureChannelFirstd",
"keys": "@both_keys",
"channel_dim": "no_channel"
},
{
"_target_": "RandAxisFlipd",
"keys": "@both_keys",
"prob": "@rand_prob"
},
{
"_target_": "RandRotate90d",
"keys": "@both_keys",
"prob": "@rand_prob"
},
{
"_target_": "RandSmoothFieldAdjustIntensityd",
"keys": "image",
"prob": "@rand_prob",
"spatial_size": "@im_shape",
"rand_size": [
5,
5
],
"gamma": [
0.1,
1
],
"mode": "$monai.utils.InterpolateMode.BICUBIC",
"align_corners": true
},
{
"_target_": "RandGaussianNoised",
"keys": "image",
"prob": "@rand_prob",
"std": 0.05
},
{
"_target_": "scripts.valve_landmarks.RandFourierDropoutd",
"keys": "image",
"prob": "@rand_prob"
},
{
"_target_": "scripts.valve_landmarks.RandImageLMDeformd",
"prob": "@rand_prob",
"spatial_size": [
256,
256
],
"rand_size": [
7,
7
],
"pad": 2,
"field_mode": "$monai.utils.InterpolateMode.BICUBIC",
"align_corners": true,
"def_range": 0.05
},
{
"_target_": "scripts.valve_landmarks.RandLMShiftd",
"keys": "@both_keys",
"prob": "@rand_prob",
"spatial_size": [
256,
256
],
"max_shift": 8
},
{
"_target_": "Lambdad",
"keys": "label",
"func": "$scripts.valve_landmarks.convert_lm_image_t"
}
]
},
"eval_transforms": {
"_target_": "Compose",
"transforms": [
{
"_target_": "EnsureTyped",
"keys": "@both_keys",
"data_type": "numpy",
"dtype": "$(numpy.float32, numpy.int32)"
},
{
"_target_": "EnsureTyped",
"keys": "@both_keys"
},
{
"_target_": "ScaleIntensityd",
"keys": "image"
},
{
"_target_": "EnsureChannelFirstd",
"keys": "@both_keys",
"channel_dim": "no_channel"
},
{
"_target_": "Lambdad",
"keys": "label",
"func": "$scripts.valve_landmarks.convert_lm_image_t"
}
]
},
"train_dataset": {
"_target_": "NPZDictItemDataset",
"npzfile": "$@dataset_file",
"keys": {
"trainImgs": "image",
"trainLMImgs": "label"
},
"transform": "@train_transforms"
},
"eval_dataset": {
"_target_": "NPZDictItemDataset",
"npzfile": "$@dataset_file",
"keys": {
"testImgs": "image",
"testLMImgs": "label"
},
"transform": "@eval_transforms"
},
"sampler": {
"_target_": "torch.utils.data.WeightedRandomSampler",
"weights": "$torch.ones(len(@train_dataset))",
"replacement": true,
"num_samples": "$@num_iters*@batch_size"
},
"train_dataloader": {
"_target_": "ThreadDataLoader",
"dataset": "@train_dataset",
"batch_size": "@batch_size",
"repeats": "@num_substeps",
"num_workers": "@num_workers",
"sampler": "@sampler"
},
"eval_dataloader": {
"_target_": "DataLoader",
"dataset": "@eval_dataset",
"batch_size": "@batch_size",
"num_workers": "@num_workers"
},
"lossfn": {
"_target_": "torch.nn.L1Loss"
},
"optimizer": {
"_target_": "torch.optim.Adam",
"params": "$@network.parameters()",
"lr": "@learning_rate"
},
"evaluator": {
"_target_": "SupervisedEvaluator",
"device": "@device",
"val_data_loader": "@eval_dataloader",
"network": "@network",
"key_val_metric": {
"val_mean_dist": {
"_target_": "ignite.metrics.MeanPairwiseDistance",
"output_transform": "$scripts.valve_landmarks._output_lm_trans"
}
},
"metric_cmp_fn": "$lambda current, prev: prev < 0 or current < prev",
"val_handlers": [
{
"_target_": "StatsHandler",
"output_transform": "$lambda x: None"
}
]
},
"handlers": [
{
"_target_": "ValidationHandler",
"validator": "@evaluator",
"epoch_level": true,
"interval": "@val_interval"
},
{
"_target_": "CheckpointSaver",
"save_dir": "@output_dir",
"save_dict": {
"net": "@network"
},
"save_interval": 1,
"save_final": true,
"epoch_level": true
}
],
"trainer": {
"_target_": "SupervisedTrainer",
"max_epochs": "@num_epochs",
"device": "@device",
"train_data_loader": "@train_dataloader",
"network": "@network",
"loss_function": "@lossfn",
"optimizer": "@optimizer",
"key_train_metric": null,
"train_handlers": "@handlers"
},
"training": [
"$@trainer.run()"
]
}