CoolFace
Apppublic

KalbeDigitalLab/PathologyNucleiClassification

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes
train.json351 linesDownload Raw Back to configs
1{2    "imports": [3        "$import glob",4        "$import ignite",5        "$import json",6        "$import pathlib",7        "$import os"8    ],9    "bundle_root": "/workspace/data/pathology_nuclei_classification",10    "ckpt_dir": "$@bundle_root + '/models'",11    "output_dir": "$@bundle_root + '/eval'",12    "dataset_dir": "/workspace/data/CoNSePNuclei",13    "dataset_json": "$@dataset_dir + '/dataset.json'",14    "train_datalist": "$json.loads(pathlib.Path(@dataset_json).read_text())['training']",15    "val_datalist": "$json.loads(pathlib.Path(@dataset_json).read_text())['validation']",16    "val_interval": 1,17    "device": "$torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')",18    "network_def": {19        "_target_": "DenseNet121",20        "spatial_dims": 2,21        "in_channels": 4,22        "out_channels": 423    },24    "network": "$@network_def.to(@device)",25    "loss": {26        "_target_": "torch.nn.CrossEntropyLoss"27    },28    "optimizer": {29        "_target_": "torch.optim.Adam",30        "params": "$@network.parameters()",31        "lr": 0.000132    },33    "max_epochs": 50,34    "train": {35        "preprocessing": {36            "_target_": "Compose",37            "transforms": [38                {39                    "_target_": "LoadImaged",40                    "keys": [41                        "image",42                        "label"43                    ],44                    "dtype": "uint8"45                },46                {47                    "_target_": "EnsureChannelFirstd",48                    "keys": [49                        "image",50                        "label"51                    ]52                },53                {54                    "_target_": "SplitLabeld",55                    "keys": "label",56                    "mask_value": "",57                    "others_value": 255,58                    "to_binary_mask": false59                },60                {61                    "_target_": "RandTorchVisiond",62                    "keys": "image",63                    "name": "ColorJitter",64                    "brightness": 0.25,65                    "contrast": 0.75,66                    "saturation": 0.25,67                    "hue": 0.0468                },69                {70                    "_target_": "RandFlipd",71                    "keys": [72                        "image",73                        "label",74                        "others"75                    ],76                    "prob": 0.577                },78                {79                    "_target_": "RandRotate90d",80                    "keys": [81                        "image",82                        "label",83                        "others"84                    ],85                    "prob": 0.586                },87                {88                    "_target_": "ScaleIntensityRanged",89                    "keys": "image",90                    "a_min": 0.0,91                    "a_max": 255.0,92                    "b_min": -1.0,93                    "b_max": 1.094                },95                {96                    "_target_": "AddLabelAsGuidanced",97                    "keys": "image",98                    "source": "label"99                },100                {101                    "_target_": "SetLabelClassd",102                    "keys": "label",103                    "offset": -1104                },105                {106                    "_target_": "SelectItemsd",107                    "keys": [108                        "image",109                        "label"110                    ]111                }112            ]113        },114        "dataset": {115            "_target_": "CacheDataset",116            "data": "@train_datalist",117            "transform": "@train#preprocessing",118            "cache_rate": 1.0,119            "num_workers": 4120        },121        "dataloader": {122            "_target_": "DataLoader",123            "dataset": "@train#dataset",124            "batch_size": 64,125            "shuffle": true,126            "num_workers": 4127        },128        "inferer": {129            "_target_": "SimpleInferer"130        },131        "postprocessing": {132            "_target_": "Compose",133            "transforms": [134                {135                    "_target_": "Activationsd",136                    "keys": "pred",137                    "softmax": true138                },139                {140                    "_target_": "AsDiscreted",141                    "keys": [142                        "pred",143                        "label"144                    ],145                    "argmax": [146                        true,147                        false148                    ],149                    "to_onehot": 4150                },151                {152                    "_target_": "ToTensord",153                    "keys": [154                        "pred",155                        "label"156                    ],157                    "device": "@device"158                }159            ]160        },161        "handlers": [162            {163                "_target_": "ValidationHandler",164                "validator": "@validate#evaluator",165                "epoch_level": true,166                "interval": "@val_interval"167            },168            {169                "_target_": "StatsHandler",170                "tag_name": "train_loss",171                "output_transform": "$monai.handlers.from_engine(['loss'], first=True)"172            },173            {174                "_target_": "TensorBoardStatsHandler",175                "log_dir": "@output_dir",176                "tag_name": "train_loss",177                "output_transform": "$monai.handlers.from_engine(['loss'], first=True)"178            },179            {180                "_target_": "scripts.TensorBoardImageHandler",181                "class_names": {182                    "0": "Other",183                    "1": "Inflammatory",184                    "2": "Epithelial",185                    "3": "Spindle-Shaped"186                },187                "log_dir": "@output_dir",188                "batch_limit": 4,189                "tag_name": "train"190            }191        ],192        "key_metric": {193            "train_f1": {194                "_target_": "ConfusionMatrix",195                "metric_name": "f1 score",196                "output_transform": "$monai.handlers.from_engine(['pred', 'label'])"197            }198        },199        "trainer": {200            "_target_": "SupervisedTrainer",201            "max_epochs": "@max_epochs",202            "device": "@device",203            "train_data_loader": "@train#dataloader",204            "network": "@network",205            "loss_function": "@loss",206            "optimizer": "@optimizer",207            "inferer": "@train#inferer",208            "postprocessing": "@train#postprocessing",209            "key_train_metric": "@train#key_metric",210            "train_handlers": "@train#handlers",211            "amp": true212        }213    },214    "validate": {215        "preprocessing": {216            "_target_": "Compose",217            "transforms": [218                {219                    "_target_": "LoadImaged",220                    "keys": [221                        "image",222                        "label"223                    ],224                    "dtype": "uint8"225                },226                {227                    "_target_": "EnsureChannelFirstd",228                    "keys": [229                        "image",230                        "label"231                    ]232                },233                {234                    "_target_": "SplitLabeld",235                    "keys": "label",236                    "mask_value": "",237                    "others_value": 255,238                    "to_binary_mask": false239                },240                {241                    "_target_": "ScaleIntensityRanged",242                    "keys": "image",243                    "a_min": 0.0,244                    "a_max": 255.0,245                    "b_min": -1.0,246                    "b_max": 1.0247                },248                {249                    "_target_": "AddLabelAsGuidanced",250                    "keys": "image",251                    "source": "label"252                },253                {254                    "_target_": "SetLabelClassd",255                    "keys": "label",256                    "offset": -1257                },258                {259                    "_target_": "SelectItemsd",260                    "keys": [261                        "image",262                        "label",263                        "image_meta_dict"264                    ]265                }266            ]267        },268        "dataset": {269            "_target_": "CacheDataset",270            "data": "@val_datalist",271            "transform": "@validate#preprocessing",272            "cache_rate": 1.0273        },274        "dataloader": {275            "_target_": "DataLoader",276            "dataset": "@validate#dataset",277            "batch_size": 64,278            "shuffle": false,279            "num_workers": 4280        },281        "inferer": {282            "_target_": "SimpleInferer"283        },284        "postprocessing": "%train#postprocessing",285        "handlers": [286            {287                "_target_": "StatsHandler",288                "iteration_log": false289            },290            {291                "_target_": "TensorBoardStatsHandler",292                "log_dir": "@output_dir",293                "iteration_log": false294            },295            {296                "_target_": "CheckpointSaver",297                "save_dir": "@ckpt_dir",298                "save_dict": {299                    "model": "@network"300                },301                "save_key_metric": true,302                "key_metric_filename": "model.pt"303            },304            {305                "_target_": "scripts.TensorBoardImageHandler",306                "class_names": {307                    "0": "Other",308                    "1": "Inflammatory",309                    "2": "Epithelial",310                    "3": "Spindle-Shaped"311                },312                "log_dir": "@output_dir",313                "batch_limit": 8,314                "tag_name": "val"315            }316        ],317        "key_metric": {318            "val_f1": {319                "_target_": "ConfusionMatrix",320                "metric_name": "f1 score",321                "output_transform": "$monai.handlers.from_engine(['pred', 'label'])"322            }323        },324        "additional_metrics": {325            "val_accuracy": {326                "_target_": "ignite.metrics.Accuracy",327                "output_transform": "$monai.handlers.from_engine(['pred', 'label'])"328            }329        },330        "evaluator": {331            "_target_": "SupervisedEvaluator",332            "device": "@device",333            "val_data_loader": "@validate#dataloader",334            "network": "@network",335            "inferer": "@validate#inferer",336            "postprocessing": "@validate#postprocessing",337            "key_val_metric": "@validate#key_metric",338            "additional_metrics": "@validate#additional_metrics",339            "val_handlers": "@validate#handlers",340            "amp": true341        }342    },343    "training": [344        "$import sys",345        "$sys.path.append(@bundle_root)",346        "$monai.utils.set_determinism(seed=123)",347        "$setattr(torch.backends.cudnn, 'benchmark', True)",348        "$@train#trainer.run()"349    ]350}351