| # Template Classification Bundle | |
| This bundle is meant to be an example of classification in 2D which you can copy and modify to create your own bundle. | |
| It is only roughly trained for the synthetic data you can generate with [this notebook](./generate_data.ipynb) | |
| so doesn't do anything useful on its own. The purpose is to demonstrate the base line for classification network bundles. | |
| To use this bundle, copy the contents of the whole directory and change the definitions for network, data, transforms, | |
| or whatever else you want for your own new classification bundle. | |
| ## Generating Demo Data | |
| Run all the cells of [this notebook](./generate_data.ipynb) to generate training and test data. These will be 2D | |
| nifti files containing volumes with randomly generated circle, triangle or rectangle. The classification task | |
| is very easy so your network will train in minutes with the default configuration of values. A test | |
| data directory will separately be created since the inference config is configured to apply the network to | |
| every nifti file in a given directory with a certain pattern. | |
| ## Training | |
| To train a new network the `train.yaml` script can be used alone with no other arguments (assume `BUNDLE` is the root | |
| directory of the bundle): | |
| ``` | |
| python -m monai.bundle run --config_file configs/train.yaml | |
| ``` | |
| The training config includes a number of hyperparameters like `learning_rate` and `num_workers`. These control aspects | |
| of how training operates in terms of how many processes to use, when to perform validation, when to save checkpoints, | |
| and other things. Other aspects of the script can be modified on the command line so these aren't exhaustive but are a | |
| guide to the kind of parameterisation that make sense for a bundle. | |
| ## Override the `train` config to execute multi-GPU training: | |
| ``` | |
| torchrun --standalone --nnodes=1 --nproc_per_node=2 -m monai.bundle run --config_file "['configs/train.yaml','configs/multi_gpu_train.yaml']" | |
| ``` | |
| Please note that the distributed training-related options depend on the actual running environment; thus, users may need to remove `--standalone`, modify `--nnodes`, or do some other necessary changes according to the machine used. For more details, please refer to [pytorch's official tutorial](https://pytorch.org/tutorials/intermediate/ddp_tutorial.html). | |
| ## Override the `train` config to execute evaluation with the trained model: | |
| ``` | |
| python -m monai.bundle run --config_file "['configs/train.yaml','configs/evaluate.yaml']" | |
| ``` | |
| ## Execute inference: | |
| ``` | |
| python -m monai.bundle run --config_file configs/inference.yaml | |
| ``` | |
| ## Other Considerations | |
| There is no `scripts` directory containing a valid Python module to be imported in your configs. This wasn't necessary | |
| for this bundle but if you want to include custom code in a bundle please follow the bundle tutorials on how to do this. | |