|
13 | 13 | "This notebook is a step-by-step tutorial to help get started to develop a bundle package, which contains a config file to construct the training pipeline and also has a `metadata.json` file to define the metadata information.\n", |
14 | 14 | "\n", |
15 | 15 | "This notebook mainly contains the below sections:\n", |
16 | | - "- Define a training config with `JSON` or `YAML` format\n", |
17 | | - "- Execute training based on bundle scripts and configs\n", |
18 | | - "- Hybrid programming with config and python code\n", |
| 16 | + "- Define a training config with `JSON` or `YAML` format.\n", |
| 17 | + "- Execute training based on bundle scripts and configs.\n", |
| 18 | + "- Execute other scripts for bundle functionalities.\n", |
| 19 | + "- Hybrid programming with config and python code.\n", |
19 | 20 | "\n", |
20 | 21 | "You can find the usage examples of MONAI bundle key features and syntax in this tutorial, like:\n", |
21 | 22 | "- Instantiate a python object from a dictionary config with `_target_` indicating class or function name or module path.\n", |
|
511 | 512 | "source": [ |
512 | 513 | "## Execute training with bundle script - `run`\n", |
513 | 514 | "\n", |
514 | | - "There are several predefined scripts in MONAI bundle module to help execute `regular training`, `metadata verification base on schema`, `network input / output verification`, `export to TorchScript model`, etc.\n", |
515 | | - "\n", |
516 | | - "Here we leverage the `run` script and specify the ID of trainer in the config.\n", |
| 515 | + "There are several predefined scripts in MONAI bundle module, here we leverage the `run` script and specify the ID of trainer in the config.\n", |
517 | 516 | "\n", |
518 | 517 | "Just define the entry point expressions in the config to execute in order, and specify the `runner_id` in CLI script." |
519 | 518 | ] |
|
535 | 534 | "cell_type": "markdown", |
536 | 535 | "metadata": {}, |
537 | 536 | "source": [ |
538 | | - "`python -m monai.bundle run training --config_file configs/train.json`" |
| 537 | + "```shell\n", |
| 538 | + "python -m monai.bundle run training --config_file configs/train.json\n", |
| 539 | + "```" |
539 | 540 | ] |
540 | 541 | }, |
541 | 542 | { |
|
546 | 547 | "\n", |
547 | 548 | "To override some config items at runtime, users can specify the target `id` and `value` at command line, or override the `id` with some content in another config file. Here we set the device to `cuda:1` at runtime.\n", |
548 | 549 | "\n", |
549 | | - "Please note that \"#\" and \"$\" may be meaningful syntax for some `shell` and `CLI` tools, so may need to add escape character or quotes for them in the command line, like: `\"\\$torch.device('cuda:1')\"`. For more details: https://github.com/google/python-fire/blob/v0.4.0/fire/parser.py#L60." |
550 | | - ] |
551 | | - }, |
552 | | - { |
553 | | - "cell_type": "markdown", |
554 | | - "metadata": {}, |
555 | | - "source": [ |
556 | | - "`python -m monai.bundle run training --config_file configs/train.json --device \"\\$torch.device('cuda:1')\"`" |
557 | | - ] |
558 | | - }, |
559 | | - { |
560 | | - "cell_type": "markdown", |
561 | | - "metadata": {}, |
562 | | - "source": [ |
563 | | - "Override content from another config file." |
| 550 | + "Please note that \"#\" and \"$\" may be meaningful syntax for some `shell` and `CLI` tools, so may need to add escape character or quotes for them in the command line, like: `\"\\$torch.device('cuda:1')\"`. For more details: https://github.com/google/python-fire/blob/v0.4.0/fire/parser.py#L60.\n", |
| 551 | + "```shell\n", |
| 552 | + "python -m monai.bundle run training --config_file configs/train.json --device \"\\$torch.device('cuda:1')\"\n", |
| 553 | + "```\n", |
| 554 | + "Override content from another config file.\n", |
| 555 | + "```shell\n", |
| 556 | + "python -m monai.bundle run training --config_file configs/train.json --network \"%configs/test.json#network\"\n", |
| 557 | + "```" |
564 | 558 | ] |
565 | 559 | }, |
566 | 560 | { |
567 | 561 | "cell_type": "markdown", |
568 | 562 | "metadata": {}, |
569 | 563 | "source": [ |
570 | | - "`python -m monai.bundle run training --config_file configs/train.json --network \"%configs/test.json#network\"`" |
| 564 | + "## Execute other bundle scripts\n", |
| 565 | + "\n", |
| 566 | + "Besides `run`, there are also many other scripts for bundle functionalities. All the scripts are available at: https://docs.monai.io/en/latest/bundle.html#scripts.\n", |
| 567 | + "\n", |
| 568 | + "Here is some typical examples:\n", |
| 569 | + "\n", |
| 570 | + "1. Initialize a bundle directory based on the template and pretrained checkpoint weights.\n", |
| 571 | + "```shell\n", |
| 572 | + "python -m monai.bundle init_bundle --bundle_dir <target dir> --ckpt_file <checkpoint path>\n", |
| 573 | + "```\n", |
| 574 | + "\n", |
| 575 | + "2. Export the model checkpoint to a `TorchScript` model at the given filepath with metadata and config included as JSON files.\n", |
| 576 | + "```shell\n", |
| 577 | + "python -m monai.bundle ckpt_export network --filepath <export path> --ckpt_file <checkpoint path> --config_file <config path>\n", |
| 578 | + "```\n", |
| 579 | + "\n", |
| 580 | + "3. Verify the format of provided `metadata` file based on the predefined `schema`.\n", |
| 581 | + "```shell\n", |
| 582 | + "python -m monai.bundle verify_metadata --meta_file <meta path>\n", |
| 583 | + "```\n", |
| 584 | + "\n", |
| 585 | + "4. Verify the input and output data shape and data type of network defined in the metadata. It will test with fake Tensor data according to the required data shape in `metadata`.\n", |
| 586 | + "```shell\n", |
| 587 | + "python -m monai.bundle verify_net_in_out network --meta_file <metadata path> --config_file <config path>\n", |
| 588 | + "```\n", |
| 589 | + "The acceptable data shape in the metadata can support `\"*\"` for any size, or use an expression with Python mathematical operators and one character variables to represent dependence on an unknown quantity, for example, `\"2**p\"` represents a size which must be a power of 2, `\"2**p*n\"` must be a multiple of a power of 2. `\"spatial_shape\": [ \"32 * n\", \"2 ** p * n\", \"*\"]`.\n", |
| 590 | + "\n", |
| 591 | + "\n", |
| 592 | + "5. Download a bundle from Github release or URL.\n", |
| 593 | + "```shell\n", |
| 594 | + "python -m monai.bundle download --name <bundle_name>\n", |
| 595 | + "```" |
571 | 596 | ] |
572 | 597 | }, |
573 | 598 | { |
|
0 commit comments