From c80a92ae4a07ab60944a1a8f86ea1a9faafd71d3 Mon Sep 17 00:00:00 2001 From: Virginia Date: Mon, 9 Dec 2024 16:04:28 +0000 Subject: [PATCH 01/33] Initial commit of CXR Latent Diffusion model from the GenerativeModels repo. Signed-off-by: Virginia --- .../LICENSE | 201 ++++++++++++++++++ .../configs/inference.json | 108 ++++++++++ .../configs/logging.conf | 21 ++ .../configs/metadata.json | 73 +++++++ .../docs/README.md | 76 +++++++ .../docs/figure_1.png | Bin 0 -> 478177 bytes .../large_files.yml | 9 + .../scripts/__init__.py | 0 .../scripts/sampler.py | 43 ++++ .../scripts/saver.py | 17 ++ 10 files changed, 548 insertions(+) create mode 100644 models/cxr_image_synthesis_latent_diffusion_model/LICENSE create mode 100644 models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json create mode 100644 models/cxr_image_synthesis_latent_diffusion_model/configs/logging.conf create mode 100644 models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json create mode 100644 models/cxr_image_synthesis_latent_diffusion_model/docs/README.md create mode 100644 models/cxr_image_synthesis_latent_diffusion_model/docs/figure_1.png create mode 100644 models/cxr_image_synthesis_latent_diffusion_model/large_files.yml create mode 100644 models/cxr_image_synthesis_latent_diffusion_model/scripts/__init__.py create mode 100644 models/cxr_image_synthesis_latent_diffusion_model/scripts/sampler.py create mode 100644 models/cxr_image_synthesis_latent_diffusion_model/scripts/saver.py diff --git a/models/cxr_image_synthesis_latent_diffusion_model/LICENSE b/models/cxr_image_synthesis_latent_diffusion_model/LICENSE new file mode 100644 index 00000000..261eeb9e --- /dev/null +++ b/models/cxr_image_synthesis_latent_diffusion_model/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json b/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json new file mode 100644 index 00000000..a45d0ff3 --- /dev/null +++ b/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json @@ -0,0 +1,108 @@ +{ + "imports": [ + "$import torch", + "$from datetime import datetime", + "$from pathlib import Path", + "$from transformers import CLIPTextModel", + "$from transformers import CLIPTokenizer" + ], + "bundle_root": ".", + "load_old": 1, + "model_dir": "$@bundle_root + '/models'", + "output_dir": "$@bundle_root + '/output'", + "create_output_dir": "$Path(@output_dir).mkdir(exist_ok=True)", + "prompt": "Big right-sided pleural effusion", + "prompt_list": "$['', @prompt]", + "guidance_scale": 7.0, + "device": "$torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')", + "tokenizer": "$CLIPTokenizer.from_pretrained(\"stabilityai/stable-diffusion-2-1-base\", subfolder=\"tokenizer\")", + "text_encoder": "$CLIPTextModel.from_pretrained(\"stabilityai/stable-diffusion-2-1-base\", subfolder=\"text_encoder\")", + "tokenized_prompt": "$@tokenizer(@prompt_list, padding=\"max_length\", max_length=@tokenizer.model_max_length, truncation=True,return_tensors=\"pt\")", + "prompt_embeds": "$@text_encoder(@tokenized_prompt.input_ids.squeeze(1))[0].to(@device)", + "out_file": "$datetime.now().strftime('sample_%H%M%S_%d%m%Y')", + "autoencoder_def": { + "_target_": "monai.networks.nets.AutoencoderKL", + "spatial_dims": 2, + "in_channels": 1, + "out_channels": 1, + "latent_channels": 3, + "channels": [ + 64, + 128, + 128, + 128 + ], + "num_res_blocks": 2, + "norm_num_groups": 32, + "norm_eps": 1e-06, + "attention_levels": [ + false, + false, + false, + false + ], + "with_encoder_nonlocal_attn": false, + "with_decoder_nonlocal_attn": false + }, + "load_autoencoder_path": "$@model_dir + '/autoencoder.pth'", + "load_autoencoder": "$@autoencoder_def.load_old_state_dict(torch.load(@load_autoencoder_path)) if bool(@load_old) else @autoencoder_def.load_state_dict(torch.load(@load_autoencoder_path))", + "autoencoder": "$@autoencoder_def.to(@device)", + "diffusion_def": { + "_target_": "monai.networks.nets.DiffusionModelUNet", + "spatial_dims": 2, + "in_channels": 3, + "out_channels": 3, + "channels": [ + 256, + 512, + 768 + ], + "num_res_blocks": 2, + "attention_levels": [ + false, + true, + true + ], + "norm_num_groups": 32, + "norm_eps": 1e-06, + "resblock_updown": false, + "num_head_channels": [ + 0, + 512, + 768 + ], + "with_conditioning": true, + "transformer_num_layers": 1, + "cross_attention_dim": 1024 + }, + "load_diffusion_path": "$@model_dir + '/diffusion_model.pth'", + "load_diffusion": "$@diffusion_def.load_old_state_dict(torch.load(@load_diffusion_path)) if bool(@load_old) else @diffusion_def.load_state_dict(torch.load(@load_diffusion_path))", + "diffusion": "$@diffusion_def.to(@device)", + "scheduler": { + "_target_": "monai.networks.schedulers.DDIMScheduler", + "_requires_": [ + "@load_diffusion", + "@load_autoencoder" + ], + "beta_start": 0.0015, + "beta_end": 0.0205, + "num_train_timesteps": 1000, + "schedule": "scaled_linear_beta", + "prediction_type": "v_prediction", + "clip_sample": false + }, + "noise": "$torch.randn((1, 3, 64, 64)).to(@device)", + "set_timesteps": "$@scheduler.set_timesteps(num_inference_steps=50)", + "sampler": { + "_target_": "scripts.sampler.Sampler", + "_requires_": "@set_timesteps" + }, + "sample": "$@sampler.sampling_fn(@noise, @autoencoder, @diffusion, @scheduler, @prompt_embeds)", + "saver": { + "_target_": "scripts.saver.JPGSaver", + "_requires_": "@create_output_dir", + "output_dir": "@output_dir" + }, + "save_jpg": "$@saver.save(@sample, @out_file)", + "save": "$torch.save(@sample, @output_dir + '/' + @out_file + '.pt')" +} diff --git a/models/cxr_image_synthesis_latent_diffusion_model/configs/logging.conf b/models/cxr_image_synthesis_latent_diffusion_model/configs/logging.conf new file mode 100644 index 00000000..91c1a21c --- /dev/null +++ b/models/cxr_image_synthesis_latent_diffusion_model/configs/logging.conf @@ -0,0 +1,21 @@ +[loggers] +keys=root + +[handlers] +keys=consoleHandler + +[formatters] +keys=fullFormatter + +[logger_root] +level=INFO +handlers=consoleHandler + +[handler_consoleHandler] +class=StreamHandler +level=INFO +formatter=fullFormatter +args=(sys.stdout,) + +[formatter_fullFormatter] +format=%(asctime)s - %(name)s - %(levelname)s - %(message)s diff --git a/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json b/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json new file mode 100644 index 00000000..020005e3 --- /dev/null +++ b/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json @@ -0,0 +1,73 @@ +{ + "schema": "https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/meta_schema_20220324.json", + "version": "1.0.0", + "changelog": { + "0.2": "Flipped images fixed" + }, + "monai_version": "1.1.0", + "pytorch_version": "1.13.0", + "numpy_version": "1.22.4", + "optional_packages_version": { + "nibabel": "4.0.1", + "generative": "0.1.0", + "transformers": "4.26.1" + }, + "task": "Chest X-ray image synthesis", + "description": "A generative model for creating high-resolution chest X-ray based on MIMIC dataset", + "copyright": "Copyright (c) MONAI Consortium", + "data_source": "https://physionet.org/content/mimic-cxr-jpg/2.0.0/", + "data_type": "image", + "image_classes": "Radiography (X-ray) with 512 x 512 pixels", + "intended_use": "This is a research tool/prototype and not to be used clinically", + "network_data_format": { + "inputs": { + "latent_representation": { + "type": "image", + "format": "magnitude", + "modality": "CXR", + "num_channels": 3, + "spatial_shape": [ + 64, + 64 + ], + "dtype": "float32", + "value_range": [], + "is_patch_data": false + }, + "timesteps": { + "type": "vector", + "value_range": [ + 0, + 1000 + ], + "dtype": "long" + }, + "context": { + "type": "vector", + "value_range": [], + "dtype": "float32" + } + }, + "outputs": { + "pred": { + "type": "image", + "format": "magnitude", + "modality": "CXR", + "num_channels": 1, + "spatial_shape": [ + 512, + 512 + ], + "dtype": "float32", + "value_range": [ + 0, + 1 + ], + "is_patch_data": false, + "channel_def": { + "0": "X-ray" + } + } + } + } +} diff --git a/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md b/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md new file mode 100644 index 00000000..8680f33b --- /dev/null +++ b/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md @@ -0,0 +1,76 @@ +# Description + +A diffusion model to synthetise X-Ray images based on radiological report impressions. + +# Model Overview +This model is trained from scratch using the Latent Diffusion Model architecture [1] and is used for the synthesis of +2D Chest X-ray conditioned on Radiological reports. The model is divided into two parts: an autoencoder with a +KL-regularisation model that compresses data into a latent space and a diffusion model that learns to generate +conditioned synthetic latent representations. This model is conditioned on Findings and Impressions from radiological +reports. The original repository can be found [here](https://github.com/Warvito/generative_chestxray) + +![](./figure_1.png)
+

+Figure 1 - Synthetic images from the model.

+ +# Data +The model was trained on brain data from 90,000 participants from the MIMIC dataset [2] [3]. We downsampled the +original images to have a format of 512 x 512 pixels. + +## Preprocessing +We resized the original images to make the smallest sides have 512 pixels. When inputting it to the network, we center +cropped the images to 512 x 512. The pixel intensity was normalised to be between [0, 1]. The text data was obtained +from associated radiological reports. We randoomly extracted sentences from the findings and impressions sections of the +reports, having a maximum of 5 sentences and 77 tokens. The text was tokenised using the CLIPTokenizer from +transformers package (https://github.com/huggingface/transformers) (pretrained model +"stabilityai/stable-diffusion-2-1-base") and then encoded using CLIPTextModel from the same package and pretrained +model. + +# Examples of inference + +Here we included a few examples of commands to sample images from the model and save them as .jpg files. The available +arguments for this task are: "--prompt" (str) text prompt to condition the model on; "--guidance_scale" (float), the +parameter that controls how much the image generation process follows the text prompt. The higher the value, the more +the image sticks to a given text input (the common range is between 1-21). + +Examples: + +```shell +export PYTHONPATH=$PYTHONPATH:"" +$ python -m monai.bundle run save_jpg --config_file configs/inference.json --prompt "Big right-sided pleural effusion" --guidance_scale 7.0 +``` + +```shell +export PYTHONPATH=$PYTHONPATH:"" +$ python -m monai.bundle run save_jpg --config_file configs/inference.json --prompt "Small right-sided pleural effusion" --guidance_scale 7.0 +``` + +```shell +export PYTHONPATH=$PYTHONPATH:"" +$ python -m monai.bundle run save_jpg --config_file configs/inference.json --prompt "Bilateral pleural effusion" --guidance_scale 7.0 +``` + +```shell +export PYTHONPATH=$PYTHONPATH:"" +$ python -m monai.bundle run save_jpg --config_file configs/inference.json --prompt "Cardiomegaly" --guidance_scale 7.0 +``` + +## Using a new version of the model + +If you want to use the checkpoints from a newly fine-tuned model, you need to set parameter load_old to 0 when you run inference, +to avoid the function load_old_state_dict being called instead of load_state_dict to be called, currently default, as it is +required to load the checkpoint from the original GenerativeModels repository. + +```shell +export PYTHONPATH=$PYTHONPATH:"" +$ python -m monai.bundle run save_jpg --config_file configs/inference.json --prompt "Pleural effusion." --guidance_scale 7.0 --load_old 0 +``` + +## References + + +[1] Pinaya, Walter HL, et al. "Brain imaging generation with latent diffusion models." MICCAI Workshop on Deep Generative Models. Springer, Cham, 2022. + +[2] Johnson, A., Lungren, M., Peng, Y., Lu, Z., Mark, R., Berkowitz, S., & Horng, S. (2019). MIMIC-CXR-JPG - chest radiographs with structured labels (version 2.0.0). PhysioNet. https://doi.org/10.13026/8360-t248. + +[3] Johnson AE, Pollard TJ, Berkowitz S, Greenbaum NR, Lungren MP, Deng CY, Mark RG, Horng S. MIMIC-CXR: A large publicly available database of labeled chest radiographs. arXiv preprint arXiv:1901.07042. 2019 Jan 21. diff --git a/models/cxr_image_synthesis_latent_diffusion_model/docs/figure_1.png b/models/cxr_image_synthesis_latent_diffusion_model/docs/figure_1.png new file mode 100644 index 0000000000000000000000000000000000000000..1baa0adbf322a48ca85f97d58cd452ba7d8eec0b GIT binary patch literal 478177 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≦MKwgLetShiavcK^^H-2;@HCto$`0^}ku< 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 z

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�?|qp>K!-G(B~h@ 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

y)sRN=3O*8>ZBP0iVr?FMv_eatX8Y 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 None: + super().__init__() + + @torch.no_grad() + def sampling_fn( + self, + noise: torch.Tensor, + autoencoder_model: nn.Module, + diffusion_model: nn.Module, + scheduler: nn.Module, + prompt_embeds: torch.Tensor, + guidance_scale: float = 7.0, + scale_factor: float = 0.3, + ) -> torch.Tensor: + if has_tqdm: + progress_bar = tqdm(scheduler.timesteps) + else: + progress_bar = iter(scheduler.timesteps) + + for t in progress_bar: + noise_input = torch.cat([noise] * 2) + model_output = diffusion_model( + noise_input, timesteps=torch.Tensor((t,)).to(noise.device).long(), context=prompt_embeds + ) + noise_pred_uncond, noise_pred_text = model_output.chunk(2) + noise_pred = noise_pred_uncond + guidance_scale * (noise_pred_text - noise_pred_uncond) + noise, _ = scheduler.step(noise_pred, t, noise) + + with autocast(): + sample = autoencoder_model.decode_stage_2_outputs(noise / scale_factor) + + return sample diff --git a/models/cxr_image_synthesis_latent_diffusion_model/scripts/saver.py b/models/cxr_image_synthesis_latent_diffusion_model/scripts/saver.py new file mode 100644 index 00000000..05e88722 --- /dev/null +++ b/models/cxr_image_synthesis_latent_diffusion_model/scripts/saver.py @@ -0,0 +1,17 @@ +from __future__ import annotations + +import numpy as np +import torch +from PIL import Image + + +class JPGSaver: + def __init__(self, output_dir: str) -> None: + super().__init__() + self.output_dir = output_dir + + def save(self, image_data: torch.Tensor, file_name: str) -> None: + image_data = np.clip(image_data.cpu().numpy(), 0, 1) + image_data = (image_data * 255).astype(np.uint8) + im = Image.fromarray(image_data[0, 0]) + im.save(self.output_dir + "/" + file_name + ".jpg") From fe87cb46deebcfcb2da87582430592dc398b0199 Mon Sep 17 00:00:00 2001 From: Virginia Date: Mon, 9 Dec 2024 16:08:27 +0000 Subject: [PATCH 02/33] Modify the README.md file as it contained something from the old repo that no longer applies. --- .../docs/README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md b/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md index 8680f33b..ac87910e 100644 --- a/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md +++ b/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md @@ -36,22 +36,18 @@ the image sticks to a given text input (the common range is between 1-21). Examples: ```shell -export PYTHONPATH=$PYTHONPATH:"" $ python -m monai.bundle run save_jpg --config_file configs/inference.json --prompt "Big right-sided pleural effusion" --guidance_scale 7.0 ``` ```shell -export PYTHONPATH=$PYTHONPATH:"" $ python -m monai.bundle run save_jpg --config_file configs/inference.json --prompt "Small right-sided pleural effusion" --guidance_scale 7.0 ``` ```shell -export PYTHONPATH=$PYTHONPATH:"" $ python -m monai.bundle run save_jpg --config_file configs/inference.json --prompt "Bilateral pleural effusion" --guidance_scale 7.0 ``` ```shell -export PYTHONPATH=$PYTHONPATH:"" $ python -m monai.bundle run save_jpg --config_file configs/inference.json --prompt "Cardiomegaly" --guidance_scale 7.0 ``` @@ -62,7 +58,6 @@ to avoid the function load_old_state_dict being called instead of load_state_dic required to load the checkpoint from the original GenerativeModels repository. ```shell -export PYTHONPATH=$PYTHONPATH:"" $ python -m monai.bundle run save_jpg --config_file configs/inference.json --prompt "Pleural effusion." --guidance_scale 7.0 --load_old 0 ``` From de4e1985192d97a9ef57136de88f25f359d1667b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 9 Dec 2024 16:11:53 +0000 Subject: [PATCH 03/33] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .../docs/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md b/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md index ac87910e..1f7ce0f2 100644 --- a/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md +++ b/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md @@ -1,6 +1,6 @@ # Description -A diffusion model to synthetise X-Ray images based on radiological report impressions. +A diffusion model to synthetise X-Ray images based on radiological report impressions. # Model Overview This model is trained from scratch using the Latent Diffusion Model architecture [1] and is used for the synthesis of @@ -26,7 +26,7 @@ transformers package (https://github.com/huggingface/transformers) (pretrained m "stabilityai/stable-diffusion-2-1-base") and then encoded using CLIPTextModel from the same package and pretrained model. -# Examples of inference +# Examples of inference Here we included a few examples of commands to sample images from the model and save them as .jpg files. The available arguments for this task are: "--prompt" (str) text prompt to condition the model on; "--guidance_scale" (float), the @@ -54,7 +54,7 @@ $ python -m monai.bundle run save_jpg --config_file configs/inference.json --pro ## Using a new version of the model If you want to use the checkpoints from a newly fine-tuned model, you need to set parameter load_old to 0 when you run inference, -to avoid the function load_old_state_dict being called instead of load_state_dict to be called, currently default, as it is +to avoid the function load_old_state_dict being called instead of load_state_dict to be called, currently default, as it is required to load the checkpoint from the original GenerativeModels repository. ```shell From 315276b6c5690a3eee91839828bedc42e659e957 Mon Sep 17 00:00:00 2001 From: Virginia Date: Thu, 12 Dec 2024 09:45:06 +0000 Subject: [PATCH 04/33] Modification of metadata to remove generative package requirement, no longer necessary. On inference, modification of the entry point from save_jpg to run to allow for run to be called alone, and truncation of loading statements which are too long. Modification of the README to include command example changes. --- .../configs/inference.json | 8 +++++--- .../configs/metadata.json | 3 +-- .../docs/README.md | 10 +++++----- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json b/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json index a45d0ff3..6578e3ea 100644 --- a/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json +++ b/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json @@ -45,7 +45,8 @@ "with_decoder_nonlocal_attn": false }, "load_autoencoder_path": "$@model_dir + '/autoencoder.pth'", - "load_autoencoder": "$@autoencoder_def.load_old_state_dict(torch.load(@load_autoencoder_path)) if bool(@load_old) else @autoencoder_def.load_state_dict(torch.load(@load_autoencoder_path))", + "load_autoencoder_func": "$@autoencoder_def.load_old_state_dict if bool(@load_old) else @autoencoder_def.load_state_dict", + "load_autoencoder": "$@load_autoencoder_func(torch.load(@load_autoencoder_path))", "autoencoder": "$@autoencoder_def.to(@device)", "diffusion_def": { "_target_": "monai.networks.nets.DiffusionModelUNet", @@ -76,7 +77,8 @@ "cross_attention_dim": 1024 }, "load_diffusion_path": "$@model_dir + '/diffusion_model.pth'", - "load_diffusion": "$@diffusion_def.load_old_state_dict(torch.load(@load_diffusion_path)) if bool(@load_old) else @diffusion_def.load_state_dict(torch.load(@load_diffusion_path))", + "load_diffusion_func": "$@diffusion_def.load_old_state_dict if bool(@load_old) else @diffusion_def.load_state_dict", + "load_diffusion": "$@load_diffusion_func(torch.load(@load_diffusion_path))", "diffusion": "$@diffusion_def.to(@device)", "scheduler": { "_target_": "monai.networks.schedulers.DDIMScheduler", @@ -103,6 +105,6 @@ "_requires_": "@create_output_dir", "output_dir": "@output_dir" }, - "save_jpg": "$@saver.save(@sample, @out_file)", + "run": "$@saver.save(@sample, @out_file)", "save": "$torch.save(@sample, @output_dir + '/' + @out_file + '.pt')" } diff --git a/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json b/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json index 020005e3..5c9f6596 100644 --- a/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json +++ b/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json @@ -9,7 +9,6 @@ "numpy_version": "1.22.4", "optional_packages_version": { "nibabel": "4.0.1", - "generative": "0.1.0", "transformers": "4.26.1" }, "task": "Chest X-ray image synthesis", @@ -26,7 +25,7 @@ "format": "magnitude", "modality": "CXR", "num_channels": 3, - "spatial_shape": [ + "spatial_shape": [77, 64, 64 ], diff --git a/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md b/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md index ac87910e..c0d90a0a 100644 --- a/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md +++ b/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md @@ -36,19 +36,19 @@ the image sticks to a given text input (the common range is between 1-21). Examples: ```shell -$ python -m monai.bundle run save_jpg --config_file configs/inference.json --prompt "Big right-sided pleural effusion" --guidance_scale 7.0 +$ python -m monai.bundle run --config_file configs/inference.json --prompt "Big right-sided pleural effusion" --guidance_scale 7.0 ``` ```shell -$ python -m monai.bundle run save_jpg --config_file configs/inference.json --prompt "Small right-sided pleural effusion" --guidance_scale 7.0 +$ python -m monai.bundle run --config_file configs/inference.json --prompt "Small right-sided pleural effusion" --guidance_scale 7.0 ``` ```shell -$ python -m monai.bundle run save_jpg --config_file configs/inference.json --prompt "Bilateral pleural effusion" --guidance_scale 7.0 +$ python -m monai.bundle run --config_file configs/inference.json --prompt "Bilateral pleural effusion" --guidance_scale 7.0 ``` ```shell -$ python -m monai.bundle run save_jpg --config_file configs/inference.json --prompt "Cardiomegaly" --guidance_scale 7.0 +$ python -m monai.bundle run --config_file configs/inference.json --prompt "Cardiomegaly" --guidance_scale 7.0 ``` ## Using a new version of the model @@ -58,7 +58,7 @@ to avoid the function load_old_state_dict being called instead of load_state_dic required to load the checkpoint from the original GenerativeModels repository. ```shell -$ python -m monai.bundle run save_jpg --config_file configs/inference.json --prompt "Pleural effusion." --guidance_scale 7.0 --load_old 0 +$ python -m monai.bundle run --config_file configs/inference.json --prompt "Pleural effusion." --guidance_scale 7.0 --load_old 0 ``` ## References From 4ec50d2ab0c92bd9b9e83d53ed869696cdf5c12d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 09:49:24 +0000 Subject: [PATCH 05/33] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .../configs/metadata.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json b/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json index 5c9f6596..c257053f 100644 --- a/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json +++ b/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json @@ -25,7 +25,8 @@ "format": "magnitude", "modality": "CXR", "num_channels": 3, - "spatial_shape": [77, + "spatial_shape": [ + 77, 64, 64 ], From 13da7b1d70b5497738730633b5f4a256a1151112 Mon Sep 17 00:00:00 2001 From: Virginia Date: Tue, 17 Dec 2024 08:44:26 +0000 Subject: [PATCH 06/33] Added hash values and types to large_files.yml. For metadata, adjusted the versions, setting current to Initial Release. I also removed nibabel from the optional package requirements as this CXR produces JPG and does not deal with nifti files. --- .../configs/metadata.json | 11 +++++------ .../large_files.yml | 8 ++++---- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json b/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json index 5c9f6596..28b274cf 100644 --- a/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json +++ b/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json @@ -2,14 +2,13 @@ "schema": "https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/meta_schema_20220324.json", "version": "1.0.0", "changelog": { - "0.2": "Flipped images fixed" + "1.0.0": "Initial release" }, - "monai_version": "1.1.0", - "pytorch_version": "1.13.0", - "numpy_version": "1.22.4", + "monai_version": "1.4.0", + "pytorch_version": "2.5.1", + "numpy_version": "1.26.4", "optional_packages_version": { - "nibabel": "4.0.1", - "transformers": "4.26.1" + "transformers": "4.46.3" }, "task": "Chest X-ray image synthesis", "description": "A generative model for creating high-resolution chest X-ray based on MIMIC dataset", diff --git a/models/cxr_image_synthesis_latent_diffusion_model/large_files.yml b/models/cxr_image_synthesis_latent_diffusion_model/large_files.yml index 3198186b..673824cb 100644 --- a/models/cxr_image_synthesis_latent_diffusion_model/large_files.yml +++ b/models/cxr_image_synthesis_latent_diffusion_model/large_files.yml @@ -1,9 +1,9 @@ large_files: - path: "models/autoencoder.pth" url: "https://drive.google.com/uc?export=download&id=1paDN1m-Q_Oy8d_BanPkRTi3RlNB_Sv_h" - hash_val: "" - hash_type: "" + hash_val: "7f579cb789597db7bb5de1488f54bc6c" + hash_type: "md5" - path: "models/diffusion_model.pth" url: "https://drive.google.com/uc?export=download&id=1CjcmiPu5_QWr-f7wDJsXrCCcVeczneGT" - hash_val: "" - hash_type: "" + hash_val: "c3fd4c8e38cd1d7250a8903cca935823" + hash_type: "md5" From b856c1500adcfe8b3bdeac2fe2906fc2928ad735 Mon Sep 17 00:00:00 2001 From: virginia Date: Sun, 12 Jan 2025 14:39:47 +0000 Subject: [PATCH 07/33] Initial commit of mednist-ddpm --- models/mednist_ddpm/configs/infer.yaml | 38 +++ models/mednist_ddpm/configs/logging.conf | 21 ++ models/mednist_ddpm/configs/metadata.json | 58 ++++ models/mednist_ddpm/configs/train.yaml | 157 ++++++++++ .../mednist_ddpm/configs/train_multigpu.yaml | 30 ++ .../docs/2d_ddpm_bundle_tutorial.ipynb | 295 ++++++++++++++++++ models/mednist_ddpm/docs/README.md | 9 + models/mednist_ddpm/docs/sub_train.sh | 34 ++ .../mednist_ddpm/docs/sub_train_multigpu.sh | 36 +++ models/mednist_ddpm/scripts/__init__.py | 12 + 10 files changed, 690 insertions(+) create mode 100644 models/mednist_ddpm/configs/infer.yaml create mode 100644 models/mednist_ddpm/configs/logging.conf create mode 100644 models/mednist_ddpm/configs/metadata.json create mode 100644 models/mednist_ddpm/configs/train.yaml create mode 100644 models/mednist_ddpm/configs/train_multigpu.yaml create mode 100644 models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb create mode 100644 models/mednist_ddpm/docs/README.md create mode 100755 models/mednist_ddpm/docs/sub_train.sh create mode 100644 models/mednist_ddpm/docs/sub_train_multigpu.sh create mode 100644 models/mednist_ddpm/scripts/__init__.py diff --git a/models/mednist_ddpm/configs/infer.yaml b/models/mednist_ddpm/configs/infer.yaml new file mode 100644 index 00000000..46297e18 --- /dev/null +++ b/models/mednist_ddpm/configs/infer.yaml @@ -0,0 +1,38 @@ +# This defines an inference script for generating a random image to a Pytorch file + +batch_size: 1 +num_workers: 0 + +noise: $torch.rand(1,1,@image_dim,@image_dim) # create a random image every time this program is run + +out_file: "" # where to save the tensor to + +# using a lambda this defines a simple sampling function used below +sample: '$lambda x: @inferer.sample(input_noise=x, diffusion_model=@network, scheduler=@scheduler)' + +load_state: '$@network.load_state_dict(torch.load(@ckpt_path))' # command to load the saved model weights + +save_trans: + _target_: Compose + transforms: + - _target_: ScaleIntensity + minv: 0.0 + maxv: 255.0 + - _target_: ToTensor + track_meta: false + - _target_: SaveImage + output_ext: "jpg" + resample: false + output_dtype: '$torch.uint8' + separate_folder: false + output_postfix: '@out_file' + +# program to load the model weights, run `sample`, and store results to `out_file` +testing: +- '@load_state' +- '$torch.save(@sample(@noise.to(@device)), @out_file)' + +#alternative version which saves to a jpg file +testing_jpg: +- '@load_state' +- '$@save_trans(@sample(@noise.to(@device))[0])' diff --git a/models/mednist_ddpm/configs/logging.conf b/models/mednist_ddpm/configs/logging.conf new file mode 100644 index 00000000..91c1a21c --- /dev/null +++ b/models/mednist_ddpm/configs/logging.conf @@ -0,0 +1,21 @@ +[loggers] +keys=root + +[handlers] +keys=consoleHandler + +[formatters] +keys=fullFormatter + +[logger_root] +level=INFO +handlers=consoleHandler + +[handler_consoleHandler] +class=StreamHandler +level=INFO +formatter=fullFormatter +args=(sys.stdout,) + +[formatter_fullFormatter] +format=%(asctime)s - %(name)s - %(levelname)s - %(message)s diff --git a/models/mednist_ddpm/configs/metadata.json b/models/mednist_ddpm/configs/metadata.json new file mode 100644 index 00000000..7fb2df99 --- /dev/null +++ b/models/mednist_ddpm/configs/metadata.json @@ -0,0 +1,58 @@ +{ + "schema": "https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/meta_schema_20220729.json", + "version": "0.1.0", + "changelog": { + "0.1.0": "Initial version" + }, + "monai_version": "1.0.0", + "pytorch_version": "1.10.2", + "numpy_version": "1.21.2", + "task": "MedNIST Hand Generation", + "description": "", + "authors": "Walter Hugo Lopez Pinaya, Mark Graham, and Eric Kerfoot", + "copyright": "Copyright (c) KCL", + "references": [], + "intended_use": "This is suitable for research purposes only", + "image_classes": "Single channel magnitude data", + "data_source": "MedNIST", + "network_data_format": { + "inputs": { + "image": { + "type": "image", + "format": "magnitude", + "modality": "xray", + "num_channels": 1, + "spatial_shape": [ + 1, + 64, + 64 + ], + "dtype": "float32", + "value_range": [], + "is_patch_data": false, + "channel_def": { + "0": "image" + } + } + }, + "outputs": { + "pred": { + "type": "image", + "format": "magnitude", + "modality": "xray", + "num_channels": 1, + "spatial_shape": [ + 1, + 64, + 64 + ], + "dtype": "float32", + "value_range": [], + "is_patch_data": false, + "channel_def": { + "0": "image" + } + } + } + } +} diff --git a/models/mednist_ddpm/configs/train.yaml b/models/mednist_ddpm/configs/train.yaml new file mode 100644 index 00000000..ded0fe31 --- /dev/null +++ b/models/mednist_ddpm/configs/train.yaml @@ -0,0 +1,157 @@ +# This defines the training script for the network + +# choose a new directory for every run +output_dir: $datetime.datetime.now().strftime('./results/output_%y%m%d_%H%M%S') +dataset_dir: ./data + +train_data: + _target_ : MedNISTDataset + root_dir: '@dataset_dir' + section: training + download: true + progress: false + seed: 0 + +val_data: + _target_ : MedNISTDataset + root_dir: '@dataset_dir' + section: validation + download: true + progress: false + seed: 0 + +train_datalist: '$[{"image": item["image"]} for item in @train_data.data if item["class_name"] == "Hand"]' +val_datalist: '$[{"image": item["image"]} for item in @val_data.data if item["class_name"] == "Hand"]' + +batch_size: 8 +num_substeps: 1 +num_workers: 4 +use_thread_workers: false + +lr: 0.000025 +rand_prob: 0.5 +num_epochs: 75 +val_interval: 5 +save_interval: 5 + +train_transforms: +- _target_: RandAffined + keys: '@image' + rotate_range: + - ['$-np.pi / 36', '$np.pi / 36'] + - ['$-np.pi / 36', '$np.pi / 36'] + translate_range: + - [-1, 1] + - [-1, 1] + scale_range: + - [-0.05, 0.05] + - [-0.05, 0.05] + spatial_size: [64, 64] + padding_mode: "zeros" + prob: '@rand_prob' + +train_ds: + _target_: Dataset + data: $@train_datalist + transform: + _target_: Compose + transforms: '$@base_transforms + @train_transforms' + +train_loader: + _target_: ThreadDataLoader + dataset: '@train_ds' + batch_size: '@batch_size' + repeats: '@num_substeps' + num_workers: '@num_workers' + use_thread_workers: '@use_thread_workers' + persistent_workers: '$@num_workers > 0' + shuffle: true + +val_ds: + _target_: Dataset + data: $@val_datalist + transform: + _target_: Compose + transforms: '@base_transforms' + +val_loader: + _target_: DataLoader + dataset: '@val_ds' + batch_size: '@batch_size' + num_workers: '@num_workers' + persistent_workers: '$@num_workers > 0' + shuffle: false + +lossfn: + _target_: torch.nn.MSELoss + +optimizer: + _target_: torch.optim.Adam + params: $@network.parameters() + lr: '@lr' + +prepare_batch: + _target_: monai.engines.utils.DiffusionPrepareBatch + num_train_timesteps: '@num_train_timesteps' + +val_handlers: +- _target_: StatsHandler + name: train_log + output_transform: '$lambda x: None' + _disabled_: '@is_not_rank0' + +evaluator: + _target_: SupervisedEvaluator + device: '@device' + val_data_loader: '@val_loader' + network: '@network' + amp: '@use_amp' + inferer: '@inferer' + prepare_batch: '@prepare_batch' + key_val_metric: + val_mean_abs_error: + _target_: MeanAbsoluteError + output_transform: $monai.handlers.from_engine([@pred, @label]) + metric_cmp_fn: '$scripts.inv_metric_cmp_fn' + val_handlers: '$list(filter(bool, @val_handlers))' + +handlers: +- _target_: CheckpointLoader + _disabled_: $not os.path.exists(@ckpt_path) + load_path: '@ckpt_path' + load_dict: + model: '@network' +- _target_: ValidationHandler + validator: '@evaluator' + epoch_level: true + interval: '@val_interval' +- _target_: CheckpointSaver + save_dir: '@output_dir' + save_dict: + model: '@network' + save_interval: '@save_interval' + save_final: true + epoch_level: true + _disabled_: '@is_not_rank0' + +trainer: + _target_: SupervisedTrainer + max_epochs: '@num_epochs' + device: '@device' + train_data_loader: '@train_loader' + network: '@network' + loss_function: '@lossfn' + optimizer: '@optimizer' + inferer: '@inferer' + prepare_batch: '@prepare_batch' + key_train_metric: + train_acc: + _target_: MeanSquaredError + output_transform: $monai.handlers.from_engine([@pred, @label]) + metric_cmp_fn: '$scripts.inv_metric_cmp_fn' + train_handlers: '$list(filter(bool, @handlers))' + amp: '@use_amp' + +training: +- '$monai.utils.set_determinism(0)' +- '$@trainer.run()' diff --git a/models/mednist_ddpm/configs/train_multigpu.yaml b/models/mednist_ddpm/configs/train_multigpu.yaml new file mode 100644 index 00000000..51f5acf4 --- /dev/null +++ b/models/mednist_ddpm/configs/train_multigpu.yaml @@ -0,0 +1,30 @@ +# This can be mixed in with the training script to enable multi-GPU training + +network: + _target_: torch.nn.parallel.DistributedDataParallel + module: $@network_def.to(@device) + device_ids: ['@device'] + find_unused_parameters: true + +tsampler: + _target_: DistributedSampler + dataset: '@train_ds' + even_divisible: true + shuffle: true +train_loader#sampler: '@tsampler' +train_loader#shuffle: false + +vsampler: + _target_: DistributedSampler + dataset: '@val_ds' + even_divisible: false + shuffle: false +val_loader#sampler: '@vsampler' + +training: +- $import torch.distributed as dist +- $dist.init_process_group(backend='nccl') +- $torch.cuda.set_device(@device) +- $monai.utils.set_determinism(seed=123), +- $@trainer.run() +- $dist.destroy_process_group() diff --git a/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb b/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb new file mode 100644 index 00000000..183d7d76 --- /dev/null +++ b/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb @@ -0,0 +1,295 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c54f5831-58eb-4f9e-bb8a-2c2a6536a658", + "metadata": {}, + "source": [ + "# Denoising Diffusion Probabilistic Models with MedNIST Dataset Bundle \n", + "\n", + "This notebook discusses and uses the MONAI bundle it's included in for generating images from the MedNIST dataset using diffusion models. This is based off the 2d_ddpm_tutorial_ignite.ipynb notebook with a few changes.\n", + "\n", + "The bundle defines training and inference scripts whose use will be described here along with visualisations. The assumption with this notebook is that it's run within the bundle's `docs` directory and that the environment it runs in has `MONAI` and `GenerativeModels` installed. The command lines given are known to work in `bash` however may be problematic in Windows.\n", + "\n", + "First thing to do is import libraries and verify MONAI is present:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "6d32f8a4-2bfe-4cfb-9abd-033b0c6080e6", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MONAI version: 1.4.0\n", + "Numpy version: 1.26.4\n", + "Pytorch version: 2.5.1\n", + "MONAI flags: HAS_EXT = False, USE_COMPILED = False, USE_META_DICT = False\n", + "MONAI rev id: 46a5272196a6c2590ca2589029eed8e4d56ff008\n", + "MONAI __file__: /Users//PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/monai/__init__.py\n", + "\n", + "Optional dependencies:\n", + "Pytorch Ignite version: 0.5.1\n", + "ITK version: NOT INSTALLED or UNKNOWN VERSION.\n", + "Nibabel version: NOT INSTALLED or UNKNOWN VERSION.\n", + "scikit-image version: NOT INSTALLED or UNKNOWN VERSION.\n", + "scipy version: NOT INSTALLED or UNKNOWN VERSION.\n", + "Pillow version: 11.1.0\n", + "Tensorboard version: NOT INSTALLED or UNKNOWN VERSION.\n", + "gdown version: NOT INSTALLED or UNKNOWN VERSION.\n", + "TorchVision version: NOT INSTALLED or UNKNOWN VERSION.\n", + "tqdm version: NOT INSTALLED or UNKNOWN VERSION.\n", + "lmdb version: NOT INSTALLED or UNKNOWN VERSION.\n", + "psutil version: 6.1.1\n", + "pandas version: NOT INSTALLED or UNKNOWN VERSION.\n", + "einops version: 0.8.0\n", + "transformers version: NOT INSTALLED or UNKNOWN VERSION.\n", + "mlflow version: NOT INSTALLED or UNKNOWN VERSION.\n", + "pynrrd version: NOT INSTALLED or UNKNOWN VERSION.\n", + "clearml version: NOT INSTALLED or UNKNOWN VERSION.\n", + "\n", + "For details about installing the optional dependencies, please visit:\n", + " https://docs.monai.io/en/latest/installation.html#installing-the-recommended-dependencies\n", + "\n" + ] + } + ], + "source": [ + "import os\n", + "import shutil\n", + "import tempfile\n", + "from pathlib import Path\n", + "\n", + "import torch\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import monai\n", + "from monai.bundle import ConfigParser\n", + "\n", + "# path to the bundle directory, this assumes you're running the notebook in its directory\n", + "bundle_root = str(Path(\".\").absolute().parent)\n", + "\n", + "monai.config.print_config()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d6fc6592-cb51-4527-97ee-add5d1cdbeb4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/var/folders/63/rn7xd75s2fbf1mytzldny6sc0000gp/T/tmpm5hzi_iw\n" + ] + } + ], + "source": [ + "directory = os.environ.get(\"MONAI_DATA_DIRECTORY\")\n", + "dataset_dir = tempfile.mkdtemp() if directory is None else directory\n", + "print(dataset_dir)" + ] + }, + { + "cell_type": "markdown", + "id": "678d2e51-dc2d-4ad9-a4c0-14a6f900398b", + "metadata": {}, + "source": [ + "A bundle can be run on the command line using the Fire library or by parsing the configuration manually then getting parsed content objects. The following is the command to train the network for the default number of epochs. It will define values in the config files which need to be set for a particular run, such as the dataset directory created above, and setting the PYTHONPATH variable. The configuration for this bundle is split into 4 yaml files, one having common definitions for training and inference, one to enable multi-GPU training, and one each for training and inference. Their combinations determine what your final configuration is, in this case the common and train files produce a training script. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d52a4ae9-0d6d-4bc4-a5b5-f84470711f2d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", + " warnings.warn(\n", + "2025-01-12 14:34:01,091 - INFO - --- input summary of monai.bundle.scripts.run ---\n", + "2025-01-12 14:34:01,091 - INFO - > config_file: ('/Users/virginia/PycharmProjects/model-zoo/models/mednist_ddpm/configs/common.yaml',\n", + " '/Users/virginia/PycharmProjects/model-zoo/models/mednist_ddpm/configs/train.yaml')\n", + "2025-01-12 14:34:01,091 - INFO - > meta_file: '/Users/virginia/PycharmProjects/model-zoo/models/mednist_ddpm/configs/metadata.json'\n", + "2025-01-12 14:34:01,091 - INFO - > logging_file: '/Users/virginia/PycharmProjects/model-zoo/models/mednist_ddpm/configs/logging.conf'\n", + "2025-01-12 14:34:01,091 - INFO - > run_id: 'training'\n", + "2025-01-12 14:34:01,091 - INFO - > bundle_root: '/Users/virginia/PycharmProjects/model-zoo/models/mednist_ddpm'\n", + "2025-01-12 14:34:01,091 - INFO - > dataset_dir: '/var/folders/63/rn7xd75s2fbf1mytzldny6sc0000gp/T/tmpm5hzi_iw'\n", + "2025-01-12 14:34:01,091 - INFO - ---\n", + "\n", + "\n", + "2025-01-12 14:34:01,091 - INFO - Setting logging properties based on config: /Users/virginia/PycharmProjects/model-zoo/models/mednist_ddpm/configs/logging.conf.\n", + "2025-01-12 14:34:25,955 - INFO - Downloaded: /var/folders/63/rn7xd75s2fbf1mytzldny6sc0000gp/T/tmpm5hzi_iw/MedNIST.tar.gz\n", + "2025-01-12 14:34:26,066 - INFO - Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n", + "2025-01-12 14:34:26,067 - INFO - Writing into directory: /var/folders/63/rn7xd75s2fbf1mytzldny6sc0000gp/T/tmpm5hzi_iw.\n", + "2025-01-12 14:34:44,890 - INFO - Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n", + "2025-01-12 14:34:44,890 - INFO - File exists: /var/folders/63/rn7xd75s2fbf1mytzldny6sc0000gp/T/tmpm5hzi_iw/MedNIST.tar.gz, skipped downloading.\n", + "2025-01-12 14:34:44,890 - INFO - Non-empty folder exists in /var/folders/63/rn7xd75s2fbf1mytzldny6sc0000gp/T/tmpm5hzi_iw/MedNIST, skipped extracting.\n", + "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/monai/engines/trainer.py:54: FutureWarning: `torch.cuda.amp.GradScaler(args...)` is deprecated. Please use `torch.amp.GradScaler('cuda', args...)` instead.\n", + " self.scaler = torch.cuda.amp.GradScaler() if self.amp else None\n", + "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/torch/amp/grad_scaler.py:132: UserWarning: torch.cuda.amp.GradScaler is enabled, but CUDA is not available. Disabling.\n", + " warnings.warn(\n", + "2025-01-12 14:34:46,515 - ignite.engine.engine.SupervisedTrainer - INFO - Engine run resuming from iteration 0, epoch 0 until 75 epochs\n", + "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", + " warnings.warn(\n", + "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", + " warnings.warn(\n", + "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", + " warnings.warn(\n", + "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", + " warnings.warn(\n", + "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/monai/engines/trainer.py:257: FutureWarning: `torch.cuda.amp.autocast(args...)` is deprecated. Please use `torch.amp.autocast('cuda', args...)` instead.\n", + " with torch.cuda.amp.autocast(**engine.amp_kwargs):\n", + "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/torch/amp/autocast_mode.py:266: UserWarning: User provided device_type of 'cuda', but CUDA is not available. Disabling\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "# multiple config files need to be specified this way with '' quotes, variable used in command line must be in \"\" quotes\n", + "configs=f\"'{bundle_root}/configs/common.yaml', '{bundle_root}/configs/train.yaml'\"\n", + "\n", + "!PYTHONPATH={bundle_root} python -m monai.bundle run training \\\n", + " --meta_file {bundle_root}/configs/metadata.json \\\n", + " --config_file \"{configs}\" \\\n", + " --logging_file {bundle_root}/configs/logging.conf \\\n", + " --bundle_root {bundle_root} \\\n", + " --dataset_dir {dataset_dir}" + ] + }, + { + "cell_type": "markdown", + "id": "5030732c-deb5-448a-b575-385bda0fa308", + "metadata": {}, + "source": [ + "The test inference script can then be invoked as such to produce an output tensor saved to the given file with a randomly generated image. The `ckpt_path` value should point to the final checkpoint file created during the above training run, which will be in a subdirectory of `./result`. The training script's default behaviour is to create a new timestamped subdirectory in `./result` for every new run, this can be explicitly set by providing a `output_dir` value on the command line." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f53b40ee-11b7-4352-82ee-0dd7113220cf", + "metadata": {}, + "outputs": [], + "source": [ + "configs=f\"'{bundle_root}/configs/common.yaml', '{bundle_root}/configs/infer.yaml'\"\n", + "\n", + "!PYTHONPATH={bundle_root} python -m monai.bundle run testing \\\n", + " --meta_file {bundle_root}/configs/metadata.json \\\n", + " --config_file \"{configs}\" \\\n", + " --ckpt_path ./results/output_230215_174009/model_final_iteration=75000.pt \\\n", + " --bundle_root {bundle_root} \\\n", + " --out_file test.pt\n", + "\n", + "test = torch.load(\"test.pt\", map_location=\"cpu\")\n", + "\n", + "plt.imshow(test[0, 0], vmin=0, vmax=1, cmap=\"gray\"); plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cf8438b3-4c7d-48c4-bb41-ed7def73753f", + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "\n", + "sys.path.append(bundle_root) # make sure we load the script files we need\n", + "\n", + "# configure the parser from the bundle's information\n", + "cp = ConfigParser()\n", + "cp.read_meta(f\"{bundle_root}/configs/metadata.json\")\n", + "cp.read_config([f\"{bundle_root}/configs/common.yaml\", f\"{bundle_root}/configs/infer.yaml\"])\n", + "cp[\"bundle_root\"] = bundle_root\n", + "cp[\"ckpt_path\"] = \"./results/output_230215_174009/model_final_iteration=75000.pt\"\n", + "\n", + "cp.get_parsed_content(\"load_state\") # load the saved state from the checkpoint just be resolving this value\n", + "\n", + "device = cp.get_parsed_content(\"device\") # device used by the bundle\n", + "sample = cp.get_parsed_content(\"sample\") # test sampling function\n", + "\n", + "image_dim = cp[\"image_dim\"] # get the stored dimension value, no need to resolve anything\n", + "\n", + "noise = torch.rand(1, 1, image_dim, image_dim).to(device) # or cp.get_parsed_content(\"noise\")\n", + "\n", + "test = sample(noise)\n", + "\n", + "plt.imshow(test[0, 0].cpu(), vmin=0, vmax=1, cmap=\"gray\")" + ] + }, + { + "cell_type": "markdown", + "id": "2feab4e5-2745-4d35-9eec-a2bb8340cf51", + "metadata": {}, + "source": [ + "Multi-GPU can be enabled by including the `train_multigpu.yaml` configuration file:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "173cda1c-ac90-410f-b34d-b6cbb0044c7a", + "metadata": {}, + "outputs": [], + "source": [ + "configs=f\"'{bundle_root}/configs/common.yaml', '{bundle_root}/configs/train.yaml', '{bundle_root}/configs/train_multigpu.yaml'\"\n", + "\n", + "!PYTHONPATH={bundle_root} torchrun --standalone --nnodes=1 --nproc_per_node=2 -m monai.bundle run training \\\n", + " --meta_file {bundle_root}/configs/metadata.json \\\n", + " --config_file \"{configs}\" \\\n", + " --logging_file {bundle_root}/configs/logging.conf \\\n", + " --bundle_root {bundle_root} \\\n", + " --dataset_dir {dataset_dir}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cb719023-8250-43c4-ab10-911829332498", + "metadata": {}, + "outputs": [], + "source": [ + "if directory is None:\n", + " shutil.rmtree(dataset_dir)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/models/mednist_ddpm/docs/README.md b/models/mednist_ddpm/docs/README.md new file mode 100644 index 00000000..6483aff5 --- /dev/null +++ b/models/mednist_ddpm/docs/README.md @@ -0,0 +1,9 @@ + +# MedNIST DDPM Example Bundle + +This implements roughly equivalent code to the "Denoising Diffusion Probabilistic Models with MedNIST Dataset" example notebook. This includes scripts for training with single or multiple GPUs and a visualisation notebook. + +The files included here demonstrate how to use the bundle: + * [2d_ddpm_bundle_tutorial.ipynb](./2d_ddpm_bundle_tutorial.ipynb) - demonstrates command line and in-code invocation of the bundle's training and inference scripts + * [sub_train.sh](sub_train.sh) - SLURM submission script example for training + * [sub_train_multigpu.sh](sub_train_multigpu.sh) - SLURM submission script example for training with multiple GPUs diff --git a/models/mednist_ddpm/docs/sub_train.sh b/models/mednist_ddpm/docs/sub_train.sh new file mode 100755 index 00000000..237b16f5 --- /dev/null +++ b/models/mednist_ddpm/docs/sub_train.sh @@ -0,0 +1,34 @@ +#! /bin/bash +#SBATCH --nodes=1 +#SBATCH -J mednist_train +#SBATCH -c 4 +#SBATCH --gres=gpu:1 +#SBATCH --time=2:00:00 +#SBATCH -p small + +set -v + +# change this if run submitted from a different directory +export BUNDLE="$(pwd)/.." + +# have to set PYTHONPATH to find MONAI and GenerativeModels as well as the bundle's script directory +export PYTHONPATH="$HOME/MONAI:$HOME/GenerativeModels:$BUNDLE" + +# change this to load a checkpoint instead of started from scratch +CKPT=none + +CONFIG="'$BUNDLE/configs/common.yaml', '$BUNDLE/configs/train.yaml'" + +# change this to point to where MedNIST is located +DATASET="$(pwd)" + +# it's useful to include the configuration in the log file +cat "$BUNDLE/configs/common.yaml" +cat "$BUNDLE/configs/train.yaml" + +python -m monai.bundle run training \ + --meta_file "$BUNDLE/configs/metadata.json" \ + --config_file "$CONFIG" \ + --logging_file "$BUNDLE/configs/logging.conf" \ + --bundle_root "$BUNDLE" \ + --dataset_dir "$DATASET" diff --git a/models/mednist_ddpm/docs/sub_train_multigpu.sh b/models/mednist_ddpm/docs/sub_train_multigpu.sh new file mode 100644 index 00000000..4d5f6af0 --- /dev/null +++ b/models/mednist_ddpm/docs/sub_train_multigpu.sh @@ -0,0 +1,36 @@ +#! /bin/bash +#SBATCH --nodes=1 +#SBATCH -J mednist_train +#SBATCH -c 4 +#SBATCH --gres=gpu:2 +#SBATCH --time=2:00:00 +#SBATCH -p big + +set -v + +# change this if run submitted from a different directory +export BUNDLE="$(pwd)/.." + +# have to set PYTHONPATH to find MONAI and GenerativeModels as well as the bundle's script directory +export PYTHONPATH="$HOME/MONAI:$HOME/GenerativeModels:$BUNDLE" + +# change this to load a checkpoint instead of started from scratch +CKPT=none + +CONFIG="'$BUNDLE/configs/common.yaml', '$BUNDLE/configs/train.yaml', '$BUNDLE/configs/train_multigpu.yaml'" + +# change this to point to where MedNIST is located +DATASET="$(pwd)" + +# it's useful to include the configuration in the log file +cat "$BUNDLE/configs/common.yaml" +cat "$BUNDLE/configs/train.yaml" +cat "$BUNDLE/configs/train_multigpu.yaml" + +# remember to change arguments to match how many nodes and GPUs you have +torchrun --standalone --nnodes=1 --nproc_per_node=2 -m monai.bundle run training \ + --meta_file "$BUNDLE/configs/metadata.json" \ + --config_file "$CONFIG" \ + --logging_file "$BUNDLE/configs/logging.conf" \ + --bundle_root "$BUNDLE" \ + --dataset_dir "$DATASET" diff --git a/models/mednist_ddpm/scripts/__init__.py b/models/mednist_ddpm/scripts/__init__.py new file mode 100644 index 00000000..c44e4a34 --- /dev/null +++ b/models/mednist_ddpm/scripts/__init__.py @@ -0,0 +1,12 @@ +from __future__ import annotations + + +def inv_metric_cmp_fn(current_metric: float, prev_best: float) -> bool: + """ + This inverts comparison for those metrics which reduce like loss values, such that the lower one is better. + + Args: + current_metric: metric value of current round computation. + prev_best: the best metric value of previous rounds to compare with. + """ + return current_metric < prev_best From efa9d0a7f49495ff37ebe9583b3bf857ed6ecb00 Mon Sep 17 00:00:00 2001 From: virginia Date: Mon, 13 Jan 2025 08:27:07 +0000 Subject: [PATCH 08/33] mednist_ddpm commit. I have cleared the absolute paths to my personal directory. --- models/mednist_ddpm/configs/infer.yaml | 38 --- models/mednist_ddpm/configs/logging.conf | 21 -- models/mednist_ddpm/configs/metadata.json | 58 ---- models/mednist_ddpm/configs/train.yaml | 157 ---------- .../mednist_ddpm/configs/train_multigpu.yaml | 30 -- .../docs/2d_ddpm_bundle_tutorial.ipynb | 295 ------------------ models/mednist_ddpm/docs/README.md | 9 - models/mednist_ddpm/docs/sub_train.sh | 34 -- .../mednist_ddpm/docs/sub_train_multigpu.sh | 36 --- models/mednist_ddpm/scripts/__init__.py | 12 - 10 files changed, 690 deletions(-) delete mode 100644 models/mednist_ddpm/configs/infer.yaml delete mode 100644 models/mednist_ddpm/configs/logging.conf delete mode 100644 models/mednist_ddpm/configs/metadata.json delete mode 100644 models/mednist_ddpm/configs/train.yaml delete mode 100644 models/mednist_ddpm/configs/train_multigpu.yaml delete mode 100644 models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb delete mode 100644 models/mednist_ddpm/docs/README.md delete mode 100755 models/mednist_ddpm/docs/sub_train.sh delete mode 100644 models/mednist_ddpm/docs/sub_train_multigpu.sh delete mode 100644 models/mednist_ddpm/scripts/__init__.py diff --git a/models/mednist_ddpm/configs/infer.yaml b/models/mednist_ddpm/configs/infer.yaml deleted file mode 100644 index 46297e18..00000000 --- a/models/mednist_ddpm/configs/infer.yaml +++ /dev/null @@ -1,38 +0,0 @@ -# This defines an inference script for generating a random image to a Pytorch file - -batch_size: 1 -num_workers: 0 - -noise: $torch.rand(1,1,@image_dim,@image_dim) # create a random image every time this program is run - -out_file: "" # where to save the tensor to - -# using a lambda this defines a simple sampling function used below -sample: '$lambda x: @inferer.sample(input_noise=x, diffusion_model=@network, scheduler=@scheduler)' - -load_state: '$@network.load_state_dict(torch.load(@ckpt_path))' # command to load the saved model weights - -save_trans: - _target_: Compose - transforms: - - _target_: ScaleIntensity - minv: 0.0 - maxv: 255.0 - - _target_: ToTensor - track_meta: false - - _target_: SaveImage - output_ext: "jpg" - resample: false - output_dtype: '$torch.uint8' - separate_folder: false - output_postfix: '@out_file' - -# program to load the model weights, run `sample`, and store results to `out_file` -testing: -- '@load_state' -- '$torch.save(@sample(@noise.to(@device)), @out_file)' - -#alternative version which saves to a jpg file -testing_jpg: -- '@load_state' -- '$@save_trans(@sample(@noise.to(@device))[0])' diff --git a/models/mednist_ddpm/configs/logging.conf b/models/mednist_ddpm/configs/logging.conf deleted file mode 100644 index 91c1a21c..00000000 --- a/models/mednist_ddpm/configs/logging.conf +++ /dev/null @@ -1,21 +0,0 @@ -[loggers] -keys=root - -[handlers] -keys=consoleHandler - -[formatters] -keys=fullFormatter - -[logger_root] -level=INFO -handlers=consoleHandler - -[handler_consoleHandler] -class=StreamHandler -level=INFO -formatter=fullFormatter -args=(sys.stdout,) - -[formatter_fullFormatter] -format=%(asctime)s - %(name)s - %(levelname)s - %(message)s diff --git a/models/mednist_ddpm/configs/metadata.json b/models/mednist_ddpm/configs/metadata.json deleted file mode 100644 index 7fb2df99..00000000 --- a/models/mednist_ddpm/configs/metadata.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "schema": "https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/meta_schema_20220729.json", - "version": "0.1.0", - "changelog": { - "0.1.0": "Initial version" - }, - "monai_version": "1.0.0", - "pytorch_version": "1.10.2", - "numpy_version": "1.21.2", - "task": "MedNIST Hand Generation", - "description": "", - "authors": "Walter Hugo Lopez Pinaya, Mark Graham, and Eric Kerfoot", - "copyright": "Copyright (c) KCL", - "references": [], - "intended_use": "This is suitable for research purposes only", - "image_classes": "Single channel magnitude data", - "data_source": "MedNIST", - "network_data_format": { - "inputs": { - "image": { - "type": "image", - "format": "magnitude", - "modality": "xray", - "num_channels": 1, - "spatial_shape": [ - 1, - 64, - 64 - ], - "dtype": "float32", - "value_range": [], - "is_patch_data": false, - "channel_def": { - "0": "image" - } - } - }, - "outputs": { - "pred": { - "type": "image", - "format": "magnitude", - "modality": "xray", - "num_channels": 1, - "spatial_shape": [ - 1, - 64, - 64 - ], - "dtype": "float32", - "value_range": [], - "is_patch_data": false, - "channel_def": { - "0": "image" - } - } - } - } -} diff --git a/models/mednist_ddpm/configs/train.yaml b/models/mednist_ddpm/configs/train.yaml deleted file mode 100644 index ded0fe31..00000000 --- a/models/mednist_ddpm/configs/train.yaml +++ /dev/null @@ -1,157 +0,0 @@ -# This defines the training script for the network - -# choose a new directory for every run -output_dir: $datetime.datetime.now().strftime('./results/output_%y%m%d_%H%M%S') -dataset_dir: ./data - -train_data: - _target_ : MedNISTDataset - root_dir: '@dataset_dir' - section: training - download: true - progress: false - seed: 0 - -val_data: - _target_ : MedNISTDataset - root_dir: '@dataset_dir' - section: validation - download: true - progress: false - seed: 0 - -train_datalist: '$[{"image": item["image"]} for item in @train_data.data if item["class_name"] == "Hand"]' -val_datalist: '$[{"image": item["image"]} for item in @val_data.data if item["class_name"] == "Hand"]' - -batch_size: 8 -num_substeps: 1 -num_workers: 4 -use_thread_workers: false - -lr: 0.000025 -rand_prob: 0.5 -num_epochs: 75 -val_interval: 5 -save_interval: 5 - -train_transforms: -- _target_: RandAffined - keys: '@image' - rotate_range: - - ['$-np.pi / 36', '$np.pi / 36'] - - ['$-np.pi / 36', '$np.pi / 36'] - translate_range: - - [-1, 1] - - [-1, 1] - scale_range: - - [-0.05, 0.05] - - [-0.05, 0.05] - spatial_size: [64, 64] - padding_mode: "zeros" - prob: '@rand_prob' - -train_ds: - _target_: Dataset - data: $@train_datalist - transform: - _target_: Compose - transforms: '$@base_transforms + @train_transforms' - -train_loader: - _target_: ThreadDataLoader - dataset: '@train_ds' - batch_size: '@batch_size' - repeats: '@num_substeps' - num_workers: '@num_workers' - use_thread_workers: '@use_thread_workers' - persistent_workers: '$@num_workers > 0' - shuffle: true - -val_ds: - _target_: Dataset - data: $@val_datalist - transform: - _target_: Compose - transforms: '@base_transforms' - -val_loader: - _target_: DataLoader - dataset: '@val_ds' - batch_size: '@batch_size' - num_workers: '@num_workers' - persistent_workers: '$@num_workers > 0' - shuffle: false - -lossfn: - _target_: torch.nn.MSELoss - -optimizer: - _target_: torch.optim.Adam - params: $@network.parameters() - lr: '@lr' - -prepare_batch: - _target_: monai.engines.utils.DiffusionPrepareBatch - num_train_timesteps: '@num_train_timesteps' - -val_handlers: -- _target_: StatsHandler - name: train_log - output_transform: '$lambda x: None' - _disabled_: '@is_not_rank0' - -evaluator: - _target_: SupervisedEvaluator - device: '@device' - val_data_loader: '@val_loader' - network: '@network' - amp: '@use_amp' - inferer: '@inferer' - prepare_batch: '@prepare_batch' - key_val_metric: - val_mean_abs_error: - _target_: MeanAbsoluteError - output_transform: $monai.handlers.from_engine([@pred, @label]) - metric_cmp_fn: '$scripts.inv_metric_cmp_fn' - val_handlers: '$list(filter(bool, @val_handlers))' - -handlers: -- _target_: CheckpointLoader - _disabled_: $not os.path.exists(@ckpt_path) - load_path: '@ckpt_path' - load_dict: - model: '@network' -- _target_: ValidationHandler - validator: '@evaluator' - epoch_level: true - interval: '@val_interval' -- _target_: CheckpointSaver - save_dir: '@output_dir' - save_dict: - model: '@network' - save_interval: '@save_interval' - save_final: true - epoch_level: true - _disabled_: '@is_not_rank0' - -trainer: - _target_: SupervisedTrainer - max_epochs: '@num_epochs' - device: '@device' - train_data_loader: '@train_loader' - network: '@network' - loss_function: '@lossfn' - optimizer: '@optimizer' - inferer: '@inferer' - prepare_batch: '@prepare_batch' - key_train_metric: - train_acc: - _target_: MeanSquaredError - output_transform: $monai.handlers.from_engine([@pred, @label]) - metric_cmp_fn: '$scripts.inv_metric_cmp_fn' - train_handlers: '$list(filter(bool, @handlers))' - amp: '@use_amp' - -training: -- '$monai.utils.set_determinism(0)' -- '$@trainer.run()' diff --git a/models/mednist_ddpm/configs/train_multigpu.yaml b/models/mednist_ddpm/configs/train_multigpu.yaml deleted file mode 100644 index 51f5acf4..00000000 --- a/models/mednist_ddpm/configs/train_multigpu.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This can be mixed in with the training script to enable multi-GPU training - -network: - _target_: torch.nn.parallel.DistributedDataParallel - module: $@network_def.to(@device) - device_ids: ['@device'] - find_unused_parameters: true - -tsampler: - _target_: DistributedSampler - dataset: '@train_ds' - even_divisible: true - shuffle: true -train_loader#sampler: '@tsampler' -train_loader#shuffle: false - -vsampler: - _target_: DistributedSampler - dataset: '@val_ds' - even_divisible: false - shuffle: false -val_loader#sampler: '@vsampler' - -training: -- $import torch.distributed as dist -- $dist.init_process_group(backend='nccl') -- $torch.cuda.set_device(@device) -- $monai.utils.set_determinism(seed=123), -- $@trainer.run() -- $dist.destroy_process_group() diff --git a/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb b/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb deleted file mode 100644 index 183d7d76..00000000 --- a/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb +++ /dev/null @@ -1,295 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "c54f5831-58eb-4f9e-bb8a-2c2a6536a658", - "metadata": {}, - "source": [ - "# Denoising Diffusion Probabilistic Models with MedNIST Dataset Bundle \n", - "\n", - "This notebook discusses and uses the MONAI bundle it's included in for generating images from the MedNIST dataset using diffusion models. This is based off the 2d_ddpm_tutorial_ignite.ipynb notebook with a few changes.\n", - "\n", - "The bundle defines training and inference scripts whose use will be described here along with visualisations. The assumption with this notebook is that it's run within the bundle's `docs` directory and that the environment it runs in has `MONAI` and `GenerativeModels` installed. The command lines given are known to work in `bash` however may be problematic in Windows.\n", - "\n", - "First thing to do is import libraries and verify MONAI is present:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "6d32f8a4-2bfe-4cfb-9abd-033b0c6080e6", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "MONAI version: 1.4.0\n", - "Numpy version: 1.26.4\n", - "Pytorch version: 2.5.1\n", - "MONAI flags: HAS_EXT = False, USE_COMPILED = False, USE_META_DICT = False\n", - "MONAI rev id: 46a5272196a6c2590ca2589029eed8e4d56ff008\n", - "MONAI __file__: /Users//PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/monai/__init__.py\n", - "\n", - "Optional dependencies:\n", - "Pytorch Ignite version: 0.5.1\n", - "ITK version: NOT INSTALLED or UNKNOWN VERSION.\n", - "Nibabel version: NOT INSTALLED or UNKNOWN VERSION.\n", - "scikit-image version: NOT INSTALLED or UNKNOWN VERSION.\n", - "scipy version: NOT INSTALLED or UNKNOWN VERSION.\n", - "Pillow version: 11.1.0\n", - "Tensorboard version: NOT INSTALLED or UNKNOWN VERSION.\n", - "gdown version: NOT INSTALLED or UNKNOWN VERSION.\n", - "TorchVision version: NOT INSTALLED or UNKNOWN VERSION.\n", - "tqdm version: NOT INSTALLED or UNKNOWN VERSION.\n", - "lmdb version: NOT INSTALLED or UNKNOWN VERSION.\n", - "psutil version: 6.1.1\n", - "pandas version: NOT INSTALLED or UNKNOWN VERSION.\n", - "einops version: 0.8.0\n", - "transformers version: NOT INSTALLED or UNKNOWN VERSION.\n", - "mlflow version: NOT INSTALLED or UNKNOWN VERSION.\n", - "pynrrd version: NOT INSTALLED or UNKNOWN VERSION.\n", - "clearml version: NOT INSTALLED or UNKNOWN VERSION.\n", - "\n", - "For details about installing the optional dependencies, please visit:\n", - " https://docs.monai.io/en/latest/installation.html#installing-the-recommended-dependencies\n", - "\n" - ] - } - ], - "source": [ - "import os\n", - "import shutil\n", - "import tempfile\n", - "from pathlib import Path\n", - "\n", - "import torch\n", - "\n", - "import matplotlib.pyplot as plt\n", - "import monai\n", - "from monai.bundle import ConfigParser\n", - "\n", - "# path to the bundle directory, this assumes you're running the notebook in its directory\n", - "bundle_root = str(Path(\".\").absolute().parent)\n", - "\n", - "monai.config.print_config()" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "d6fc6592-cb51-4527-97ee-add5d1cdbeb4", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/var/folders/63/rn7xd75s2fbf1mytzldny6sc0000gp/T/tmpm5hzi_iw\n" - ] - } - ], - "source": [ - "directory = os.environ.get(\"MONAI_DATA_DIRECTORY\")\n", - "dataset_dir = tempfile.mkdtemp() if directory is None else directory\n", - "print(dataset_dir)" - ] - }, - { - "cell_type": "markdown", - "id": "678d2e51-dc2d-4ad9-a4c0-14a6f900398b", - "metadata": {}, - "source": [ - "A bundle can be run on the command line using the Fire library or by parsing the configuration manually then getting parsed content objects. The following is the command to train the network for the default number of epochs. It will define values in the config files which need to be set for a particular run, such as the dataset directory created above, and setting the PYTHONPATH variable. The configuration for this bundle is split into 4 yaml files, one having common definitions for training and inference, one to enable multi-GPU training, and one each for training and inference. Their combinations determine what your final configuration is, in this case the common and train files produce a training script. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d52a4ae9-0d6d-4bc4-a5b5-f84470711f2d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", - " warnings.warn(\n", - "2025-01-12 14:34:01,091 - INFO - --- input summary of monai.bundle.scripts.run ---\n", - "2025-01-12 14:34:01,091 - INFO - > config_file: ('/Users/virginia/PycharmProjects/model-zoo/models/mednist_ddpm/configs/common.yaml',\n", - " '/Users/virginia/PycharmProjects/model-zoo/models/mednist_ddpm/configs/train.yaml')\n", - "2025-01-12 14:34:01,091 - INFO - > meta_file: '/Users/virginia/PycharmProjects/model-zoo/models/mednist_ddpm/configs/metadata.json'\n", - "2025-01-12 14:34:01,091 - INFO - > logging_file: '/Users/virginia/PycharmProjects/model-zoo/models/mednist_ddpm/configs/logging.conf'\n", - "2025-01-12 14:34:01,091 - INFO - > run_id: 'training'\n", - "2025-01-12 14:34:01,091 - INFO - > bundle_root: '/Users/virginia/PycharmProjects/model-zoo/models/mednist_ddpm'\n", - "2025-01-12 14:34:01,091 - INFO - > dataset_dir: '/var/folders/63/rn7xd75s2fbf1mytzldny6sc0000gp/T/tmpm5hzi_iw'\n", - "2025-01-12 14:34:01,091 - INFO - ---\n", - "\n", - "\n", - "2025-01-12 14:34:01,091 - INFO - Setting logging properties based on config: /Users/virginia/PycharmProjects/model-zoo/models/mednist_ddpm/configs/logging.conf.\n", - "2025-01-12 14:34:25,955 - INFO - Downloaded: /var/folders/63/rn7xd75s2fbf1mytzldny6sc0000gp/T/tmpm5hzi_iw/MedNIST.tar.gz\n", - "2025-01-12 14:34:26,066 - INFO - Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n", - "2025-01-12 14:34:26,067 - INFO - Writing into directory: /var/folders/63/rn7xd75s2fbf1mytzldny6sc0000gp/T/tmpm5hzi_iw.\n", - "2025-01-12 14:34:44,890 - INFO - Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n", - "2025-01-12 14:34:44,890 - INFO - File exists: /var/folders/63/rn7xd75s2fbf1mytzldny6sc0000gp/T/tmpm5hzi_iw/MedNIST.tar.gz, skipped downloading.\n", - "2025-01-12 14:34:44,890 - INFO - Non-empty folder exists in /var/folders/63/rn7xd75s2fbf1mytzldny6sc0000gp/T/tmpm5hzi_iw/MedNIST, skipped extracting.\n", - "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/monai/engines/trainer.py:54: FutureWarning: `torch.cuda.amp.GradScaler(args...)` is deprecated. Please use `torch.amp.GradScaler('cuda', args...)` instead.\n", - " self.scaler = torch.cuda.amp.GradScaler() if self.amp else None\n", - "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/torch/amp/grad_scaler.py:132: UserWarning: torch.cuda.amp.GradScaler is enabled, but CUDA is not available. Disabling.\n", - " warnings.warn(\n", - "2025-01-12 14:34:46,515 - ignite.engine.engine.SupervisedTrainer - INFO - Engine run resuming from iteration 0, epoch 0 until 75 epochs\n", - "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", - " warnings.warn(\n", - "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", - " warnings.warn(\n", - "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", - " warnings.warn(\n", - "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", - " warnings.warn(\n", - "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/monai/engines/trainer.py:257: FutureWarning: `torch.cuda.amp.autocast(args...)` is deprecated. Please use `torch.amp.autocast('cuda', args...)` instead.\n", - " with torch.cuda.amp.autocast(**engine.amp_kwargs):\n", - "/Users/virginia/PycharmProjects/model-zoo/.venv/lib/python3.9/site-packages/torch/amp/autocast_mode.py:266: UserWarning: User provided device_type of 'cuda', but CUDA is not available. Disabling\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "# multiple config files need to be specified this way with '' quotes, variable used in command line must be in \"\" quotes\n", - "configs=f\"'{bundle_root}/configs/common.yaml', '{bundle_root}/configs/train.yaml'\"\n", - "\n", - "!PYTHONPATH={bundle_root} python -m monai.bundle run training \\\n", - " --meta_file {bundle_root}/configs/metadata.json \\\n", - " --config_file \"{configs}\" \\\n", - " --logging_file {bundle_root}/configs/logging.conf \\\n", - " --bundle_root {bundle_root} \\\n", - " --dataset_dir {dataset_dir}" - ] - }, - { - "cell_type": "markdown", - "id": "5030732c-deb5-448a-b575-385bda0fa308", - "metadata": {}, - "source": [ - "The test inference script can then be invoked as such to produce an output tensor saved to the given file with a randomly generated image. The `ckpt_path` value should point to the final checkpoint file created during the above training run, which will be in a subdirectory of `./result`. The training script's default behaviour is to create a new timestamped subdirectory in `./result` for every new run, this can be explicitly set by providing a `output_dir` value on the command line." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f53b40ee-11b7-4352-82ee-0dd7113220cf", - "metadata": {}, - "outputs": [], - "source": [ - "configs=f\"'{bundle_root}/configs/common.yaml', '{bundle_root}/configs/infer.yaml'\"\n", - "\n", - "!PYTHONPATH={bundle_root} python -m monai.bundle run testing \\\n", - " --meta_file {bundle_root}/configs/metadata.json \\\n", - " --config_file \"{configs}\" \\\n", - " --ckpt_path ./results/output_230215_174009/model_final_iteration=75000.pt \\\n", - " --bundle_root {bundle_root} \\\n", - " --out_file test.pt\n", - "\n", - "test = torch.load(\"test.pt\", map_location=\"cpu\")\n", - "\n", - "plt.imshow(test[0, 0], vmin=0, vmax=1, cmap=\"gray\"); plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cf8438b3-4c7d-48c4-bb41-ed7def73753f", - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "\n", - "sys.path.append(bundle_root) # make sure we load the script files we need\n", - "\n", - "# configure the parser from the bundle's information\n", - "cp = ConfigParser()\n", - "cp.read_meta(f\"{bundle_root}/configs/metadata.json\")\n", - "cp.read_config([f\"{bundle_root}/configs/common.yaml\", f\"{bundle_root}/configs/infer.yaml\"])\n", - "cp[\"bundle_root\"] = bundle_root\n", - "cp[\"ckpt_path\"] = \"./results/output_230215_174009/model_final_iteration=75000.pt\"\n", - "\n", - "cp.get_parsed_content(\"load_state\") # load the saved state from the checkpoint just be resolving this value\n", - "\n", - "device = cp.get_parsed_content(\"device\") # device used by the bundle\n", - "sample = cp.get_parsed_content(\"sample\") # test sampling function\n", - "\n", - "image_dim = cp[\"image_dim\"] # get the stored dimension value, no need to resolve anything\n", - "\n", - "noise = torch.rand(1, 1, image_dim, image_dim).to(device) # or cp.get_parsed_content(\"noise\")\n", - "\n", - "test = sample(noise)\n", - "\n", - "plt.imshow(test[0, 0].cpu(), vmin=0, vmax=1, cmap=\"gray\")" - ] - }, - { - "cell_type": "markdown", - "id": "2feab4e5-2745-4d35-9eec-a2bb8340cf51", - "metadata": {}, - "source": [ - "Multi-GPU can be enabled by including the `train_multigpu.yaml` configuration file:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "173cda1c-ac90-410f-b34d-b6cbb0044c7a", - "metadata": {}, - "outputs": [], - "source": [ - "configs=f\"'{bundle_root}/configs/common.yaml', '{bundle_root}/configs/train.yaml', '{bundle_root}/configs/train_multigpu.yaml'\"\n", - "\n", - "!PYTHONPATH={bundle_root} torchrun --standalone --nnodes=1 --nproc_per_node=2 -m monai.bundle run training \\\n", - " --meta_file {bundle_root}/configs/metadata.json \\\n", - " --config_file \"{configs}\" \\\n", - " --logging_file {bundle_root}/configs/logging.conf \\\n", - " --bundle_root {bundle_root} \\\n", - " --dataset_dir {dataset_dir}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cb719023-8250-43c4-ab10-911829332498", - "metadata": {}, - "outputs": [], - "source": [ - "if directory is None:\n", - " shutil.rmtree(dataset_dir)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.6" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/models/mednist_ddpm/docs/README.md b/models/mednist_ddpm/docs/README.md deleted file mode 100644 index 6483aff5..00000000 --- a/models/mednist_ddpm/docs/README.md +++ /dev/null @@ -1,9 +0,0 @@ - -# MedNIST DDPM Example Bundle - -This implements roughly equivalent code to the "Denoising Diffusion Probabilistic Models with MedNIST Dataset" example notebook. This includes scripts for training with single or multiple GPUs and a visualisation notebook. - -The files included here demonstrate how to use the bundle: - * [2d_ddpm_bundle_tutorial.ipynb](./2d_ddpm_bundle_tutorial.ipynb) - demonstrates command line and in-code invocation of the bundle's training and inference scripts - * [sub_train.sh](sub_train.sh) - SLURM submission script example for training - * [sub_train_multigpu.sh](sub_train_multigpu.sh) - SLURM submission script example for training with multiple GPUs diff --git a/models/mednist_ddpm/docs/sub_train.sh b/models/mednist_ddpm/docs/sub_train.sh deleted file mode 100755 index 237b16f5..00000000 --- a/models/mednist_ddpm/docs/sub_train.sh +++ /dev/null @@ -1,34 +0,0 @@ -#! /bin/bash -#SBATCH --nodes=1 -#SBATCH -J mednist_train -#SBATCH -c 4 -#SBATCH --gres=gpu:1 -#SBATCH --time=2:00:00 -#SBATCH -p small - -set -v - -# change this if run submitted from a different directory -export BUNDLE="$(pwd)/.." - -# have to set PYTHONPATH to find MONAI and GenerativeModels as well as the bundle's script directory -export PYTHONPATH="$HOME/MONAI:$HOME/GenerativeModels:$BUNDLE" - -# change this to load a checkpoint instead of started from scratch -CKPT=none - -CONFIG="'$BUNDLE/configs/common.yaml', '$BUNDLE/configs/train.yaml'" - -# change this to point to where MedNIST is located -DATASET="$(pwd)" - -# it's useful to include the configuration in the log file -cat "$BUNDLE/configs/common.yaml" -cat "$BUNDLE/configs/train.yaml" - -python -m monai.bundle run training \ - --meta_file "$BUNDLE/configs/metadata.json" \ - --config_file "$CONFIG" \ - --logging_file "$BUNDLE/configs/logging.conf" \ - --bundle_root "$BUNDLE" \ - --dataset_dir "$DATASET" diff --git a/models/mednist_ddpm/docs/sub_train_multigpu.sh b/models/mednist_ddpm/docs/sub_train_multigpu.sh deleted file mode 100644 index 4d5f6af0..00000000 --- a/models/mednist_ddpm/docs/sub_train_multigpu.sh +++ /dev/null @@ -1,36 +0,0 @@ -#! /bin/bash -#SBATCH --nodes=1 -#SBATCH -J mednist_train -#SBATCH -c 4 -#SBATCH --gres=gpu:2 -#SBATCH --time=2:00:00 -#SBATCH -p big - -set -v - -# change this if run submitted from a different directory -export BUNDLE="$(pwd)/.." - -# have to set PYTHONPATH to find MONAI and GenerativeModels as well as the bundle's script directory -export PYTHONPATH="$HOME/MONAI:$HOME/GenerativeModels:$BUNDLE" - -# change this to load a checkpoint instead of started from scratch -CKPT=none - -CONFIG="'$BUNDLE/configs/common.yaml', '$BUNDLE/configs/train.yaml', '$BUNDLE/configs/train_multigpu.yaml'" - -# change this to point to where MedNIST is located -DATASET="$(pwd)" - -# it's useful to include the configuration in the log file -cat "$BUNDLE/configs/common.yaml" -cat "$BUNDLE/configs/train.yaml" -cat "$BUNDLE/configs/train_multigpu.yaml" - -# remember to change arguments to match how many nodes and GPUs you have -torchrun --standalone --nnodes=1 --nproc_per_node=2 -m monai.bundle run training \ - --meta_file "$BUNDLE/configs/metadata.json" \ - --config_file "$CONFIG" \ - --logging_file "$BUNDLE/configs/logging.conf" \ - --bundle_root "$BUNDLE" \ - --dataset_dir "$DATASET" diff --git a/models/mednist_ddpm/scripts/__init__.py b/models/mednist_ddpm/scripts/__init__.py deleted file mode 100644 index c44e4a34..00000000 --- a/models/mednist_ddpm/scripts/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from __future__ import annotations - - -def inv_metric_cmp_fn(current_metric: float, prev_best: float) -> bool: - """ - This inverts comparison for those metrics which reduce like loss values, such that the lower one is better. - - Args: - current_metric: metric value of current round computation. - prev_best: the best metric value of previous rounds to compare with. - """ - return current_metric < prev_best From 529e78beddd311d21cee3570f2f6bd2a6b7015c7 Mon Sep 17 00:00:00 2001 From: Virginia Date: Mon, 13 Jan 2025 17:14:07 +0000 Subject: [PATCH 09/33] Added unit test to test the CXR sampling, which works now. Modified verify_bundle to pass the check for model.pt, since the requirement for two models (autoencoder and diffusion_model) makes sense for them to keep their specific names. Modification of inference.json to add dummy attributes to pass the ConfigWorkflow check. Modification of large_files.yml so that models are .pt and not .pth. --- ..._image_synthesis_latent_diffusion_model.py | 45 +++++++++++++++++++ ci/verify_bundle.py | 2 + .../configs/inference.json | 5 +++ .../large_files.yml | 4 +- 4 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 ci/unit_tests/test_cxr_image_synthesis_latent_diffusion_model.py diff --git a/ci/unit_tests/test_cxr_image_synthesis_latent_diffusion_model.py b/ci/unit_tests/test_cxr_image_synthesis_latent_diffusion_model.py new file mode 100644 index 00000000..44610eff --- /dev/null +++ b/ci/unit_tests/test_cxr_image_synthesis_latent_diffusion_model.py @@ -0,0 +1,45 @@ +# Copyright (c) MONAI Consortium +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +import shutil +import tempfile +import unittest +from parameterized import parameterized +import numpy as np +from monai.bundle import ConfigWorkflow +from utils import check_workflow + +TEST_CASE_1 = [ # inference + { + "bundle_root": "models/cxr_image_synthesis_latent_diffusion_model", + "prompt": "Big right-sided pleural effusion. Normal left lung.", + "guidance_scale": 7.0, + } +] + +class TestCXRLatentDiffusionInference(unittest.TestCase): + @parameterized.expand([TEST_CASE_1]) + def test_inference(self, params): + bundle_root = params["bundle_root"] + inference_file = os.path.join(bundle_root, "configs/inference.json") + trainer = ConfigWorkflow( + workflow_type="inference", + config_file=inference_file, + logging_file=os.path.join(bundle_root, "configs/logging.conf"), + meta_file=os.path.join(bundle_root, "configs/metadata.json"), + **params, + ) + check_workflow(trainer, check_properties=True) + +if __name__ == "__main__": + loader = unittest.TestLoader() + unittest.main(testLoader=loader) diff --git a/ci/verify_bundle.py b/ci/verify_bundle.py index 845611fa..7beca3e5 100644 --- a/ci/verify_bundle.py +++ b/ci/verify_bundle.py @@ -54,6 +54,8 @@ def _get_weights_names(bundle: str): if bundle == "pediatric_abdominal_ct_segmentation": # skip test for this bundle's ts file return "dynunet_FT.pt", None + if bundle == "cxr_image_synthesis_latent_diffusion_model": + return "autoencoder.pt", None return "model.pt", "model.ts" diff --git a/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json b/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json index 6578e3ea..b36315fb 100644 --- a/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json +++ b/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json @@ -7,6 +7,10 @@ "$from transformers import CLIPTokenizer" ], "bundle_root": ".", + "dataset_dir": "", + "dataset": "", + "evaluator": "", + "inferer": "", "load_old": 1, "model_dir": "$@bundle_root + '/models'", "output_dir": "$@bundle_root + '/output'", @@ -44,6 +48,7 @@ "with_encoder_nonlocal_attn": false, "with_decoder_nonlocal_attn": false }, + "network_def": "@autoencoder_def", "load_autoencoder_path": "$@model_dir + '/autoencoder.pth'", "load_autoencoder_func": "$@autoencoder_def.load_old_state_dict if bool(@load_old) else @autoencoder_def.load_state_dict", "load_autoencoder": "$@load_autoencoder_func(torch.load(@load_autoencoder_path))", diff --git a/models/cxr_image_synthesis_latent_diffusion_model/large_files.yml b/models/cxr_image_synthesis_latent_diffusion_model/large_files.yml index 673824cb..7691a875 100644 --- a/models/cxr_image_synthesis_latent_diffusion_model/large_files.yml +++ b/models/cxr_image_synthesis_latent_diffusion_model/large_files.yml @@ -1,9 +1,9 @@ large_files: - - path: "models/autoencoder.pth" + - path: "models/autoencoder.pt" url: "https://drive.google.com/uc?export=download&id=1paDN1m-Q_Oy8d_BanPkRTi3RlNB_Sv_h" hash_val: "7f579cb789597db7bb5de1488f54bc6c" hash_type: "md5" - - path: "models/diffusion_model.pth" + - path: "models/diffusion_model.pt" url: "https://drive.google.com/uc?export=download&id=1CjcmiPu5_QWr-f7wDJsXrCCcVeczneGT" hash_val: "c3fd4c8e38cd1d7250a8903cca935823" hash_type: "md5" From 1f3185d31adb96fabe66ef3ecdf0b08306710e01 Mon Sep 17 00:00:00 2001 From: Virginia Date: Mon, 13 Jan 2025 17:16:53 +0000 Subject: [PATCH 10/33] Added unit test to test the CXR sampling, which works now. Modified verify_bundle to pass the check for model.pt, since the requirement for two models (autoencoder and diffusion_model) makes sense for them to keep their specific names. Modification of inference.json to add dummy attributes to pass the ConfigWorkflow check. Modification of large_files.yml so that models are .pt and not .pth. --- models/mednist_ddpm/configs/common.yaml | 59 ++ models/mednist_ddpm/configs/infer.yaml | 38 ++ models/mednist_ddpm/configs/logging.conf | 21 + models/mednist_ddpm/configs/metadata.json | 59 ++ models/mednist_ddpm/configs/train.yaml | 157 +++++ .../mednist_ddpm/configs/train_multigpu.yaml | 30 + .../docs/2d_ddpm_bundle_tutorial.ipynb | 577 ++++++++++++++++++ models/mednist_ddpm/docs/README.md | 11 + models/mednist_ddpm/docs/sub_train.sh | 31 + .../mednist_ddpm/docs/sub_train_multigpu.sh | 33 + models/mednist_ddpm/docs/test.pt | Bin 0 -> 17485 bytes models/mednist_ddpm/scripts/__init__.py | 12 + 12 files changed, 1028 insertions(+) create mode 100644 models/mednist_ddpm/configs/common.yaml create mode 100644 models/mednist_ddpm/configs/infer.yaml create mode 100644 models/mednist_ddpm/configs/logging.conf create mode 100644 models/mednist_ddpm/configs/metadata.json create mode 100644 models/mednist_ddpm/configs/train.yaml create mode 100644 models/mednist_ddpm/configs/train_multigpu.yaml create mode 100644 models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb create mode 100644 models/mednist_ddpm/docs/README.md create mode 100755 models/mednist_ddpm/docs/sub_train.sh create mode 100644 models/mednist_ddpm/docs/sub_train_multigpu.sh create mode 100644 models/mednist_ddpm/docs/test.pt create mode 100644 models/mednist_ddpm/scripts/__init__.py diff --git a/models/mednist_ddpm/configs/common.yaml b/models/mednist_ddpm/configs/common.yaml new file mode 100644 index 00000000..0b809413 --- /dev/null +++ b/models/mednist_ddpm/configs/common.yaml @@ -0,0 +1,59 @@ +# This file defines common definitions used in training and inference, most importantly the network definition + +imports: +- $import os +- $import datetime +- $import torch +- $import scripts +- $import monai +- $import torch.distributed as dist + +image: $monai.utils.CommonKeys.IMAGE +label: $monai.utils.CommonKeys.LABEL +pred: $monai.utils.CommonKeys.PRED + +is_dist: '$dist.is_initialized()' +rank: '$dist.get_rank() if @is_dist else 0' +is_not_rank0: '$@rank > 0' +device: '$torch.device(f"cuda:{@rank}" if torch.cuda.is_available() else "cpu")' + +network_def: + _target_: monai.networks.nets.DiffusionModelUNet + spatial_dims: 2 + in_channels: 1 + out_channels: 1 + channels: [64, 128, 128] + attention_levels: [false, true, true] + num_res_blocks: 1 + num_head_channels: 128 + +network: $@network_def.to(@device) + +bundle_root: . +ckpt_path: $@bundle_root + '/models/model.pt' +use_amp: true +image_dim: 64 +image_size: [1, '@image_dim', '@image_dim'] +num_train_timesteps: 1000 + +base_transforms: +- _target_: LoadImaged + keys: '@image' + image_only: true +- _target_: EnsureChannelFirstd + keys: '@image' +- _target_: ScaleIntensityRanged + keys: '@image' + a_min: 0.0 + a_max: 255.0 + b_min: 0.0 + b_max: 1.0 + clip: true + +scheduler: + _target_: monai.networks.schedulers.DDPMScheduler + num_train_timesteps: '@num_train_timesteps' + +inferer: + _target_: monai.inferers.DiffusionInferer + scheduler: '@scheduler' diff --git a/models/mednist_ddpm/configs/infer.yaml b/models/mednist_ddpm/configs/infer.yaml new file mode 100644 index 00000000..5cfccae1 --- /dev/null +++ b/models/mednist_ddpm/configs/infer.yaml @@ -0,0 +1,38 @@ +# This defines an inference script for generating a random image to a Pytorch file + +batch_size: 1 +num_workers: 0 + +noise: $torch.rand(1,1,@image_dim,@image_dim) # create a random image every time this program is run + +out_file: "" # where to save the tensor to + +# using a lambda this defines a simple sampling function used below +sample: '$lambda x: @inferer.sample(input_noise=x, diffusion_model=@network, scheduler=@scheduler)' + +load_state: '$@network.load_state_dict(torch.load(@ckpt_path, weights_only = True))' # command to load the saved model weights + +save_trans: + _target_: Compose + transforms: + - _target_: ScaleIntensity + minv: 0.0 + maxv: 255.0 + - _target_: ToTensor + track_meta: false + - _target_: SaveImage + output_ext: "jpg" + resample: false + output_dtype: '$torch.uint8' + separate_folder: false + output_postfix: '@out_file' + +# program to load the model weights, run `sample`, and store results to `out_file` +testing: +- '@load_state' +- '$torch.save(@sample(@noise.to(@device)), @out_file)' + +#alternative version which saves to a jpg file +testing_jpg: +- '@load_state' +- '$@save_trans(@sample(@noise.to(@device))[0])' diff --git a/models/mednist_ddpm/configs/logging.conf b/models/mednist_ddpm/configs/logging.conf new file mode 100644 index 00000000..91c1a21c --- /dev/null +++ b/models/mednist_ddpm/configs/logging.conf @@ -0,0 +1,21 @@ +[loggers] +keys=root + +[handlers] +keys=consoleHandler + +[formatters] +keys=fullFormatter + +[logger_root] +level=INFO +handlers=consoleHandler + +[handler_consoleHandler] +class=StreamHandler +level=INFO +formatter=fullFormatter +args=(sys.stdout,) + +[formatter_fullFormatter] +format=%(asctime)s - %(name)s - %(levelname)s - %(message)s diff --git a/models/mednist_ddpm/configs/metadata.json b/models/mednist_ddpm/configs/metadata.json new file mode 100644 index 00000000..65960dda --- /dev/null +++ b/models/mednist_ddpm/configs/metadata.json @@ -0,0 +1,59 @@ +{ + "schema": "https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/meta_schema_20220729.json", + "version": "1.0.0", + "changelog": { + "1.0.0": "Initial release" + }, + "monai_version": "1.4.0", + "pytorch_version": "2.5.1", + "numpy_version": "1.26.4", + "optional_packages_version": {}, + "task": "MedNIST Hand Generation", + "description": "", + "authors": "Walter Hugo Lopez Pinaya, Mark Graham, and Eric Kerfoot", + "copyright": "Copyright (c) KCL", + "references": [], + "intended_use": "This is suitable for research purposes only.", + "image_classes": "Single channel magnitude data.", + "data_source": "MedNIST", + "network_data_format": { + "inputs": { + "image": { + "type": "image", + "format": "magnitude", + "modality": "xray", + "num_channels": 1, + "spatial_shape": [ + 1, + 64, + 64 + ], + "dtype": "float32", + "value_range": [], + "is_patch_data": false, + "channel_def": { + "0": "image" + } + } + }, + "outputs": { + "pred": { + "type": "image", + "format": "magnitude", + "modality": "xray", + "num_channels": 1, + "spatial_shape": [ + 1, + 64, + 64 + ], + "dtype": "float32", + "value_range": [], + "is_patch_data": false, + "channel_def": { + "0": "image" + } + } + } + } +} diff --git a/models/mednist_ddpm/configs/train.yaml b/models/mednist_ddpm/configs/train.yaml new file mode 100644 index 00000000..549ff14b --- /dev/null +++ b/models/mednist_ddpm/configs/train.yaml @@ -0,0 +1,157 @@ +# This defines the training script for the network + +# choose a new directory for every run +output_dir: $datetime.datetime.now().strftime('./results/output_%y%m%d_%H%M%S') +dataset_dir: ./data + +train_data: + _target_ : MedNISTDataset + root_dir: '@dataset_dir' + section: training + download: true + progress: false + seed: 0 + +val_data: + _target_ : MedNISTDataset + root_dir: '@dataset_dir' + section: validation + download: true + progress: false + seed: 0 + +train_datalist: '$[{"image": item["image"]} for item in @train_data.data if item["class_name"] == "Hand"]' +val_datalist: '$[{"image": item["image"]} for item in @val_data.data if item["class_name"] == "Hand"]' + +batch_size: 8 +num_substeps: 1 +num_workers: 4 +use_thread_workers: false + +lr: 0.000025 +rand_prob: 0.5 +num_epochs: 75 +val_interval: 5 +save_interval: 5 + +train_transforms: +- _target_: RandAffined + keys: '@image' + rotate_range: + - ['$-np.pi / 36', '$np.pi / 36'] + - ['$-np.pi / 36', '$np.pi / 36'] + translate_range: + - [-1, 1] + - [-1, 1] + scale_range: + - [-0.05, 0.05] + - [-0.05, 0.05] + spatial_size: [64, 64] + padding_mode: "zeros" + prob: '@rand_prob' + +train_ds: + _target_: Dataset + data: $@train_datalist + transform: + _target_: Compose + transforms: '$@base_transforms + @train_transforms' + +train_loader: + _target_: ThreadDataLoader + dataset: '@train_ds' + batch_size: '@batch_size' + repeats: '@num_substeps' + num_workers: '@num_workers' + use_thread_workers: '@use_thread_workers' + persistent_workers: '$@num_workers > 0' + shuffle: true + +val_ds: + _target_: Dataset + data: $@val_datalist + transform: + _target_: Compose + transforms: '@base_transforms' + +val_loader: + _target_: DataLoader + dataset: '@val_ds' + batch_size: '@batch_size' + num_workers: '@num_workers' + persistent_workers: '$@num_workers > 0' + shuffle: false + +lossfn: + _target_: torch.nn.MSELoss + +optimizer: + _target_: torch.optim.Adam + params: $@network.parameters() + lr: '@lr' + +prepare_batch: + _target_: monai.engines.DiffusionPrepareBatch + num_train_timesteps: '@num_train_timesteps' + +val_handlers: +- _target_: StatsHandler + name: train_log + output_transform: '$lambda x: None' + _disabled_: '@is_not_rank0' + +evaluator: + _target_: SupervisedEvaluator + device: '@device' + val_data_loader: '@val_loader' + network: '@network' + amp: '@use_amp' + inferer: '@inferer' + prepare_batch: '@prepare_batch' + key_val_metric: + val_mean_abs_error: + _target_: MeanAbsoluteError + output_transform: $monai.handlers.from_engine([@pred, @label]) + metric_cmp_fn: '$scripts.inv_metric_cmp_fn' + val_handlers: '$list(filter(bool, @val_handlers))' + +handlers: +- _target_: CheckpointLoader + _disabled_: $not os.path.exists(@ckpt_path) + load_path: '@ckpt_path' + load_dict: + model: '@network' +- _target_: ValidationHandler + validator: '@evaluator' + epoch_level: true + interval: '@val_interval' +- _target_: CheckpointSaver + save_dir: '@output_dir' + save_dict: + model: '@network' + save_interval: '@save_interval' + save_final: true + epoch_level: true + _disabled_: '@is_not_rank0' + +trainer: + _target_: SupervisedTrainer + max_epochs: '@num_epochs' + device: '@device' + train_data_loader: '@train_loader' + network: '@network' + loss_function: '@lossfn' + optimizer: '@optimizer' + inferer: '@inferer' + prepare_batch: '@prepare_batch' + key_train_metric: + train_acc: + _target_: MeanSquaredError + output_transform: $monai.handlers.from_engine([@pred, @label]) + metric_cmp_fn: '$scripts.inv_metric_cmp_fn' + train_handlers: '$list(filter(bool, @handlers))' + amp: '@use_amp' + +training: +- '$monai.utils.set_determinism(0)' +- '$@trainer.run()' diff --git a/models/mednist_ddpm/configs/train_multigpu.yaml b/models/mednist_ddpm/configs/train_multigpu.yaml new file mode 100644 index 00000000..51f5acf4 --- /dev/null +++ b/models/mednist_ddpm/configs/train_multigpu.yaml @@ -0,0 +1,30 @@ +# This can be mixed in with the training script to enable multi-GPU training + +network: + _target_: torch.nn.parallel.DistributedDataParallel + module: $@network_def.to(@device) + device_ids: ['@device'] + find_unused_parameters: true + +tsampler: + _target_: DistributedSampler + dataset: '@train_ds' + even_divisible: true + shuffle: true +train_loader#sampler: '@tsampler' +train_loader#shuffle: false + +vsampler: + _target_: DistributedSampler + dataset: '@val_ds' + even_divisible: false + shuffle: false +val_loader#sampler: '@vsampler' + +training: +- $import torch.distributed as dist +- $dist.init_process_group(backend='nccl') +- $torch.cuda.set_device(@device) +- $monai.utils.set_determinism(seed=123), +- $@trainer.run() +- $dist.destroy_process_group() diff --git a/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb b/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb new file mode 100644 index 00000000..094d28e7 --- /dev/null +++ b/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb @@ -0,0 +1,577 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c54f5831-58eb-4f9e-bb8a-2c2a6536a658", + "metadata": {}, + "source": [ + "# Denoising Diffusion Probabilistic Models with MedNIST Dataset Bundle \n", + "\n", + "This notebook discusses and uses the MONAI bundle it's included in for generating images from the MedNIST dataset using diffusion models. This is based off the 2d_ddpm_tutorial_ignite.ipynb notebook with a few changes.\n", + "\n", + "The bundle defines training and inference scripts whose use will be described here along with visualisations. The assumption with this notebook is that it's run within the bundle's `docs` directory and that the environment it runs in has `MONAI` installed. The command lines given are known to work in `bash` however may be problematic in Windows.\n", + "\n", + "Specifically, we train a diffusion model to generate X-Ray hands (drawn from the MedNIST dataset).\n", + "\n", + "First thing to do is import libraries and verify MONAI is present:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "6d32f8a4-2bfe-4cfb-9abd-033b0c6080e6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MONAI version: 1.4.0\n", + "Numpy version: 1.26.4\n", + "Pytorch version: 2.5.1+cu124\n", + "MONAI flags: HAS_EXT = False, USE_COMPILED = False, USE_META_DICT = False\n", + "MONAI rev id: 46a5272196a6c2590ca2589029eed8e4d56ff008\n", + "MONAI __file__: /media//BigCrumb/POSTDOC_FEDERATED_LEARNING/PRODIGY_PROJECT/monai-model-zoo/venv/lib/python3.10/site-packages/monai/__init__.py\n", + "\n", + "Optional dependencies:\n", + "Pytorch Ignite version: 0.5.1\n", + "ITK version: NOT INSTALLED or UNKNOWN VERSION.\n", + "Nibabel version: NOT INSTALLED or UNKNOWN VERSION.\n", + "scikit-image version: NOT INSTALLED or UNKNOWN VERSION.\n", + "scipy version: NOT INSTALLED or UNKNOWN VERSION.\n", + "Pillow version: 11.0.0\n", + "Tensorboard version: NOT INSTALLED or UNKNOWN VERSION.\n", + "gdown version: 5.2.0\n", + "TorchVision version: NOT INSTALLED or UNKNOWN VERSION.\n", + "tqdm version: 4.67.1\n", + "lmdb version: NOT INSTALLED or UNKNOWN VERSION.\n", + "psutil version: 6.1.1\n", + "pandas version: NOT INSTALLED or UNKNOWN VERSION.\n", + "einops version: 0.8.0\n", + "transformers version: 4.46.3\n", + "mlflow version: NOT INSTALLED or UNKNOWN VERSION.\n", + "pynrrd version: NOT INSTALLED or UNKNOWN VERSION.\n", + "clearml version: NOT INSTALLED or UNKNOWN VERSION.\n", + "\n", + "For details about installing the optional dependencies, please visit:\n", + " https://docs.monai.io/en/latest/installation.html#installing-the-recommended-dependencies\n", + "\n" + ] + } + ], + "source": [ + "import os\n", + "import shutil\n", + "import tempfile\n", + "from pathlib import Path\n", + "\n", + "import torch\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import monai\n", + "from monai.bundle import ConfigParser\n", + "\n", + "# path to the bundle directory, this assumes you're running the notebook in its directory\n", + "bundle_root = str(Path(\".\").absolute().parent)\n", + "\n", + "monai.config.print_config()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d6fc6592-cb51-4527-97ee-add5d1cdbeb4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/tmp/tmpwv12iwwo\n" + ] + } + ], + "source": [ + "directory = os.environ.get(\"MONAI_DATA_DIRECTORY\")\n", + "dataset_dir = tempfile.mkdtemp() if directory is None else directory\n", + "print(dataset_dir)" + ] + }, + { + "cell_type": "markdown", + "id": "5721b12a-8474-435b-aac2-c0ed054fa618", + "metadata": {}, + "source": [ + "### Training the diffusion model" + ] + }, + { + "cell_type": "markdown", + "id": "678d2e51-dc2d-4ad9-a4c0-14a6f900398b", + "metadata": {}, + "source": [ + "A bundle can be run on the command line using the Fire library or by parsing the configuration manually then getting parsed content objects. The following is the command to train the network for the default number of epochs. It will define values in the config files which need to be set for a particular run, such as the dataset directory created above, and setting the PYTHONPATH variable. The configuration for this bundle is split into 4 yaml files, one having common definitions for training and inference (common.yaml), one to enable multi-GPU training (train_multigpu.yaml), and one each for training (train.yaml) and inference (inference.yaml). Their combinations determine what your final configuration is, in this case the common and train files produce a training script. \n", + "\n", + "The dataset information is available in configs/common.yaml. The transformations to which the data is subject, which is basically the addition of a channel dimension and the scaling of the images between 0 and 1, is in each task yaml file. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "d52a4ae9-0d6d-4bc4-a5b5-f84470711f2d", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2025-01-12 15:03:16,093 - INFO - --- input summary of monai.bundle.scripts.run ---\n", + "2025-01-12 15:03:16,093 - INFO - > config_file: ('./configs/common.yaml',\n", + " './configs/train.yaml')\n", + "2025-01-12 15:03:16,093 - INFO - > meta_file: './configs/metadata.json'\n", + "2025-01-12 15:03:16,093 - INFO - > logging_file: '/monai-model-zoo/model-zoo/models/mednist_ddpm/configs/logging.conf'\n", + "2025-01-12 15:03:16,093 - INFO - > run_id: 'training'\n", + "2025-01-12 15:03:16,093 - INFO - > bundle_root: '/model-zoo/models/mednist_ddpm'\n", + "2025-01-12 15:03:16,093 - INFO - > dataset_dir: '/tmp/tmpwv12iwwo'\n", + "2025-01-12 15:03:16,093 - INFO - ---\n", + "\n", + "\n", + "2025-01-12 15:03:16,093 - INFO - Setting logging properties based on config: ./configs/logging.conf.\n", + "2025-01-12 15:03:17,424 - INFO - Downloaded: /tmp/tmpwv12iwwo/MedNIST.tar.gz\n", + "2025-01-12 15:03:17,500 - INFO - Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n", + "2025-01-12 15:03:17,500 - INFO - Writing into directory: /tmp/tmpwv12iwwo.\n", + "2025-01-12 15:03:38,425 - INFO - Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n", + "2025-01-12 15:03:38,425 - INFO - File exists: /tmp/tmpwv12iwwo/MedNIST.tar.gz, skipped downloading.\n", + "2025-01-12 15:03:38,425 - INFO - Non-empty folder exists in /tmp/tmpwv12iwwo/MedNIST, skipped extracting.\n", + "2025-01-12 15:03:40,493 - ignite.engine.engine.SupervisedTrainer - INFO - Engine run resuming from iteration 0, epoch 0 until 75 epochs\n", + "2025-01-12 15:04:32,910 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.1607925146818161\n", + "2025-01-12 15:04:32,910 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[1] Complete. Time taken: 00:00:52.417\n", + "2025-01-12 15:05:23,448 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.016663629561662674\n", + "2025-01-12 15:05:23,448 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[2] Complete. Time taken: 00:00:50.538\n", + "2025-01-12 15:06:14,642 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.01578485034406185\n", + "2025-01-12 15:06:14,642 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[3] Complete. Time taken: 00:00:51.194\n", + "2025-01-12 15:07:05,276 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.013587715104222298\n", + "2025-01-12 15:07:05,276 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[4] Complete. Time taken: 00:00:50.634\n", + "2025-01-12 15:07:55,814 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.012479547411203384\n", + "2025-01-12 15:07:55,814 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 4 until 5 epochs\n", + "2025-01-12 15:07:59,376 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.05754538252949715\n", + "2025-01-12 15:07:59,376 - INFO - Epoch[5] Metrics -- val_mean_abs_error: 0.0575 \n", + "2025-01-12 15:07:59,376 - INFO - Key metric: val_mean_abs_error best value: 0.05754538252949715 at epoch: 5\n", + "2025-01-12 15:07:59,376 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[5] Complete. Time taken: 00:00:03.456\n", + "2025-01-12 15:07:59,376 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.561\n", + "2025-01-12 15:07:59,414 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 5\n", + "2025-01-12 15:07:59,414 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[5] Complete. Time taken: 00:00:54.138\n", + "2025-01-12 15:08:50,244 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.012240087613463402\n", + "2025-01-12 15:08:50,244 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[6] Complete. Time taken: 00:00:50.830\n", + "2025-01-12 15:09:41,102 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[7] Complete. Time taken: 00:00:50.858\n", + "2025-01-12 15:10:31,267 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[8] Complete. Time taken: 00:00:50.165\n", + "2025-01-12 15:11:21,542 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.01170545443892479\n", + "2025-01-12 15:11:21,542 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[9] Complete. Time taken: 00:00:50.275\n", + "2025-01-12 15:12:11,241 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 9 until 10 epochs\n", + "2025-01-12 15:12:14,437 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.052069272845983505\n", + "2025-01-12 15:12:14,437 - INFO - Epoch[10] Metrics -- val_mean_abs_error: 0.0521 \n", + "2025-01-12 15:12:14,437 - INFO - Key metric: val_mean_abs_error best value: 0.052069272845983505 at epoch: 10\n", + "2025-01-12 15:12:14,437 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[10] Complete. Time taken: 00:00:03.195\n", + "2025-01-12 15:12:14,437 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.196\n", + "2025-01-12 15:12:14,472 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 10\n", + "2025-01-12 15:12:14,472 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[10] Complete. Time taken: 00:00:52.930\n", + "2025-01-12 15:13:04,729 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.011470048688352108\n", + "2025-01-12 15:13:04,729 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[11] Complete. Time taken: 00:00:50.257\n", + "2025-01-12 15:13:54,781 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.010766257531940937\n", + "2025-01-12 15:13:54,781 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[12] Complete. Time taken: 00:00:50.052\n", + "2025-01-12 15:14:47,646 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[13] Complete. Time taken: 00:00:52.865\n", + "2025-01-12 15:15:38,487 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.010334153659641743\n", + "2025-01-12 15:15:38,487 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[14] Complete. Time taken: 00:00:50.840\n", + "2025-01-12 15:16:29,745 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 14 until 15 epochs\n", + "2025-01-12 15:16:32,924 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.04713250324130058\n", + "2025-01-12 15:16:32,924 - INFO - Epoch[15] Metrics -- val_mean_abs_error: 0.0471 \n", + "2025-01-12 15:16:32,924 - INFO - Key metric: val_mean_abs_error best value: 0.04713250324130058 at epoch: 15\n", + "2025-01-12 15:16:32,924 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[15] Complete. Time taken: 00:00:03.178\n", + "2025-01-12 15:16:32,924 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.179\n", + "2025-01-12 15:16:32,960 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 15\n", + "2025-01-12 15:16:32,960 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[15] Complete. Time taken: 00:00:54.473\n", + "2025-01-12 15:17:23,605 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.010036583058536053\n", + "2025-01-12 15:17:23,605 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[16] Complete. Time taken: 00:00:50.645\n", + "2025-01-12 15:18:14,424 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[17] Complete. Time taken: 00:00:50.819\n", + "2025-01-12 15:19:05,194 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[18] Complete. Time taken: 00:00:50.770\n", + "2025-01-12 15:19:55,723 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.010024736635386944\n", + "2025-01-12 15:19:55,723 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[19] Complete. Time taken: 00:00:50.529\n", + "2025-01-12 15:20:46,329 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 19 until 20 epochs\n", + "2025-01-12 15:20:49,486 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.04626006633043289\n", + "2025-01-12 15:20:49,486 - INFO - Epoch[20] Metrics -- val_mean_abs_error: 0.0463 \n", + "2025-01-12 15:20:49,486 - INFO - Key metric: val_mean_abs_error best value: 0.04626006633043289 at epoch: 20\n", + "2025-01-12 15:20:49,486 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[20] Complete. Time taken: 00:00:03.155\n", + "2025-01-12 15:20:49,486 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.156\n", + "2025-01-12 15:20:49,522 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 20\n", + "2025-01-12 15:20:49,522 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[20] Complete. Time taken: 00:00:53.799\n", + "2025-01-12 15:21:41,275 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[21] Complete. Time taken: 00:00:51.753\n", + "2025-01-12 15:22:31,483 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.010010532103478909\n", + "2025-01-12 15:22:31,483 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[22] Complete. Time taken: 00:00:50.207\n", + "2025-01-12 15:23:22,529 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.0098584508523345\n", + "2025-01-12 15:23:22,529 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[23] Complete. Time taken: 00:00:51.046\n", + "2025-01-12 15:24:14,032 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[24] Complete. Time taken: 00:00:51.503\n", + "2025-01-12 15:25:05,966 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 24 until 25 epochs\n", + "2025-01-12 15:25:09,415 - INFO - Epoch[25] Metrics -- val_mean_abs_error: 0.0496 \n", + "2025-01-12 15:25:09,415 - INFO - Key metric: val_mean_abs_error best value: 0.04626006633043289 at epoch: 20\n", + "2025-01-12 15:25:09,415 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[25] Complete. Time taken: 00:00:03.448\n", + "2025-01-12 15:25:09,415 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.449\n", + "2025-01-12 15:25:09,456 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 25\n", + "2025-01-12 15:25:09,456 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[25] Complete. Time taken: 00:00:55.424\n", + "2025-01-12 15:26:01,710 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.00983799621462822\n", + "2025-01-12 15:26:01,710 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[26] Complete. Time taken: 00:00:52.254\n", + "2025-01-12 15:26:52,896 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.009661602787673473\n", + "2025-01-12 15:26:52,896 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[27] Complete. Time taken: 00:00:51.186\n", + "2025-01-12 15:27:44,867 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[28] Complete. Time taken: 00:00:51.971\n", + "2025-01-12 15:28:36,403 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[29] Complete. Time taken: 00:00:51.536\n", + "2025-01-12 15:29:28,646 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 29 until 30 epochs\n", + "2025-01-12 15:29:32,041 - INFO - Epoch[30] Metrics -- val_mean_abs_error: 0.0470 \n", + "2025-01-12 15:29:32,041 - INFO - Key metric: val_mean_abs_error best value: 0.04626006633043289 at epoch: 20\n", + "2025-01-12 15:29:32,041 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[30] Complete. Time taken: 00:00:03.394\n", + "2025-01-12 15:29:32,041 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.395\n", + "2025-01-12 15:29:32,077 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 30\n", + "2025-01-12 15:29:32,077 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[30] Complete. Time taken: 00:00:55.673\n", + "2025-01-12 15:30:23,055 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.00965067371726036\n", + "2025-01-12 15:30:23,055 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[31] Complete. Time taken: 00:00:50.978\n", + "2025-01-12 15:31:13,065 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.009442757815122604\n", + "2025-01-12 15:31:13,065 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[32] Complete. Time taken: 00:00:50.010\n", + "2025-01-12 15:32:03,203 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.008967726491391659\n", + "2025-01-12 15:32:03,203 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[33] Complete. Time taken: 00:00:50.138\n", + "2025-01-12 15:32:54,857 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[34] Complete. Time taken: 00:00:51.654\n", + "2025-01-12 15:33:46,354 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 34 until 35 epochs\n", + "2025-01-12 15:33:49,503 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.04337985813617706\n", + "2025-01-12 15:33:49,503 - INFO - Epoch[35] Metrics -- val_mean_abs_error: 0.0434 \n", + "2025-01-12 15:33:49,503 - INFO - Key metric: val_mean_abs_error best value: 0.04337985813617706 at epoch: 35\n", + "2025-01-12 15:33:49,503 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[35] Complete. Time taken: 00:00:03.148\n", + "2025-01-12 15:33:49,503 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.149\n", + "2025-01-12 15:33:49,541 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 35\n", + "2025-01-12 15:33:49,541 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[35] Complete. Time taken: 00:00:54.684\n", + "2025-01-12 15:34:39,577 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[36] Complete. Time taken: 00:00:50.036\n", + "2025-01-12 15:35:29,836 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[37] Complete. Time taken: 00:00:50.259\n", + "2025-01-12 15:36:20,156 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[38] Complete. Time taken: 00:00:50.319\n", + "2025-01-12 15:37:11,001 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[39] Complete. Time taken: 00:00:50.845\n", + "2025-01-12 15:38:00,893 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 39 until 40 epochs\n", + "2025-01-12 15:38:04,000 - INFO - Epoch[40] Metrics -- val_mean_abs_error: 0.0438 \n", + "2025-01-12 15:38:04,000 - INFO - Key metric: val_mean_abs_error best value: 0.04337985813617706 at epoch: 35\n", + "2025-01-12 15:38:04,001 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[40] Complete. Time taken: 00:00:03.107\n", + "2025-01-12 15:38:04,001 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.108\n", + "2025-01-12 15:38:04,036 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 40\n", + "2025-01-12 15:38:04,036 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[40] Complete. Time taken: 00:00:53.035\n", + "2025-01-12 15:38:55,442 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[41] Complete. Time taken: 00:00:51.406\n", + "2025-01-12 15:39:45,574 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[42] Complete. Time taken: 00:00:50.132\n", + "2025-01-12 15:40:35,569 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[43] Complete. Time taken: 00:00:49.995\n", + "2025-01-12 15:41:26,067 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[44] Complete. Time taken: 00:00:50.498\n", + "2025-01-12 15:42:16,779 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 44 until 45 epochs\n", + "2025-01-12 15:42:19,954 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.04306837171316147\n", + "2025-01-12 15:42:19,954 - INFO - Epoch[45] Metrics -- val_mean_abs_error: 0.0431 \n", + "2025-01-12 15:42:19,954 - INFO - Key metric: val_mean_abs_error best value: 0.04306837171316147 at epoch: 45\n", + "2025-01-12 15:42:19,954 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[45] Complete. Time taken: 00:00:03.175\n", + "2025-01-12 15:42:19,954 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.176\n", + "2025-01-12 15:42:19,991 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 45\n", + "2025-01-12 15:42:19,991 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[45] Complete. Time taken: 00:00:53.924\n", + "2025-01-12 15:43:10,711 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[46] Complete. Time taken: 00:00:50.719\n", + "2025-01-12 15:44:01,432 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[47] Complete. Time taken: 00:00:50.721\n", + "2025-01-12 15:44:51,691 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[48] Complete. Time taken: 00:00:50.259\n", + "2025-01-12 15:45:42,095 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[49] Complete. Time taken: 00:00:50.404\n", + "2025-01-12 15:46:31,322 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 49 until 50 epochs\n", + "2025-01-12 15:46:34,403 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.0430283285677433\n", + "2025-01-12 15:46:34,403 - INFO - Epoch[50] Metrics -- val_mean_abs_error: 0.0430 \n", + "2025-01-12 15:46:34,403 - INFO - Key metric: val_mean_abs_error best value: 0.0430283285677433 at epoch: 50\n", + "2025-01-12 15:46:34,403 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[50] Complete. Time taken: 00:00:03.081\n", + "2025-01-12 15:46:34,403 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.081\n", + "2025-01-12 15:46:34,438 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 50\n", + "2025-01-12 15:46:34,439 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[50] Complete. Time taken: 00:00:52.343\n", + "2025-01-12 15:47:24,391 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[51] Complete. Time taken: 00:00:49.953\n", + "2025-01-12 15:48:13,872 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.008929001167416573\n", + "2025-01-12 15:48:13,872 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[52] Complete. Time taken: 00:00:49.481\n", + "2025-01-12 15:49:03,685 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.008782487362623215\n", + "2025-01-12 15:49:03,685 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[53] Complete. Time taken: 00:00:49.813\n", + "2025-01-12 15:49:54,525 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.008487475104629993\n", + "2025-01-12 15:49:54,525 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[54] Complete. Time taken: 00:00:50.840\n", + "2025-01-12 15:50:44,821 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 54 until 55 epochs\n", + "2025-01-12 15:50:48,030 - INFO - Epoch[55] Metrics -- val_mean_abs_error: 0.0439 \n", + "2025-01-12 15:50:48,030 - INFO - Key metric: val_mean_abs_error best value: 0.0430283285677433 at epoch: 50\n", + "2025-01-12 15:50:48,030 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[55] Complete. Time taken: 00:00:03.209\n", + "2025-01-12 15:50:48,030 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.209\n", + "2025-01-12 15:50:48,065 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 55\n", + "2025-01-12 15:50:48,065 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[55] Complete. Time taken: 00:00:53.540\n", + "2025-01-12 15:51:38,621 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[56] Complete. Time taken: 00:00:50.556\n", + "2025-01-12 15:52:29,348 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[57] Complete. Time taken: 00:00:50.728\n", + "2025-01-12 15:53:19,125 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[58] Complete. Time taken: 00:00:49.777\n", + "2025-01-12 15:54:09,447 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[59] Complete. Time taken: 00:00:50.322\n", + "2025-01-12 15:55:00,218 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 59 until 60 epochs\n", + "2025-01-12 15:55:03,421 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.041947875171899796\n", + "2025-01-12 15:55:03,421 - INFO - Epoch[60] Metrics -- val_mean_abs_error: 0.0419 \n", + "2025-01-12 15:55:03,421 - INFO - Key metric: val_mean_abs_error best value: 0.041947875171899796 at epoch: 60\n", + "2025-01-12 15:55:03,421 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[60] Complete. Time taken: 00:00:03.203\n", + "2025-01-12 15:55:03,421 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.204\n", + "2025-01-12 15:55:03,457 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 60\n", + "2025-01-12 15:55:03,457 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[60] Complete. Time taken: 00:00:54.010\n", + "2025-01-12 15:55:53,564 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[61] Complete. Time taken: 00:00:50.106\n", + "2025-01-12 15:56:43,425 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[62] Complete. Time taken: 00:00:49.861\n", + "2025-01-12 15:57:33,398 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[63] Complete. Time taken: 00:00:49.973\n", + "2025-01-12 15:58:24,324 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[64] Complete. Time taken: 00:00:50.926\n", + "2025-01-12 15:59:14,813 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 64 until 65 epochs\n", + "2025-01-12 15:59:18,066 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.03936021775007248\n", + "2025-01-12 15:59:18,066 - INFO - Epoch[65] Metrics -- val_mean_abs_error: 0.0394 \n", + "2025-01-12 15:59:18,066 - INFO - Key metric: val_mean_abs_error best value: 0.03936021775007248 at epoch: 65\n", + "2025-01-12 15:59:18,066 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[65] Complete. Time taken: 00:00:03.252\n", + "2025-01-12 15:59:18,066 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.253\n", + "2025-01-12 15:59:18,102 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 65\n", + "2025-01-12 15:59:18,102 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[65] Complete. Time taken: 00:00:53.777\n", + "2025-01-12 16:00:08,835 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[66] Complete. Time taken: 00:00:50.733\n", + "2025-01-12 16:00:59,763 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[67] Complete. Time taken: 00:00:50.928\n", + "2025-01-12 16:01:50,445 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[68] Complete. Time taken: 00:00:50.682\n", + "2025-01-12 16:02:40,879 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[69] Complete. Time taken: 00:00:50.434\n", + "2025-01-12 16:03:31,271 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 69 until 70 epochs\n", + "2025-01-12 16:03:34,374 - INFO - Epoch[70] Metrics -- val_mean_abs_error: 0.0419 \n", + "2025-01-12 16:03:34,374 - INFO - Key metric: val_mean_abs_error best value: 0.03936021775007248 at epoch: 65\n", + "2025-01-12 16:03:34,374 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[70] Complete. Time taken: 00:00:03.103\n", + "2025-01-12 16:03:34,374 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.103\n", + "2025-01-12 16:03:34,410 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 70\n", + "2025-01-12 16:03:34,410 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[70] Complete. Time taken: 00:00:53.531\n", + "2025-01-12 16:04:24,720 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[71] Complete. Time taken: 00:00:50.310\n", + "2025-01-12 16:05:16,274 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[72] Complete. Time taken: 00:00:51.554\n", + "2025-01-12 16:06:07,155 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[73] Complete. Time taken: 00:00:50.880\n", + "2025-01-12 16:06:57,143 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[74] Complete. Time taken: 00:00:49.988\n", + "2025-01-12 16:07:47,371 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.008344327099621296\n", + "2025-01-12 16:07:47,371 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 74 until 75 epochs\n", + "2025-01-12 16:07:50,558 - INFO - Epoch[75] Metrics -- val_mean_abs_error: 0.0419 \n", + "2025-01-12 16:07:50,558 - INFO - Key metric: val_mean_abs_error best value: 0.03936021775007248 at epoch: 65\n", + "2025-01-12 16:07:50,558 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[75] Complete. Time taken: 00:00:03.186\n", + "2025-01-12 16:07:50,558 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.187\n", + "2025-01-12 16:07:50,595 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 75\n", + "2025-01-12 16:07:50,595 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[75] Complete. Time taken: 00:00:53.452\n", + "2025-01-12 16:07:50,631 - ignite.engine.engine.SupervisedTrainer - INFO - Train completed, saved final checkpoint: results/output_250112_150340/model_final_iteration=75000.pt\n", + "2025-01-12 16:07:50,631 - ignite.engine.engine.SupervisedTrainer - INFO - Engine run complete. Time taken: 01:04:10.138\n" + ] + } + ], + "source": [ + "# multiple config files need to be specified this way with '' quotes, variable used in command line must be in \"\" quotes\n", + "configs=f\"'{bundle_root}/configs/common.yaml', '{bundle_root}/configs/train.yaml'\"\n", + "output_dir = \"outputs\"\n", + "!PYTHONPATH={bundle_root} python -m monai.bundle run training \\\n", + " --meta_file {bundle_root}/configs/metadata.json \\\n", + " --config_file \"{configs}\" \\\n", + " --logging_file {bundle_root}/configs/logging.conf \\\n", + " --bundle_root {bundle_root} \\\n", + " --dataset_dir {dataset_dir} \\\n", + " --output_dir {output_dir}" + ] + }, + { + "cell_type": "markdown", + "id": "f872fccf-12af-43ef-bdb5-f49bc74119fa", + "metadata": {}, + "source": [ + "### Test the diffusion model" + ] + }, + { + "cell_type": "markdown", + "id": "5030732c-deb5-448a-b575-385bda0fa308", + "metadata": {}, + "source": [ + "The test inference script can then be invoked as such to produce an output tensor saved to the given file with a randomly generated image. The `ckpt_path` value should point to the final checkpoint file created during the above training run, which will be in a subdirectory of `./results`. The training script's default behaviour is to create a new timestamped subdirectory in `./results` for every new run, this can be explicitly set by providing a `output_dir` value on the command line." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "40e6a3e9-3984-44b0-ba9a-5b8d58c7ea2d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2025-01-12 19:11:01,720 - INFO - --- input summary of monai.bundle.scripts.run ---\n", + "2025-01-12 19:11:01,721 - INFO - > config_file: ('./common.yaml',\n", + " './configs/infer.yaml')\n", + "2025-01-12 19:11:01,721 - INFO - > meta_file: './configs/metadata.json'\n", + "2025-01-12 19:11:01,721 - INFO - > run_id: 'testing'\n", + "2025-01-12 19:11:01,721 - INFO - > ckpt_path: './results/output_250112_150340/model_final_iteration=75000.pt'\n", + "2025-01-12 19:11:01,721 - INFO - > bundle_root: '/model-zoo/models/mednist_ddpm'\n", + "2025-01-12 19:11:01,721 - INFO - > out_file: 'test.pt'\n", + "2025-01-12 19:11:01,721 - INFO - ---\n", + "\n", + "\n", + "2025-01-12 19:11:01,721 - INFO - Setting logging properties based on config: ./configs/logging.conf.\n", + ":1: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n", + "100%|██████████████████████████████████████| 1000/1000 [00:08<00:00, 112.66it/s]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_2473027/522477091.py:5: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n", + " test = torch.load(\"test.pt\", map_location=\"cpu\")\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "

" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "configs=f\"'{bundle_root}/configs/common.yaml', '{bundle_root}/configs/infer.yaml'\"\n", + "\n", + "!PYTHONPATH={bundle_root} python -m monai.bundle run testing \\\n", + " --meta_file {bundle_root}/configs/metadata.json \\\n", + " --config_file \"{configs}\" \\\n", + " --ckpt_path ./results/{output_dir}/model_final_iteration=75000.pt \\\n", + " --bundle_root {bundle_root} \\\n", + " --out_file test.pt\n", + "\n", + "test = torch.load(\"test.pt\", map_location=\"cpu\")\n", + "\n", + "plt.imshow(test[0, 0], vmin=0, vmax=1, cmap=\"gray\")" + ] + }, + { + "cell_type": "markdown", + "id": "f581c36e-4033-4005-8969-76205470588e", + "metadata": {}, + "source": [ + "The same can be done by creating the parser object, filling in its configuration, then resolving the Python objects from the constructed bundle data:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "cf8438b3-4c7d-48c4-bb41-ed7def73753f", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [00:08<00:00, 113.56it/s]\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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t/jzzjvvFJe55pprshkzZmRPP/10tn379qyxsTFrbGxMuNV+N910U7Z58+Zs165d2S9+8YvspptuyioqKrL//M//zLKsPPYx5PdTcFlWHvt54403Zs8880y2a9eu7Oc//3nW1NSUnXzyydm+ffuyLCuPfcyyLHvuueeysWPHZt/4xjeynTt3Zt///vezE044IfvXf/3X4jLH+zOoZAegLMuyb3/729mMGTOy6urq7Pzzz8+2bt2aepNG5Kc//WkmadDPsmXLsix7NwZ58803Z/X19VmhUMguvvjibMeOHWk32im0f5KydevWFZc5ePBg9rd/+7fZiSeemJ1wwgnZn//5n2d79+5Nt9HH4G/+5m+ymTNnZtXV1dkpp5ySXXzxxcXBJ8vKYx9Djh6AymE/r7jiimzKlClZdXV19gd/8AfZFVdckb3++uvF18thH9/z2GOPZWeddVZWKBSyOXPmZPfff/+A14/3ZxDzAQEAkijJZ0AAgPLHAAQASIIBCACQBAMQACAJBiAAQBIMQACAJBiAAABJMAABAJJgAAIAJMEABABIggEIAJDE/wP0V4VDuW3pfwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import sys\n", + "\n", + "sys.path.append(bundle_root) # make sure we load the script files we need\n", + "\n", + "# configure the parser from the bundle's information\n", + "cp = ConfigParser()\n", + "cp.read_meta(f\"{bundle_root}/configs/metadata.json\")\n", + "cp.read_config([f\"{bundle_root}/configs/common.yaml\", f\"{bundle_root}/configs/infer.yaml\"])\n", + "cp[\"bundle_root\"] = bundle_root\n", + "cp[\"ckpt_path\"] = f\"./results/{output_dir}/model_final_iteration=75000.pt\"\n", + "\n", + "cp.get_parsed_content(\"load_state\") # load the saved state from the checkpoint just be resolving this value\n", + "\n", + "device = cp.get_parsed_content(\"device\") # device used by the bundle\n", + "sample = cp.get_parsed_content(\"sample\") # test sampling function\n", + "\n", + "image_dim = cp[\"image_dim\"] # get the stored dimension value, no need to resolve anything\n", + "\n", + "noise = torch.rand(1, 1, image_dim, image_dim).to(device) # or cp.get_parsed_content(\"noise\")\n", + "\n", + "test = sample(noise)\n", + "\n", + "plt.imshow(test[0, 0].cpu(), vmin=0, vmax=1, cmap=\"gray\")" + ] + }, + { + "cell_type": "markdown", + "id": "2feab4e5-2745-4d35-9eec-a2bb8340cf51", + "metadata": {}, + "source": [ + "Multi-GPU can be enabled by including the `train_multigpu.yaml` configuration file:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "173cda1c-ac90-410f-b34d-b6cbb0044c7a", + "metadata": {}, + "outputs": [], + "source": [ + "configs=f\"'{bundle_root}/configs/common.yaml', '{bundle_root}/configs/train.yaml', '{bundle_root}/configs/train_multigpu.yaml'\"\n", + "\n", + "!PYTHONPATH={bundle_root} torchrun --standalone --nnodes=1 --nproc_per_node=2 -m monai.bundle run training \\\n", + " --meta_file {bundle_root}/configs/metadata.json \\\n", + " --config_file \"{configs}\" \\\n", + " --logging_file {bundle_root}/configs/logging.conf \\\n", + " --bundle_root {bundle_root} \\\n", + " --dataset_dir {dataset_dir} \\\n", + " --output_dir {output_dir} " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cb719023-8250-43c4-ab10-911829332498", + "metadata": {}, + "outputs": [], + "source": [ + "if directory is None:\n", + " shutil.rmtree(dataset_dir)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/models/mednist_ddpm/docs/README.md b/models/mednist_ddpm/docs/README.md new file mode 100644 index 00000000..a63c5519 --- /dev/null +++ b/models/mednist_ddpm/docs/README.md @@ -0,0 +1,11 @@ + +# MedNIST DDPM Example Bundle + +This implements roughly equivalent code to the "Denoising Diffusion Probabilistic Models with MedNIST Dataset" +example notebook. This includes scripts for training with single or multiple GPUs and a visualisation notebook. + + +The files included here demonstrate how to use the bundle: + * [2d_ddpm_bundle_tutorial.ipynb](./2d_ddpm_bundle_tutorial.ipynb) - demonstrates command line and in-code invocation of the bundle's training and inference scripts + * [sub_train.sh](sub_train.sh) - SLURM submission script example for training + * [sub_train_multigpu.sh](sub_train_multigpu.sh) - SLURM submission script example for training with multiple GPUs diff --git a/models/mednist_ddpm/docs/sub_train.sh b/models/mednist_ddpm/docs/sub_train.sh new file mode 100755 index 00000000..8d566d22 --- /dev/null +++ b/models/mednist_ddpm/docs/sub_train.sh @@ -0,0 +1,31 @@ +#! /bin/bash +#SBATCH --nodes=1 +#SBATCH -J mednist_train +#SBATCH -c 4 +#SBATCH --gres=gpu:1 +#SBATCH --time=2:00:00 +#SBATCH -p small + +set -v + +# change this if run submitted from a different directory +export BUNDLE="$(pwd)/.." + +# change this to load a checkpoint instead of started from scratch +CKPT=none + +CONFIG="'$BUNDLE/configs/common.yaml', '$BUNDLE/configs/train.yaml'" + +# change this to point to where MedNIST is located +DATASET="$(pwd)" + +# it's useful to include the configuration in the log file +cat "$BUNDLE/configs/common.yaml" +cat "$BUNDLE/configs/train.yaml" + +python -m monai.bundle run training \ + --meta_file "$BUNDLE/configs/metadata.json" \ + --config_file "$CONFIG" \ + --logging_file "$BUNDLE/configs/logging.conf" \ + --bundle_root "$BUNDLE" \ + --dataset_dir "$DATASET" diff --git a/models/mednist_ddpm/docs/sub_train_multigpu.sh b/models/mednist_ddpm/docs/sub_train_multigpu.sh new file mode 100644 index 00000000..8ed26ddc --- /dev/null +++ b/models/mednist_ddpm/docs/sub_train_multigpu.sh @@ -0,0 +1,33 @@ +#! /bin/bash +#SBATCH --nodes=1 +#SBATCH -J mednist_train +#SBATCH -c 4 +#SBATCH --gres=gpu:2 +#SBATCH --time=2:00:00 +#SBATCH -p big + +set -v + +# change this if run submitted from a different directory +export BUNDLE="$(pwd)/.." + +# change this to load a checkpoint instead of started from scratch +CKPT=none + +CONFIG="'$BUNDLE/configs/common.yaml', '$BUNDLE/configs/train.yaml', '$BUNDLE/configs/train_multigpu.yaml'" + +# change this to point to where MedNIST is located +DATASET="$(pwd)" + +# it's useful to include the configuration in the log file +cat "$BUNDLE/configs/common.yaml" +cat "$BUNDLE/configs/train.yaml" +cat "$BUNDLE/configs/train_multigpu.yaml" + +# remember to change arguments to match how many nodes and GPUs you have +torchrun --standalone --nnodes=1 --nproc_per_node=2 -m monai.bundle run training \ + --meta_file "$BUNDLE/configs/metadata.json" \ + --config_file "$CONFIG" \ + --logging_file "$BUNDLE/configs/logging.conf" \ + --bundle_root "$BUNDLE" \ + --dataset_dir "$DATASET" diff --git a/models/mednist_ddpm/docs/test.pt b/models/mednist_ddpm/docs/test.pt new file mode 100644 index 0000000000000000000000000000000000000000..39b12ae12b1677adf672bb212cf906474ba0fb41 GIT binary patch literal 17485 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 literal 0 HcmV?d00001 diff --git a/models/mednist_ddpm/scripts/__init__.py b/models/mednist_ddpm/scripts/__init__.py new file mode 100644 index 00000000..c44e4a34 --- /dev/null +++ b/models/mednist_ddpm/scripts/__init__.py @@ -0,0 +1,12 @@ +from __future__ import annotations + + +def inv_metric_cmp_fn(current_metric: float, prev_best: float) -> bool: + """ + This inverts comparison for those metrics which reduce like loss values, such that the lower one is better. + + Args: + current_metric: metric value of current round computation. + prev_best: the best metric value of previous rounds to compare with. + """ + return current_metric < prev_best From 1d93cc07e2582a13e7d8da8c6ce3cc3175656dc2 Mon Sep 17 00:00:00 2001 From: Virginia Date: Mon, 13 Jan 2025 17:18:49 +0000 Subject: [PATCH 11/33] Removal of absolute path --- models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb b/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb index 094d28e7..79315d88 100644 --- a/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb +++ b/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb @@ -31,7 +31,7 @@ "Pytorch version: 2.5.1+cu124\n", "MONAI flags: HAS_EXT = False, USE_COMPILED = False, USE_META_DICT = False\n", "MONAI rev id: 46a5272196a6c2590ca2589029eed8e4d56ff008\n", - "MONAI __file__: /media//BigCrumb/POSTDOC_FEDERATED_LEARNING/PRODIGY_PROJECT/monai-model-zoo/venv/lib/python3.10/site-packages/monai/__init__.py\n", + "MONAI __file__: /venv/lib/python3.10/site-packages/monai/__init__.py\n", "\n", "Optional dependencies:\n", "Pytorch Ignite version: 0.5.1\n", From b62b4eb285f56c661a634de858a7caaf64000719 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 13 Jan 2025 17:23:06 +0000 Subject: [PATCH 12/33] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- models/mednist_ddpm/docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/mednist_ddpm/docs/README.md b/models/mednist_ddpm/docs/README.md index a63c5519..b8fbc440 100644 --- a/models/mednist_ddpm/docs/README.md +++ b/models/mednist_ddpm/docs/README.md @@ -1,7 +1,7 @@ # MedNIST DDPM Example Bundle -This implements roughly equivalent code to the "Denoising Diffusion Probabilistic Models with MedNIST Dataset" +This implements roughly equivalent code to the "Denoising Diffusion Probabilistic Models with MedNIST Dataset" example notebook. This includes scripts for training with single or multiple GPUs and a visualisation notebook. From 2e82076680206961e26ddc264b967b45de678cc4 Mon Sep 17 00:00:00 2001 From: virginia Date: Tue, 14 Jan 2025 08:23:50 +0000 Subject: [PATCH 13/33] Run autofix --- .../test_cxr_image_synthesis_latent_diffusion_model.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ci/unit_tests/test_cxr_image_synthesis_latent_diffusion_model.py b/ci/unit_tests/test_cxr_image_synthesis_latent_diffusion_model.py index 44610eff..83f39293 100644 --- a/ci/unit_tests/test_cxr_image_synthesis_latent_diffusion_model.py +++ b/ci/unit_tests/test_cxr_image_synthesis_latent_diffusion_model.py @@ -13,9 +13,10 @@ import shutil import tempfile import unittest -from parameterized import parameterized + import numpy as np from monai.bundle import ConfigWorkflow +from parameterized import parameterized from utils import check_workflow TEST_CASE_1 = [ # inference @@ -26,6 +27,7 @@ } ] + class TestCXRLatentDiffusionInference(unittest.TestCase): @parameterized.expand([TEST_CASE_1]) def test_inference(self, params): @@ -40,6 +42,7 @@ def test_inference(self, params): ) check_workflow(trainer, check_properties=True) + if __name__ == "__main__": loader = unittest.TestLoader() unittest.main(testLoader=loader) From 8a1b7da983be98713e973afb08840cca6d985e3c Mon Sep 17 00:00:00 2001 From: Virginia Date: Tue, 14 Jan 2025 08:34:50 +0000 Subject: [PATCH 14/33] Modify script > inv function by operator.lt in train.yaml. Add LICENSE file. --- models/mednist_ddpm/LICENSE | 21 +++++++++++++++++++++ models/mednist_ddpm/configs/train.yaml | 7 +++++-- 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 models/mednist_ddpm/LICENSE diff --git a/models/mednist_ddpm/LICENSE b/models/mednist_ddpm/LICENSE new file mode 100644 index 00000000..5a2a4c0f --- /dev/null +++ b/models/mednist_ddpm/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 MONAI Consortium + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/models/mednist_ddpm/configs/train.yaml b/models/mednist_ddpm/configs/train.yaml index 549ff14b..5133dc5c 100644 --- a/models/mednist_ddpm/configs/train.yaml +++ b/models/mednist_ddpm/configs/train.yaml @@ -1,5 +1,8 @@ # This defines the training script for the network +imports: +- $import operator + # choose a new directory for every run output_dir: $datetime.datetime.now().strftime('./results/output_%y%m%d_%H%M%S') dataset_dir: ./data @@ -112,7 +115,7 @@ evaluator: val_mean_abs_error: _target_: MeanAbsoluteError output_transform: $monai.handlers.from_engine([@pred, @label]) - metric_cmp_fn: '$scripts.inv_metric_cmp_fn' + metric_cmp_fn: '$operator.lt' val_handlers: '$list(filter(bool, @val_handlers))' handlers: @@ -148,7 +151,7 @@ trainer: train_acc: _target_: MeanSquaredError output_transform: $monai.handlers.from_engine([@pred, @label]) - metric_cmp_fn: '$scripts.inv_metric_cmp_fn' + metric_cmp_fn: '$operator.lt' train_handlers: '$list(filter(bool, @handlers))' amp: '@use_amp' From 3c33a876cfdf3ae17a3a3b28bd4e8feccc2d968b Mon Sep 17 00:00:00 2001 From: Virginia Date: Wed, 15 Jan 2025 10:03:34 +0000 Subject: [PATCH 15/33] Change of autoencoder.pth to autoencoder.pt on scripts. Modification of diffusion_model.pt name to model.pt to go through the verify_bundle Python function. --- .../configs/inference.json | 4 ++-- .../large_files.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json b/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json index b36315fb..e186b319 100644 --- a/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json +++ b/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json @@ -49,7 +49,7 @@ "with_decoder_nonlocal_attn": false }, "network_def": "@autoencoder_def", - "load_autoencoder_path": "$@model_dir + '/autoencoder.pth'", + "load_autoencoder_path": "$@model_dir + '/autoencoder.pt'", "load_autoencoder_func": "$@autoencoder_def.load_old_state_dict if bool(@load_old) else @autoencoder_def.load_state_dict", "load_autoencoder": "$@load_autoencoder_func(torch.load(@load_autoencoder_path))", "autoencoder": "$@autoencoder_def.to(@device)", @@ -81,7 +81,7 @@ "transformer_num_layers": 1, "cross_attention_dim": 1024 }, - "load_diffusion_path": "$@model_dir + '/diffusion_model.pth'", + "load_diffusion_path": "$@model_dir + '/model.pt'", "load_diffusion_func": "$@diffusion_def.load_old_state_dict if bool(@load_old) else @diffusion_def.load_state_dict", "load_diffusion": "$@load_diffusion_func(torch.load(@load_diffusion_path))", "diffusion": "$@diffusion_def.to(@device)", diff --git a/models/cxr_image_synthesis_latent_diffusion_model/large_files.yml b/models/cxr_image_synthesis_latent_diffusion_model/large_files.yml index 7691a875..716abf71 100644 --- a/models/cxr_image_synthesis_latent_diffusion_model/large_files.yml +++ b/models/cxr_image_synthesis_latent_diffusion_model/large_files.yml @@ -3,7 +3,7 @@ large_files: url: "https://drive.google.com/uc?export=download&id=1paDN1m-Q_Oy8d_BanPkRTi3RlNB_Sv_h" hash_val: "7f579cb789597db7bb5de1488f54bc6c" hash_type: "md5" - - path: "models/diffusion_model.pt" + - path: "models/model.pt" url: "https://drive.google.com/uc?export=download&id=1CjcmiPu5_QWr-f7wDJsXrCCcVeczneGT" hash_val: "c3fd4c8e38cd1d7250a8903cca935823" hash_type: "md5" From cc9cb53f30135a41eb180a43a1bd8239d1602239 Mon Sep 17 00:00:00 2001 From: rd24_lihe055 Date: Wed, 15 Jan 2025 10:43:07 +0000 Subject: [PATCH 16/33] Start migrating brain_image_synthesis --- .gitignore | 3 + .../LICENSE | 201 ++++++++++++++++++ .../configs/inference.json | 104 +++++++++ .../configs/logging.conf | 21 ++ .../configs/metadata.json | 72 +++++++ .../docs/README.md | 63 ++++++ .../docs/figure_1.png | Bin 0 -> 112567 bytes .../large_files.yml | 9 + .../scripts/__init__.py | 0 .../scripts/sampler.py | 45 ++++ .../scripts/saver.py | 29 +++ 11 files changed, 547 insertions(+) create mode 100644 models/brain_image_synthesis_latent_diffusion_model/LICENSE create mode 100644 models/brain_image_synthesis_latent_diffusion_model/configs/inference.json create mode 100644 models/brain_image_synthesis_latent_diffusion_model/configs/logging.conf create mode 100644 models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json create mode 100644 models/brain_image_synthesis_latent_diffusion_model/docs/README.md create mode 100644 models/brain_image_synthesis_latent_diffusion_model/docs/figure_1.png create mode 100644 models/brain_image_synthesis_latent_diffusion_model/large_files.yml create mode 100644 models/brain_image_synthesis_latent_diffusion_model/scripts/__init__.py create mode 100644 models/brain_image_synthesis_latent_diffusion_model/scripts/sampler.py create mode 100644 models/brain_image_synthesis_latent_diffusion_model/scripts/saver.py diff --git a/.gitignore b/.gitignore index fedd499d..70754fb1 100644 --- a/.gitignore +++ b/.gitignore @@ -129,3 +129,6 @@ temp/ # VSCode .vscode/ *.zip +models/brain_image_synthesis_latent_diffusion_model/models/* +models/brain_image_synthesis_latent_diffusion_model/models/* +models/brain_image_synthesis_latent_diffusion_model/output/* diff --git a/models/brain_image_synthesis_latent_diffusion_model/LICENSE b/models/brain_image_synthesis_latent_diffusion_model/LICENSE new file mode 100644 index 00000000..261eeb9e --- /dev/null +++ b/models/brain_image_synthesis_latent_diffusion_model/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json b/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json new file mode 100644 index 00000000..5e310dfa --- /dev/null +++ b/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json @@ -0,0 +1,104 @@ +{ + "imports": [ + "$import torch", + "$from datetime import datetime", + "$from pathlib import Path" + ], + "bundle_root": ".", + "model_dir": "$@bundle_root + '/models'", + "output_dir": "$@bundle_root + '/output'", + "create_output_dir": "$Path(@output_dir).mkdir(exist_ok=True)", + "gender": 0.0, + "age": 0.1, + "ventricular_vol": 0.2, + "brain_vol": 0.4, + "device": "$torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')", + "conditioning": "$torch.tensor([[@gender, @age, @ventricular_vol, @brain_vol]]).to(@device).unsqueeze(1)", + "out_file": "$datetime.now().strftime('sample_%H%M%S_%d%m%Y') + '_' + str(@gender) + '_' + str(@age) + '_' + str(@ventricular_vol) + '_' + str(@brain_vol)", + "autoencoder_def": { + "_target_": "generative.networks.nets.AutoencoderKL", + "spatial_dims": 3, + "in_channels": 1, + "out_channels": 1, + "latent_channels": 3, + "num_channels": [ + 64, + 128, + 128, + 128 + ], + "num_res_blocks": 2, + "norm_num_groups": 32, + "norm_eps": 1e-06, + "attention_levels": [ + false, + false, + false, + false + ], + "with_encoder_nonlocal_attn": false, + "with_decoder_nonlocal_attn": false + }, + "load_autoencoder_path": "$@model_dir + '/autoencoder.pth'", + "load_autoencoder": "$@autoencoder_def.load_state_dict(torch.load(@load_autoencoder_path))", + "autoencoder": "$@autoencoder_def.to(@device)", + "diffusion_def": { + "_target_": "generative.networks.nets.DiffusionModelUNet", + "spatial_dims": 3, + "in_channels": 7, + "out_channels": 3, + "num_channels": [ + 256, + 512, + 768 + ], + "num_res_blocks": 2, + "attention_levels": [ + false, + true, + true + ], + "norm_num_groups": 32, + "norm_eps": 1e-06, + "resblock_updown": true, + "num_head_channels": [ + 0, + 512, + 768 + ], + "with_conditioning": true, + "transformer_num_layers": 1, + "cross_attention_dim": 4, + "upcast_attention": true, + "use_flash_attention": false + }, + "load_diffusion_path": "$@model_dir + '/diffusion_model.pth'", + "load_diffusion": "$@diffusion_def.load_state_dict(torch.load(@load_diffusion_path))", + "diffusion": "$@diffusion_def.to(@device)", + "scheduler": { + "_target_": "generative.networks.schedulers.DDIMScheduler", + "_requires_": [ + "@load_diffusion", + "@load_autoencoder" + ], + "beta_start": 0.0015, + "beta_end": 0.0205, + "num_train_timesteps": 1000, + "schedule": "scaled_linear_beta", + "clip_sample": false + }, + "noise": "$torch.randn((1, 3, 20, 28, 20)).to(@device)", + "set_timesteps": "$@scheduler.set_timesteps(num_inference_steps=50)", + "sampler": { + "_target_": "scripts.sampler.Sampler", + "_requires_": "@set_timesteps" + }, + "sample": "$@sampler.sampling_fn(@noise, @autoencoder, @diffusion, @scheduler, @conditioning)", + "saver": { + "_target_": "scripts.saver.NiftiSaver", + "_requires_": "@create_output_dir", + "output_dir": "@output_dir" + }, + "save_nii": "$@saver.save(@sample, @out_file)", + "save": "$torch.save(@sample, @output_dir + '/' + @out_file + '.pt')" +} diff --git a/models/brain_image_synthesis_latent_diffusion_model/configs/logging.conf b/models/brain_image_synthesis_latent_diffusion_model/configs/logging.conf new file mode 100644 index 00000000..91c1a21c --- /dev/null +++ b/models/brain_image_synthesis_latent_diffusion_model/configs/logging.conf @@ -0,0 +1,21 @@ +[loggers] +keys=root + +[handlers] +keys=consoleHandler + +[formatters] +keys=fullFormatter + +[logger_root] +level=INFO +handlers=consoleHandler + +[handler_consoleHandler] +class=StreamHandler +level=INFO +formatter=fullFormatter +args=(sys.stdout,) + +[formatter_fullFormatter] +format=%(asctime)s - %(name)s - %(levelname)s - %(message)s diff --git a/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json b/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json new file mode 100644 index 00000000..4310640e --- /dev/null +++ b/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json @@ -0,0 +1,72 @@ +{ + "schema": "https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/meta_schema_20220324.json", + "version": "1.0.0", + "changelog": { + "1.0.8": "Initial release" + }, + "monai_version": "1.1.0", + "pytorch_version": "1.13.0", + "numpy_version": "1.22.4", + "optional_packages_version": { + "nibabel": "4.0.1", + "generative": "0.1.0" + }, + "task": "Brain image synthesis", + "description": "A generative model for creating high-resolution 3D brain MRI based on UK Biobank", + "authors": "Walter H. L. Pinaya, Petru-Daniel Tudosiu, Jessica Dafflon, Pedro F Da Costa, Virginia Fernandez, Parashkev Nachev, Sebastien Ourselin, and M. Jorge Cardoso", + "copyright": "Copyright (c) MONAI Consortium", + "data_source": "https://www.ukbiobank.ac.uk/", + "data_type": "nibabel", + "image_classes": "T1w head MRI with 1x1x1 mm voxel size", + "eval_metrics": { + "fid": 0.0076, + "msssim": 0.6555, + "4gmsssim": 0.3883 + }, + "intended_use": "This is a research tool/prototype and not to be used clinically", + "references": [ + "Pinaya, Walter HL, et al. \"Brain imaging generation with latent diffusion models.\" MICCAI Workshop on Deep Generative Models. Springer, Cham, 2022." + ], + "network_data_format": { + "inputs": { + "image": { + "type": "tabular", + "num_channels": 1, + "dtype": "float32", + "value_range": [ + 0, + 1 + ], + "is_patch_data": false, + "channel_def": { + "0": "Gender", + "1": "Age", + "2": "Ventricular volume", + "3": "Brain volume" + } + } + }, + "outputs": { + "pred": { + "type": "image", + "format": "magnitude", + "modality": "MR", + "num_channels": 1, + "spatial_shape": [ + 160, + 224, + 160 + ], + "dtype": "float32", + "value_range": [ + 0, + 1 + ], + "is_patch_data": false, + "channel_def": { + "0": "T1w" + } + } + } + } +} diff --git a/models/brain_image_synthesis_latent_diffusion_model/docs/README.md b/models/brain_image_synthesis_latent_diffusion_model/docs/README.md new file mode 100644 index 00000000..7082bf6a --- /dev/null +++ b/models/brain_image_synthesis_latent_diffusion_model/docs/README.md @@ -0,0 +1,63 @@ +# Brain Imaging Generation with Latent Diffusion Models + +### **Authors** + +Walter H. L. Pinaya, Petru-Daniel Tudosiu, Jessica Dafflon, Pedro F Da Costa, Virginia Fernandez, Parashkev Nachev, +Sebastien Ourselin, and M. Jorge Cardoso + +### **Tags** +Synthetic data, Latent Diffusion Model, Generative model, Brain Imaging + +## **Model Description** +This model is trained using the Latent Diffusion Model architecture [1] and is used for the synthesis of conditioned 3D +brain MRI data. The model is divided into two parts: an autoencoder with a KL-regularisation model that compresses data +into a latent space and a diffusion model that learns to generate conditioned synthetic latent representations. This +model is conditioned on age, sex, the volume of ventricular cerebrospinal fluid, and brain volume normalised for head size. + +![](./figure_1.png)
+

+Figure 1 - Synthetic image from the model.

+ + +## **Data** +The model was trained on brain data from 31,740 participants from the UK Biobank [2]. We used high-resolution 3D T1w MRI with voxel size of 1mm3, resulting in volumes with 160 x 224 x 160 voxels + +#### **Preprocessing** +We used UniRes [3] to perform a rigid body registration to a common MNI space for image pre-processing. The voxel intensity was normalised to be between [0, 1]. + +## **Performance** +This model achieves the following results on UK Biobank: an FID of 0.0076, an MS-SSIM of 0.6555, and a 4-G-R-SSIM of 0.3883. + +Please, check Table 1 of the original paper for more details regarding evaluation results. + + +## **commands example** +Execute sampling: +``` +export PYTHONPATH=$PYTHONPATH:"" +$ python -m monai.bundle run save_nii --config_file configs/inference.json --gender 1.0 --age 0.7 --ventricular_vol 0.7 --brain_vol 0.5 +``` +All conditioning are expected to have values between 0 and 1 + +## **Citation Info** + +``` +@inproceedings{pinaya2022brain, + title={Brain imaging generation with latent diffusion models}, + author={Pinaya, Walter HL and Tudosiu, Petru-Daniel and Dafflon, Jessica and Da Costa, Pedro F and Fernandez, Virginia and Nachev, Parashkev and Ourselin, Sebastien and Cardoso, M Jorge}, + booktitle={MICCAI Workshop on Deep Generative Models}, + pages={117--126}, + year={2022}, + organization={Springer} +} +``` + +## **References** + +Example: + +[1] Pinaya, Walter HL, et al. "Brain imaging generation with latent diffusion models." MICCAI Workshop on Deep Generative Models. Springer, Cham, 2022. + +[2] Sudlow, Cathie, et al. "UK biobank: an open access resource for identifying the causes of a wide range of complex diseases of middle and old age." PLoS medicine 12.3 (2015): e1001779. + +[3] Brudfors, Mikael, et al. "MRI super-resolution using multi-channel total variation." Annual Conference on Medical Image Understanding and Analysis. Springer, Cham, 2018. diff --git a/models/brain_image_synthesis_latent_diffusion_model/docs/figure_1.png b/models/brain_image_synthesis_latent_diffusion_model/docs/figure_1.png new file mode 100644 index 0000000000000000000000000000000000000000..b3bed96a2184c96a4170de448fc57c0596ace9ed GIT binary patch literal 112567 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 EAMnCB^Z)<= literal 0 HcmV?d00001 diff --git a/models/brain_image_synthesis_latent_diffusion_model/large_files.yml b/models/brain_image_synthesis_latent_diffusion_model/large_files.yml new file mode 100644 index 00000000..2083c0d8 --- /dev/null +++ b/models/brain_image_synthesis_latent_diffusion_model/large_files.yml @@ -0,0 +1,9 @@ +large_files: + - path: "models/autoencoder.pth" + url: "https://drive.google.com/uc?export=download&id=1CZHwxHJWybOsDavipD0EorDPOo_mzNeX" + hash_val: "" + hash_type: "" + - path: "models/diffusion_model.pth" + url: "https://drive.google.com/uc?export=download&id=1XO-ak93ZuOcGTCpgRtqgIeZq3dG5ExN6" + hash_val: "" + hash_type: "" diff --git a/models/brain_image_synthesis_latent_diffusion_model/scripts/__init__.py b/models/brain_image_synthesis_latent_diffusion_model/scripts/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/models/brain_image_synthesis_latent_diffusion_model/scripts/sampler.py b/models/brain_image_synthesis_latent_diffusion_model/scripts/sampler.py new file mode 100644 index 00000000..3058c470 --- /dev/null +++ b/models/brain_image_synthesis_latent_diffusion_model/scripts/sampler.py @@ -0,0 +1,45 @@ +from __future__ import annotations + +import torch +import torch.nn as nn +from monai.utils import optional_import +from torch.cuda.amp import autocast + +tqdm, has_tqdm = optional_import("tqdm", name="tqdm") + + +class Sampler: + def __init__(self) -> None: + super().__init__() + + @torch.no_grad() + def sampling_fn( + self, + input_noise: torch.Tensor, + autoencoder_model: nn.Module, + diffusion_model: nn.Module, + scheduler: nn.Module, + conditioning: torch.Tensor, + ) -> torch.Tensor: + if has_tqdm: + progress_bar = tqdm(scheduler.timesteps) + else: + progress_bar = iter(scheduler.timesteps) + + image = input_noise + cond_concat = conditioning.squeeze(1).unsqueeze(-1).unsqueeze(-1).unsqueeze(-1) + cond_concat = cond_concat.expand(list(cond_concat.shape[0:2]) + list(input_noise.shape[2:])) + for t in progress_bar: + with torch.no_grad(): + model_output = diffusion_model( + torch.cat((image, cond_concat), dim=1), + timesteps=torch.Tensor((t,)).to(input_noise.device).long(), + context=conditioning, + ) + image, _ = scheduler.step(model_output, t, image) + + with torch.no_grad(): + with autocast(): + sample = autoencoder_model.decode_stage_2_outputs(image) + + return sample diff --git a/models/brain_image_synthesis_latent_diffusion_model/scripts/saver.py b/models/brain_image_synthesis_latent_diffusion_model/scripts/saver.py new file mode 100644 index 00000000..de882df0 --- /dev/null +++ b/models/brain_image_synthesis_latent_diffusion_model/scripts/saver.py @@ -0,0 +1,29 @@ +from __future__ import annotations + +import nibabel as nib +import numpy as np +import torch + + +class NiftiSaver: + def __init__(self, output_dir: str) -> None: + super().__init__() + self.output_dir = output_dir + self.affine = np.array( + [ + [-1.0, 0.0, 0.0, 96.48149872], + [0.0, 1.0, 0.0, -141.47715759], + [0.0, 0.0, 1.0, -156.55375671], + [0.0, 0.0, 0.0, 1.0], + ] + ) + + def save(self, image_data: torch.Tensor, file_name: str) -> None: + image_data = image_data.cpu().numpy() + image_data = image_data[0, 0, 5:-5, 5:-5, :-15] + image_data = (image_data - image_data.min()) / (image_data.max() - image_data.min()) + image_data = (image_data * 255).astype(np.uint8) + + empty_header = nib.Nifti1Header() + sample_nii = nib.Nifti1Image(image_data, self.affine, empty_header) + nib.save(sample_nii, f"{str(self.output_dir)}/{file_name}.nii.gz") From 4fb1183f0c04702833d00836e816f04d6933f82d Mon Sep 17 00:00:00 2001 From: rd24_lihe055 Date: Wed, 15 Jan 2025 12:14:50 +0000 Subject: [PATCH 17/33] Updates main configurations and documentations --- .../configs/inference.json | 37 +++++++++++-------- .../configs/metadata.json | 9 ++--- .../docs/README.md | 2 +- .../large_files.yml | 16 ++++---- 4 files changed, 35 insertions(+), 29 deletions(-) diff --git a/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json b/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json index 5e310dfa..3a30b518 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json +++ b/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json @@ -1,10 +1,16 @@ { + "_mode_": "debug", "imports": [ "$import torch", "$from datetime import datetime", "$from pathlib import Path" ], "bundle_root": ".", + "dataset_dir": "", + "dataset": "", + "evaluator": "", + "inferer": "", + "load_old": 1, "model_dir": "$@bundle_root + '/models'", "output_dir": "$@bundle_root + '/output'", "create_output_dir": "$Path(@output_dir).mkdir(exist_ok=True)", @@ -16,7 +22,7 @@ "conditioning": "$torch.tensor([[@gender, @age, @ventricular_vol, @brain_vol]]).to(@device).unsqueeze(1)", "out_file": "$datetime.now().strftime('sample_%H%M%S_%d%m%Y') + '_' + str(@gender) + '_' + str(@age) + '_' + str(@ventricular_vol) + '_' + str(@brain_vol)", "autoencoder_def": { - "_target_": "generative.networks.nets.AutoencoderKL", + "_target_": "monai.networks.nets.AutoencoderKL", "spatial_dims": 3, "in_channels": 1, "out_channels": 1, @@ -39,15 +45,17 @@ "with_encoder_nonlocal_attn": false, "with_decoder_nonlocal_attn": false }, - "load_autoencoder_path": "$@model_dir + '/autoencoder.pth'", - "load_autoencoder": "$@autoencoder_def.load_state_dict(torch.load(@load_autoencoder_path))", + "network_def": "@autoencoder_def", + "load_autoencoder_path": "$@model_dir + '/autoencoder.pt'", + "load_autoencoder_func": "$@autoencoder_def.load_old_state_dict if bool(@load_old) else @autoencoder_def.load_state_dict", + "load_autoencoder": "$@load_autoencoder_func(torch.load(@load_autoencoder_path))", "autoencoder": "$@autoencoder_def.to(@device)", "diffusion_def": { - "_target_": "generative.networks.nets.DiffusionModelUNet", - "spatial_dims": 3, - "in_channels": 7, + "_target_": "monai.networks.nets.DiffusionModelUNet", + "spatial_dims": 2, + "in_channels": 3, "out_channels": 3, - "num_channels": [ + "channels": [ 256, 512, 768 @@ -60,7 +68,7 @@ ], "norm_num_groups": 32, "norm_eps": 1e-06, - "resblock_updown": true, + "resblock_updown": false, "num_head_channels": [ 0, 512, @@ -68,15 +76,14 @@ ], "with_conditioning": true, "transformer_num_layers": 1, - "cross_attention_dim": 4, - "upcast_attention": true, - "use_flash_attention": false + "cross_attention_dim": 1024 }, - "load_diffusion_path": "$@model_dir + '/diffusion_model.pth'", - "load_diffusion": "$@diffusion_def.load_state_dict(torch.load(@load_diffusion_path))", + "load_diffusion_path": "$@model_dir + '/model.pt'", + "load_diffusion_func": "$@diffusion_def.load_old_state_dict if bool(@load_old) else @diffusion_def.load_state_dict", + "load_diffusion": "$@load_diffusion_func(torch.load(@load_diffusion_path))", "diffusion": "$@diffusion_def.to(@device)", "scheduler": { - "_target_": "generative.networks.schedulers.DDIMScheduler", + "_target_": "monai.networks.schedulers.DDIMScheduler", "_requires_": [ "@load_diffusion", "@load_autoencoder" @@ -99,6 +106,6 @@ "_requires_": "@create_output_dir", "output_dir": "@output_dir" }, - "save_nii": "$@saver.save(@sample, @out_file)", + "run": "$@saver.save(@sample, @out_file)", "save": "$torch.save(@sample, @output_dir + '/' + @out_file + '.pt')" } diff --git a/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json b/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json index 4310640e..11e2d3d6 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json +++ b/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json @@ -4,12 +4,11 @@ "changelog": { "1.0.8": "Initial release" }, - "monai_version": "1.1.0", - "pytorch_version": "1.13.0", - "numpy_version": "1.22.4", + "monai_version": "1.4.0", + "pytorch_version": "2.5.1", + "numpy_version": "1.26.4", "optional_packages_version": { - "nibabel": "4.0.1", - "generative": "0.1.0" + "nibabel": "5.3.2" }, "task": "Brain image synthesis", "description": "A generative model for creating high-resolution 3D brain MRI based on UK Biobank", diff --git a/models/brain_image_synthesis_latent_diffusion_model/docs/README.md b/models/brain_image_synthesis_latent_diffusion_model/docs/README.md index 7082bf6a..a7be52fa 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/docs/README.md +++ b/models/brain_image_synthesis_latent_diffusion_model/docs/README.md @@ -35,7 +35,7 @@ Please, check Table 1 of the original paper for more details regarding evaluatio Execute sampling: ``` export PYTHONPATH=$PYTHONPATH:"" -$ python -m monai.bundle run save_nii --config_file configs/inference.json --gender 1.0 --age 0.7 --ventricular_vol 0.7 --brain_vol 0.5 +$ python -m monai.bundle run --config_file configs/inference.json --gender 1.0 --age 0.7 --ventricular_vol 0.7 --brain_vol 0.5 ``` All conditioning are expected to have values between 0 and 1 diff --git a/models/brain_image_synthesis_latent_diffusion_model/large_files.yml b/models/brain_image_synthesis_latent_diffusion_model/large_files.yml index 2083c0d8..716abf71 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/large_files.yml +++ b/models/brain_image_synthesis_latent_diffusion_model/large_files.yml @@ -1,9 +1,9 @@ large_files: - - path: "models/autoencoder.pth" - url: "https://drive.google.com/uc?export=download&id=1CZHwxHJWybOsDavipD0EorDPOo_mzNeX" - hash_val: "" - hash_type: "" - - path: "models/diffusion_model.pth" - url: "https://drive.google.com/uc?export=download&id=1XO-ak93ZuOcGTCpgRtqgIeZq3dG5ExN6" - hash_val: "" - hash_type: "" + - path: "models/autoencoder.pt" + url: "https://drive.google.com/uc?export=download&id=1paDN1m-Q_Oy8d_BanPkRTi3RlNB_Sv_h" + hash_val: "7f579cb789597db7bb5de1488f54bc6c" + hash_type: "md5" + - path: "models/model.pt" + url: "https://drive.google.com/uc?export=download&id=1CjcmiPu5_QWr-f7wDJsXrCCcVeczneGT" + hash_val: "c3fd4c8e38cd1d7250a8903cca935823" + hash_type: "md5" From 70b1a36219b6a3bb659a161a71741128dd94d594 Mon Sep 17 00:00:00 2001 From: Virginia Date: Wed, 15 Jan 2025 13:42:22 +0000 Subject: [PATCH 18/33] Model definition and large files fixed so that it works! --- .../configs/inference.json | 12 +++++++----- .../large_files.yml | 16 ++++++++-------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json b/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json index 3a30b518..abbe0e98 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json +++ b/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json @@ -27,7 +27,7 @@ "in_channels": 1, "out_channels": 1, "latent_channels": 3, - "num_channels": [ + "channels": [ 64, 128, 128, @@ -52,8 +52,8 @@ "autoencoder": "$@autoencoder_def.to(@device)", "diffusion_def": { "_target_": "monai.networks.nets.DiffusionModelUNet", - "spatial_dims": 2, - "in_channels": 3, + "spatial_dims": 3, + "in_channels": 7, "out_channels": 3, "channels": [ 256, @@ -68,7 +68,7 @@ ], "norm_num_groups": 32, "norm_eps": 1e-06, - "resblock_updown": false, + "resblock_updown": true, "num_head_channels": [ 0, 512, @@ -76,7 +76,9 @@ ], "with_conditioning": true, "transformer_num_layers": 1, - "cross_attention_dim": 1024 + "cross_attention_dim": 4, + "upcast_attention": true, + "use_flash_attention": false }, "load_diffusion_path": "$@model_dir + '/model.pt'", "load_diffusion_func": "$@diffusion_def.load_old_state_dict if bool(@load_old) else @diffusion_def.load_state_dict", diff --git a/models/brain_image_synthesis_latent_diffusion_model/large_files.yml b/models/brain_image_synthesis_latent_diffusion_model/large_files.yml index 716abf71..75364351 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/large_files.yml +++ b/models/brain_image_synthesis_latent_diffusion_model/large_files.yml @@ -1,9 +1,9 @@ large_files: - - path: "models/autoencoder.pt" - url: "https://drive.google.com/uc?export=download&id=1paDN1m-Q_Oy8d_BanPkRTi3RlNB_Sv_h" - hash_val: "7f579cb789597db7bb5de1488f54bc6c" - hash_type: "md5" - - path: "models/model.pt" - url: "https://drive.google.com/uc?export=download&id=1CjcmiPu5_QWr-f7wDJsXrCCcVeczneGT" - hash_val: "c3fd4c8e38cd1d7250a8903cca935823" - hash_type: "md5" + - path: "models/autoencoder.pth" + url: "https://drive.google.com/uc?export=download&id=1CZHwxHJWybOsDavipD0EorDPOo_mzNeX" + hash_val: "" + hash_type: "" + - path: "models/diffusion_model.pth" + url: "https://drive.google.com/uc?export=download&id=1XO-ak93ZuOcGTCpgRtqgIeZq3dG5ExN6" + hash_val: "" + hash_type: "" \ No newline at end of file From d6cb4d4026b66e28589777c5aea90500bf60598f Mon Sep 17 00:00:00 2001 From: rd24_lihe055 Date: Wed, 15 Jan 2025 14:03:59 +0000 Subject: [PATCH 19/33] Correct large_files.yml links and hash_vals --- .../large_files.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/models/brain_image_synthesis_latent_diffusion_model/large_files.yml b/models/brain_image_synthesis_latent_diffusion_model/large_files.yml index 75364351..5dbed08f 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/large_files.yml +++ b/models/brain_image_synthesis_latent_diffusion_model/large_files.yml @@ -1,9 +1,9 @@ large_files: - - path: "models/autoencoder.pth" + - path: "models/autoencoder.pt" url: "https://drive.google.com/uc?export=download&id=1CZHwxHJWybOsDavipD0EorDPOo_mzNeX" - hash_val: "" - hash_type: "" - - path: "models/diffusion_model.pth" + hash_val: "329e97b3085643ff235f11f049856242" + hash_type: "md5" + - path: "models/model.pt" url: "https://drive.google.com/uc?export=download&id=1XO-ak93ZuOcGTCpgRtqgIeZq3dG5ExN6" - hash_val: "" - hash_type: "" \ No newline at end of file + hash_val: "21c3047556fb671caf0556f1cce6ef22" + hash_type: "md5" From 58fc79e4be28fe4d7a067b665c1f59ec657b64d1 Mon Sep 17 00:00:00 2001 From: rd24_lihe055 Date: Wed, 15 Jan 2025 14:04:16 +0000 Subject: [PATCH 20/33] Ignore large files downloaded --- .gitignore | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 70754fb1..351e54b8 100644 --- a/.gitignore +++ b/.gitignore @@ -129,6 +129,5 @@ temp/ # VSCode .vscode/ *.zip -models/brain_image_synthesis_latent_diffusion_model/models/* -models/brain_image_synthesis_latent_diffusion_model/models/* -models/brain_image_synthesis_latent_diffusion_model/output/* +models/*/models/* +models/*/output/* From 95e8a3f44671fcbb90eb956d25f0f38bc6d1eb6e Mon Sep 17 00:00:00 2001 From: rd24_lihe055 Date: Wed, 15 Jan 2025 14:13:31 +0000 Subject: [PATCH 21/33] Adds load_old_state_dict message into the README --- .../docs/README.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/models/brain_image_synthesis_latent_diffusion_model/docs/README.md b/models/brain_image_synthesis_latent_diffusion_model/docs/README.md index a7be52fa..cc5e6126 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/docs/README.md +++ b/models/brain_image_synthesis_latent_diffusion_model/docs/README.md @@ -32,16 +32,28 @@ Please, check Table 1 of the original paper for more details regarding evaluatio ## **commands example** + Execute sampling: -``` + +```shell export PYTHONPATH=$PYTHONPATH:"" $ python -m monai.bundle run --config_file configs/inference.json --gender 1.0 --age 0.7 --ventricular_vol 0.7 --brain_vol 0.5 ``` All conditioning are expected to have values between 0 and 1 -## **Citation Info** +## Using a new version of the model +If you want to use the checkpoints from a newly fine-tuned model, you need to set parameter load_old to 0 when you run inference, +to avoid the function load_old_state_dict being called instead of load_state_dict to be called, currently default, as it is +required to load the checkpoint from the original GenerativeModels repository. + +```shell +$ python -m monai.bundle run --config_file configs/inference.json --gender 1.0 --age 0.7 --ventricular_vol 0.7 --brain_vol 0.5 --load_old 0 ``` + +## **Citation Info** + +```json @inproceedings{pinaya2022brain, title={Brain imaging generation with latent diffusion models}, author={Pinaya, Walter HL and Tudosiu, Petru-Daniel and Dafflon, Jessica and Da Costa, Pedro F and Fernandez, Virginia and Nachev, Parashkev and Ourselin, Sebastien and Cardoso, M Jorge}, From 9be0ab3611f0351ac4b511eacbd975c9142b7aed Mon Sep 17 00:00:00 2001 From: rd24_lihe055 Date: Wed, 15 Jan 2025 14:35:32 +0000 Subject: [PATCH 22/33] Adds brain_synthesis unittest --- ..._image_synthesis_latent_diffusion_model.py | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 ci/unit_tests/test_brain_image_synthesis_latent_diffusion_model.py diff --git a/ci/unit_tests/test_brain_image_synthesis_latent_diffusion_model.py b/ci/unit_tests/test_brain_image_synthesis_latent_diffusion_model.py new file mode 100644 index 00000000..56d16cca --- /dev/null +++ b/ci/unit_tests/test_brain_image_synthesis_latent_diffusion_model.py @@ -0,0 +1,50 @@ +# Copyright (c) MONAI Consortium +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +import shutil +import tempfile +import unittest + +import numpy as np +from monai.bundle import ConfigWorkflow +from parameterized import parameterized +from utils import check_workflow + +TEST_CASE_1 = [ # inference + { + "bundle_root": "models/brain_image_synthesis_latent_diffusion_model", + "gender": 1.0, + "age": 0.7, + "ventricular_vol": 0.7, + "brain_vol": 0.5 + } +] + + +class BrainImageSynthesisLatentDiffusionModel(unittest.TestCase): + @parameterized.expand([TEST_CASE_1]) + def test_inference(self, params): + bundle_root = params["bundle_root"] + inference_file = os.path.join(bundle_root, "configs/inference.json") + trainer = ConfigWorkflow( + workflow_type="inference", + config_file=inference_file, + logging_file=os.path.join(bundle_root, "configs/logging.conf"), + meta_file=os.path.join(bundle_root, "configs/metadata.json"), + **params, + ) + check_workflow(trainer, check_properties=True) + + +if __name__ == "__main__": + loader = unittest.TestLoader() + unittest.main(testLoader=loader) From 28f48a1db247bca29962ed1eee77f2ee7514dcb7 Mon Sep 17 00:00:00 2001 From: "R. Garcia-Dias" Date: Wed, 15 Jan 2025 14:55:19 +0000 Subject: [PATCH 23/33] Code formatting --- .../test_brain_image_synthesis_latent_diffusion_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/unit_tests/test_brain_image_synthesis_latent_diffusion_model.py b/ci/unit_tests/test_brain_image_synthesis_latent_diffusion_model.py index 56d16cca..0543b403 100644 --- a/ci/unit_tests/test_brain_image_synthesis_latent_diffusion_model.py +++ b/ci/unit_tests/test_brain_image_synthesis_latent_diffusion_model.py @@ -25,7 +25,7 @@ "gender": 1.0, "age": 0.7, "ventricular_vol": 0.7, - "brain_vol": 0.5 + "brain_vol": 0.5, } ] From ed3e4695eb2d4d403a4e23e5e42bc8e3f675b587 Mon Sep 17 00:00:00 2001 From: "R. Garcia-Dias" Date: Mon, 20 Jan 2025 09:59:38 +0000 Subject: [PATCH 24/33] Removes cxr_image_synthesis_latent_diffusion_model from this PR --- .../LICENSE | 201 ------------------ .../configs/inference.json | 115 ---------- .../configs/logging.conf | 21 -- .../configs/metadata.json | 72 ------- .../docs/README.md | 71 ------- .../docs/figure_1.png | Bin 478177 -> 0 bytes .../large_files.yml | 9 - .../scripts/__init__.py | 0 .../scripts/sampler.py | 43 ---- .../scripts/saver.py | 17 -- 10 files changed, 549 deletions(-) delete mode 100644 models/cxr_image_synthesis_latent_diffusion_model/LICENSE delete mode 100644 models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json delete mode 100644 models/cxr_image_synthesis_latent_diffusion_model/configs/logging.conf delete mode 100644 models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json delete mode 100644 models/cxr_image_synthesis_latent_diffusion_model/docs/README.md delete mode 100644 models/cxr_image_synthesis_latent_diffusion_model/docs/figure_1.png delete mode 100644 models/cxr_image_synthesis_latent_diffusion_model/large_files.yml delete mode 100644 models/cxr_image_synthesis_latent_diffusion_model/scripts/__init__.py delete mode 100644 models/cxr_image_synthesis_latent_diffusion_model/scripts/sampler.py delete mode 100644 models/cxr_image_synthesis_latent_diffusion_model/scripts/saver.py diff --git a/models/cxr_image_synthesis_latent_diffusion_model/LICENSE b/models/cxr_image_synthesis_latent_diffusion_model/LICENSE deleted file mode 100644 index 261eeb9e..00000000 --- a/models/cxr_image_synthesis_latent_diffusion_model/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json b/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json deleted file mode 100644 index e186b319..00000000 --- a/models/cxr_image_synthesis_latent_diffusion_model/configs/inference.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "imports": [ - "$import torch", - "$from datetime import datetime", - "$from pathlib import Path", - "$from transformers import CLIPTextModel", - "$from transformers import CLIPTokenizer" - ], - "bundle_root": ".", - "dataset_dir": "", - "dataset": "", - "evaluator": "", - "inferer": "", - "load_old": 1, - "model_dir": "$@bundle_root + '/models'", - "output_dir": "$@bundle_root + '/output'", - "create_output_dir": "$Path(@output_dir).mkdir(exist_ok=True)", - "prompt": "Big right-sided pleural effusion", - "prompt_list": "$['', @prompt]", - "guidance_scale": 7.0, - "device": "$torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')", - "tokenizer": "$CLIPTokenizer.from_pretrained(\"stabilityai/stable-diffusion-2-1-base\", subfolder=\"tokenizer\")", - "text_encoder": "$CLIPTextModel.from_pretrained(\"stabilityai/stable-diffusion-2-1-base\", subfolder=\"text_encoder\")", - "tokenized_prompt": "$@tokenizer(@prompt_list, padding=\"max_length\", max_length=@tokenizer.model_max_length, truncation=True,return_tensors=\"pt\")", - "prompt_embeds": "$@text_encoder(@tokenized_prompt.input_ids.squeeze(1))[0].to(@device)", - "out_file": "$datetime.now().strftime('sample_%H%M%S_%d%m%Y')", - "autoencoder_def": { - "_target_": "monai.networks.nets.AutoencoderKL", - "spatial_dims": 2, - "in_channels": 1, - "out_channels": 1, - "latent_channels": 3, - "channels": [ - 64, - 128, - 128, - 128 - ], - "num_res_blocks": 2, - "norm_num_groups": 32, - "norm_eps": 1e-06, - "attention_levels": [ - false, - false, - false, - false - ], - "with_encoder_nonlocal_attn": false, - "with_decoder_nonlocal_attn": false - }, - "network_def": "@autoencoder_def", - "load_autoencoder_path": "$@model_dir + '/autoencoder.pt'", - "load_autoencoder_func": "$@autoencoder_def.load_old_state_dict if bool(@load_old) else @autoencoder_def.load_state_dict", - "load_autoencoder": "$@load_autoencoder_func(torch.load(@load_autoencoder_path))", - "autoencoder": "$@autoencoder_def.to(@device)", - "diffusion_def": { - "_target_": "monai.networks.nets.DiffusionModelUNet", - "spatial_dims": 2, - "in_channels": 3, - "out_channels": 3, - "channels": [ - 256, - 512, - 768 - ], - "num_res_blocks": 2, - "attention_levels": [ - false, - true, - true - ], - "norm_num_groups": 32, - "norm_eps": 1e-06, - "resblock_updown": false, - "num_head_channels": [ - 0, - 512, - 768 - ], - "with_conditioning": true, - "transformer_num_layers": 1, - "cross_attention_dim": 1024 - }, - "load_diffusion_path": "$@model_dir + '/model.pt'", - "load_diffusion_func": "$@diffusion_def.load_old_state_dict if bool(@load_old) else @diffusion_def.load_state_dict", - "load_diffusion": "$@load_diffusion_func(torch.load(@load_diffusion_path))", - "diffusion": "$@diffusion_def.to(@device)", - "scheduler": { - "_target_": "monai.networks.schedulers.DDIMScheduler", - "_requires_": [ - "@load_diffusion", - "@load_autoencoder" - ], - "beta_start": 0.0015, - "beta_end": 0.0205, - "num_train_timesteps": 1000, - "schedule": "scaled_linear_beta", - "prediction_type": "v_prediction", - "clip_sample": false - }, - "noise": "$torch.randn((1, 3, 64, 64)).to(@device)", - "set_timesteps": "$@scheduler.set_timesteps(num_inference_steps=50)", - "sampler": { - "_target_": "scripts.sampler.Sampler", - "_requires_": "@set_timesteps" - }, - "sample": "$@sampler.sampling_fn(@noise, @autoencoder, @diffusion, @scheduler, @prompt_embeds)", - "saver": { - "_target_": "scripts.saver.JPGSaver", - "_requires_": "@create_output_dir", - "output_dir": "@output_dir" - }, - "run": "$@saver.save(@sample, @out_file)", - "save": "$torch.save(@sample, @output_dir + '/' + @out_file + '.pt')" -} diff --git a/models/cxr_image_synthesis_latent_diffusion_model/configs/logging.conf b/models/cxr_image_synthesis_latent_diffusion_model/configs/logging.conf deleted file mode 100644 index 91c1a21c..00000000 --- a/models/cxr_image_synthesis_latent_diffusion_model/configs/logging.conf +++ /dev/null @@ -1,21 +0,0 @@ -[loggers] -keys=root - -[handlers] -keys=consoleHandler - -[formatters] -keys=fullFormatter - -[logger_root] -level=INFO -handlers=consoleHandler - -[handler_consoleHandler] -class=StreamHandler -level=INFO -formatter=fullFormatter -args=(sys.stdout,) - -[formatter_fullFormatter] -format=%(asctime)s - %(name)s - %(levelname)s - %(message)s diff --git a/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json b/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json deleted file mode 100644 index 44615eb0..00000000 --- a/models/cxr_image_synthesis_latent_diffusion_model/configs/metadata.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "schema": "https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/meta_schema_20220324.json", - "version": "1.0.0", - "changelog": { - "1.0.0": "Initial release" - }, - "monai_version": "1.4.0", - "pytorch_version": "2.5.1", - "numpy_version": "1.26.4", - "optional_packages_version": { - "transformers": "4.46.3" - }, - "task": "Chest X-ray image synthesis", - "description": "A generative model for creating high-resolution chest X-ray based on MIMIC dataset", - "copyright": "Copyright (c) MONAI Consortium", - "data_source": "https://physionet.org/content/mimic-cxr-jpg/2.0.0/", - "data_type": "image", - "image_classes": "Radiography (X-ray) with 512 x 512 pixels", - "intended_use": "This is a research tool/prototype and not to be used clinically", - "network_data_format": { - "inputs": { - "latent_representation": { - "type": "image", - "format": "magnitude", - "modality": "CXR", - "num_channels": 3, - "spatial_shape": [ - 77, - 64, - 64 - ], - "dtype": "float32", - "value_range": [], - "is_patch_data": false - }, - "timesteps": { - "type": "vector", - "value_range": [ - 0, - 1000 - ], - "dtype": "long" - }, - "context": { - "type": "vector", - "value_range": [], - "dtype": "float32" - } - }, - "outputs": { - "pred": { - "type": "image", - "format": "magnitude", - "modality": "CXR", - "num_channels": 1, - "spatial_shape": [ - 512, - 512 - ], - "dtype": "float32", - "value_range": [ - 0, - 1 - ], - "is_patch_data": false, - "channel_def": { - "0": "X-ray" - } - } - } - } -} diff --git a/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md b/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md deleted file mode 100644 index 32a8ee23..00000000 --- a/models/cxr_image_synthesis_latent_diffusion_model/docs/README.md +++ /dev/null @@ -1,71 +0,0 @@ -# Description - -A diffusion model to synthetise X-Ray images based on radiological report impressions. - -# Model Overview -This model is trained from scratch using the Latent Diffusion Model architecture [1] and is used for the synthesis of -2D Chest X-ray conditioned on Radiological reports. The model is divided into two parts: an autoencoder with a -KL-regularisation model that compresses data into a latent space and a diffusion model that learns to generate -conditioned synthetic latent representations. This model is conditioned on Findings and Impressions from radiological -reports. The original repository can be found [here](https://github.com/Warvito/generative_chestxray) - -![](./figure_1.png)
-

-Figure 1 - Synthetic images from the model.

- -# Data -The model was trained on brain data from 90,000 participants from the MIMIC dataset [2] [3]. We downsampled the -original images to have a format of 512 x 512 pixels. - -## Preprocessing -We resized the original images to make the smallest sides have 512 pixels. When inputting it to the network, we center -cropped the images to 512 x 512. The pixel intensity was normalised to be between [0, 1]. The text data was obtained -from associated radiological reports. We randoomly extracted sentences from the findings and impressions sections of the -reports, having a maximum of 5 sentences and 77 tokens. The text was tokenised using the CLIPTokenizer from -transformers package (https://github.com/huggingface/transformers) (pretrained model -"stabilityai/stable-diffusion-2-1-base") and then encoded using CLIPTextModel from the same package and pretrained -model. - -# Examples of inference - -Here we included a few examples of commands to sample images from the model and save them as .jpg files. The available -arguments for this task are: "--prompt" (str) text prompt to condition the model on; "--guidance_scale" (float), the -parameter that controls how much the image generation process follows the text prompt. The higher the value, the more -the image sticks to a given text input (the common range is between 1-21). - -Examples: - -```shell -$ python -m monai.bundle run --config_file configs/inference.json --prompt "Big right-sided pleural effusion" --guidance_scale 7.0 -``` - -```shell -$ python -m monai.bundle run --config_file configs/inference.json --prompt "Small right-sided pleural effusion" --guidance_scale 7.0 -``` - -```shell -$ python -m monai.bundle run --config_file configs/inference.json --prompt "Bilateral pleural effusion" --guidance_scale 7.0 -``` - -```shell -$ python -m monai.bundle run --config_file configs/inference.json --prompt "Cardiomegaly" --guidance_scale 7.0 -``` - -## Using a new version of the model - -If you want to use the checkpoints from a newly fine-tuned model, you need to set parameter load_old to 0 when you run inference, -to avoid the function load_old_state_dict being called instead of load_state_dict to be called, currently default, as it is -required to load the checkpoint from the original GenerativeModels repository. - -```shell -$ python -m monai.bundle run --config_file configs/inference.json --prompt "Pleural effusion." --guidance_scale 7.0 --load_old 0 -``` - -## References - - -[1] Pinaya, Walter HL, et al. "Brain imaging generation with latent diffusion models." MICCAI Workshop on Deep Generative Models. Springer, Cham, 2022. - -[2] Johnson, A., Lungren, M., Peng, Y., Lu, Z., Mark, R., Berkowitz, S., & Horng, S. (2019). MIMIC-CXR-JPG - chest radiographs with structured labels (version 2.0.0). PhysioNet. https://doi.org/10.13026/8360-t248. - -[3] Johnson AE, Pollard TJ, Berkowitz S, Greenbaum NR, Lungren MP, Deng CY, Mark RG, Horng S. MIMIC-CXR: A large publicly available database of labeled chest radiographs. arXiv preprint arXiv:1901.07042. 2019 Jan 21. diff --git a/models/cxr_image_synthesis_latent_diffusion_model/docs/figure_1.png b/models/cxr_image_synthesis_latent_diffusion_model/docs/figure_1.png deleted file mode 100644 index 1baa0adbf322a48ca85f97d58cd452ba7d8eec0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478177 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�?|qp>K!-G(B~h@ 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

y)sRN=3O*8>ZBP0iVr?FMv_eatX8Y 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 None: - super().__init__() - - @torch.no_grad() - def sampling_fn( - self, - noise: torch.Tensor, - autoencoder_model: nn.Module, - diffusion_model: nn.Module, - scheduler: nn.Module, - prompt_embeds: torch.Tensor, - guidance_scale: float = 7.0, - scale_factor: float = 0.3, - ) -> torch.Tensor: - if has_tqdm: - progress_bar = tqdm(scheduler.timesteps) - else: - progress_bar = iter(scheduler.timesteps) - - for t in progress_bar: - noise_input = torch.cat([noise] * 2) - model_output = diffusion_model( - noise_input, timesteps=torch.Tensor((t,)).to(noise.device).long(), context=prompt_embeds - ) - noise_pred_uncond, noise_pred_text = model_output.chunk(2) - noise_pred = noise_pred_uncond + guidance_scale * (noise_pred_text - noise_pred_uncond) - noise, _ = scheduler.step(noise_pred, t, noise) - - with autocast(): - sample = autoencoder_model.decode_stage_2_outputs(noise / scale_factor) - - return sample diff --git a/models/cxr_image_synthesis_latent_diffusion_model/scripts/saver.py b/models/cxr_image_synthesis_latent_diffusion_model/scripts/saver.py deleted file mode 100644 index 05e88722..00000000 --- a/models/cxr_image_synthesis_latent_diffusion_model/scripts/saver.py +++ /dev/null @@ -1,17 +0,0 @@ -from __future__ import annotations - -import numpy as np -import torch -from PIL import Image - - -class JPGSaver: - def __init__(self, output_dir: str) -> None: - super().__init__() - self.output_dir = output_dir - - def save(self, image_data: torch.Tensor, file_name: str) -> None: - image_data = np.clip(image_data.cpu().numpy(), 0, 1) - image_data = (image_data * 255).astype(np.uint8) - im = Image.fromarray(image_data[0, 0]) - im.save(self.output_dir + "/" + file_name + ".jpg") From eb6bbcba30cdf5ba70b036087282d5eb204c643e Mon Sep 17 00:00:00 2001 From: "R. Garcia-Dias" Date: Mon, 20 Jan 2025 10:00:32 +0000 Subject: [PATCH 25/33] Removes mednist_ddpm from this PR --- models/mednist_ddpm/LICENSE | 21 - models/mednist_ddpm/configs/common.yaml | 59 -- models/mednist_ddpm/configs/infer.yaml | 38 -- models/mednist_ddpm/configs/logging.conf | 21 - models/mednist_ddpm/configs/metadata.json | 59 -- models/mednist_ddpm/configs/train.yaml | 160 ----- .../mednist_ddpm/configs/train_multigpu.yaml | 30 - .../docs/2d_ddpm_bundle_tutorial.ipynb | 577 ------------------ models/mednist_ddpm/docs/README.md | 11 - models/mednist_ddpm/docs/sub_train.sh | 31 - .../mednist_ddpm/docs/sub_train_multigpu.sh | 33 - models/mednist_ddpm/docs/test.pt | Bin 17485 -> 0 bytes models/mednist_ddpm/scripts/__init__.py | 12 - 13 files changed, 1052 deletions(-) delete mode 100644 models/mednist_ddpm/LICENSE delete mode 100644 models/mednist_ddpm/configs/common.yaml delete mode 100644 models/mednist_ddpm/configs/infer.yaml delete mode 100644 models/mednist_ddpm/configs/logging.conf delete mode 100644 models/mednist_ddpm/configs/metadata.json delete mode 100644 models/mednist_ddpm/configs/train.yaml delete mode 100644 models/mednist_ddpm/configs/train_multigpu.yaml delete mode 100644 models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb delete mode 100644 models/mednist_ddpm/docs/README.md delete mode 100755 models/mednist_ddpm/docs/sub_train.sh delete mode 100644 models/mednist_ddpm/docs/sub_train_multigpu.sh delete mode 100644 models/mednist_ddpm/docs/test.pt delete mode 100644 models/mednist_ddpm/scripts/__init__.py diff --git a/models/mednist_ddpm/LICENSE b/models/mednist_ddpm/LICENSE deleted file mode 100644 index 5a2a4c0f..00000000 --- a/models/mednist_ddpm/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 MONAI Consortium - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/models/mednist_ddpm/configs/common.yaml b/models/mednist_ddpm/configs/common.yaml deleted file mode 100644 index 0b809413..00000000 --- a/models/mednist_ddpm/configs/common.yaml +++ /dev/null @@ -1,59 +0,0 @@ -# This file defines common definitions used in training and inference, most importantly the network definition - -imports: -- $import os -- $import datetime -- $import torch -- $import scripts -- $import monai -- $import torch.distributed as dist - -image: $monai.utils.CommonKeys.IMAGE -label: $monai.utils.CommonKeys.LABEL -pred: $monai.utils.CommonKeys.PRED - -is_dist: '$dist.is_initialized()' -rank: '$dist.get_rank() if @is_dist else 0' -is_not_rank0: '$@rank > 0' -device: '$torch.device(f"cuda:{@rank}" if torch.cuda.is_available() else "cpu")' - -network_def: - _target_: monai.networks.nets.DiffusionModelUNet - spatial_dims: 2 - in_channels: 1 - out_channels: 1 - channels: [64, 128, 128] - attention_levels: [false, true, true] - num_res_blocks: 1 - num_head_channels: 128 - -network: $@network_def.to(@device) - -bundle_root: . -ckpt_path: $@bundle_root + '/models/model.pt' -use_amp: true -image_dim: 64 -image_size: [1, '@image_dim', '@image_dim'] -num_train_timesteps: 1000 - -base_transforms: -- _target_: LoadImaged - keys: '@image' - image_only: true -- _target_: EnsureChannelFirstd - keys: '@image' -- _target_: ScaleIntensityRanged - keys: '@image' - a_min: 0.0 - a_max: 255.0 - b_min: 0.0 - b_max: 1.0 - clip: true - -scheduler: - _target_: monai.networks.schedulers.DDPMScheduler - num_train_timesteps: '@num_train_timesteps' - -inferer: - _target_: monai.inferers.DiffusionInferer - scheduler: '@scheduler' diff --git a/models/mednist_ddpm/configs/infer.yaml b/models/mednist_ddpm/configs/infer.yaml deleted file mode 100644 index 5cfccae1..00000000 --- a/models/mednist_ddpm/configs/infer.yaml +++ /dev/null @@ -1,38 +0,0 @@ -# This defines an inference script for generating a random image to a Pytorch file - -batch_size: 1 -num_workers: 0 - -noise: $torch.rand(1,1,@image_dim,@image_dim) # create a random image every time this program is run - -out_file: "" # where to save the tensor to - -# using a lambda this defines a simple sampling function used below -sample: '$lambda x: @inferer.sample(input_noise=x, diffusion_model=@network, scheduler=@scheduler)' - -load_state: '$@network.load_state_dict(torch.load(@ckpt_path, weights_only = True))' # command to load the saved model weights - -save_trans: - _target_: Compose - transforms: - - _target_: ScaleIntensity - minv: 0.0 - maxv: 255.0 - - _target_: ToTensor - track_meta: false - - _target_: SaveImage - output_ext: "jpg" - resample: false - output_dtype: '$torch.uint8' - separate_folder: false - output_postfix: '@out_file' - -# program to load the model weights, run `sample`, and store results to `out_file` -testing: -- '@load_state' -- '$torch.save(@sample(@noise.to(@device)), @out_file)' - -#alternative version which saves to a jpg file -testing_jpg: -- '@load_state' -- '$@save_trans(@sample(@noise.to(@device))[0])' diff --git a/models/mednist_ddpm/configs/logging.conf b/models/mednist_ddpm/configs/logging.conf deleted file mode 100644 index 91c1a21c..00000000 --- a/models/mednist_ddpm/configs/logging.conf +++ /dev/null @@ -1,21 +0,0 @@ -[loggers] -keys=root - -[handlers] -keys=consoleHandler - -[formatters] -keys=fullFormatter - -[logger_root] -level=INFO -handlers=consoleHandler - -[handler_consoleHandler] -class=StreamHandler -level=INFO -formatter=fullFormatter -args=(sys.stdout,) - -[formatter_fullFormatter] -format=%(asctime)s - %(name)s - %(levelname)s - %(message)s diff --git a/models/mednist_ddpm/configs/metadata.json b/models/mednist_ddpm/configs/metadata.json deleted file mode 100644 index 65960dda..00000000 --- a/models/mednist_ddpm/configs/metadata.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "schema": "https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/meta_schema_20220729.json", - "version": "1.0.0", - "changelog": { - "1.0.0": "Initial release" - }, - "monai_version": "1.4.0", - "pytorch_version": "2.5.1", - "numpy_version": "1.26.4", - "optional_packages_version": {}, - "task": "MedNIST Hand Generation", - "description": "", - "authors": "Walter Hugo Lopez Pinaya, Mark Graham, and Eric Kerfoot", - "copyright": "Copyright (c) KCL", - "references": [], - "intended_use": "This is suitable for research purposes only.", - "image_classes": "Single channel magnitude data.", - "data_source": "MedNIST", - "network_data_format": { - "inputs": { - "image": { - "type": "image", - "format": "magnitude", - "modality": "xray", - "num_channels": 1, - "spatial_shape": [ - 1, - 64, - 64 - ], - "dtype": "float32", - "value_range": [], - "is_patch_data": false, - "channel_def": { - "0": "image" - } - } - }, - "outputs": { - "pred": { - "type": "image", - "format": "magnitude", - "modality": "xray", - "num_channels": 1, - "spatial_shape": [ - 1, - 64, - 64 - ], - "dtype": "float32", - "value_range": [], - "is_patch_data": false, - "channel_def": { - "0": "image" - } - } - } - } -} diff --git a/models/mednist_ddpm/configs/train.yaml b/models/mednist_ddpm/configs/train.yaml deleted file mode 100644 index 5133dc5c..00000000 --- a/models/mednist_ddpm/configs/train.yaml +++ /dev/null @@ -1,160 +0,0 @@ -# This defines the training script for the network - -imports: -- $import operator - -# choose a new directory for every run -output_dir: $datetime.datetime.now().strftime('./results/output_%y%m%d_%H%M%S') -dataset_dir: ./data - -train_data: - _target_ : MedNISTDataset - root_dir: '@dataset_dir' - section: training - download: true - progress: false - seed: 0 - -val_data: - _target_ : MedNISTDataset - root_dir: '@dataset_dir' - section: validation - download: true - progress: false - seed: 0 - -train_datalist: '$[{"image": item["image"]} for item in @train_data.data if item["class_name"] == "Hand"]' -val_datalist: '$[{"image": item["image"]} for item in @val_data.data if item["class_name"] == "Hand"]' - -batch_size: 8 -num_substeps: 1 -num_workers: 4 -use_thread_workers: false - -lr: 0.000025 -rand_prob: 0.5 -num_epochs: 75 -val_interval: 5 -save_interval: 5 - -train_transforms: -- _target_: RandAffined - keys: '@image' - rotate_range: - - ['$-np.pi / 36', '$np.pi / 36'] - - ['$-np.pi / 36', '$np.pi / 36'] - translate_range: - - [-1, 1] - - [-1, 1] - scale_range: - - [-0.05, 0.05] - - [-0.05, 0.05] - spatial_size: [64, 64] - padding_mode: "zeros" - prob: '@rand_prob' - -train_ds: - _target_: Dataset - data: $@train_datalist - transform: - _target_: Compose - transforms: '$@base_transforms + @train_transforms' - -train_loader: - _target_: ThreadDataLoader - dataset: '@train_ds' - batch_size: '@batch_size' - repeats: '@num_substeps' - num_workers: '@num_workers' - use_thread_workers: '@use_thread_workers' - persistent_workers: '$@num_workers > 0' - shuffle: true - -val_ds: - _target_: Dataset - data: $@val_datalist - transform: - _target_: Compose - transforms: '@base_transforms' - -val_loader: - _target_: DataLoader - dataset: '@val_ds' - batch_size: '@batch_size' - num_workers: '@num_workers' - persistent_workers: '$@num_workers > 0' - shuffle: false - -lossfn: - _target_: torch.nn.MSELoss - -optimizer: - _target_: torch.optim.Adam - params: $@network.parameters() - lr: '@lr' - -prepare_batch: - _target_: monai.engines.DiffusionPrepareBatch - num_train_timesteps: '@num_train_timesteps' - -val_handlers: -- _target_: StatsHandler - name: train_log - output_transform: '$lambda x: None' - _disabled_: '@is_not_rank0' - -evaluator: - _target_: SupervisedEvaluator - device: '@device' - val_data_loader: '@val_loader' - network: '@network' - amp: '@use_amp' - inferer: '@inferer' - prepare_batch: '@prepare_batch' - key_val_metric: - val_mean_abs_error: - _target_: MeanAbsoluteError - output_transform: $monai.handlers.from_engine([@pred, @label]) - metric_cmp_fn: '$operator.lt' - val_handlers: '$list(filter(bool, @val_handlers))' - -handlers: -- _target_: CheckpointLoader - _disabled_: $not os.path.exists(@ckpt_path) - load_path: '@ckpt_path' - load_dict: - model: '@network' -- _target_: ValidationHandler - validator: '@evaluator' - epoch_level: true - interval: '@val_interval' -- _target_: CheckpointSaver - save_dir: '@output_dir' - save_dict: - model: '@network' - save_interval: '@save_interval' - save_final: true - epoch_level: true - _disabled_: '@is_not_rank0' - -trainer: - _target_: SupervisedTrainer - max_epochs: '@num_epochs' - device: '@device' - train_data_loader: '@train_loader' - network: '@network' - loss_function: '@lossfn' - optimizer: '@optimizer' - inferer: '@inferer' - prepare_batch: '@prepare_batch' - key_train_metric: - train_acc: - _target_: MeanSquaredError - output_transform: $monai.handlers.from_engine([@pred, @label]) - metric_cmp_fn: '$operator.lt' - train_handlers: '$list(filter(bool, @handlers))' - amp: '@use_amp' - -training: -- '$monai.utils.set_determinism(0)' -- '$@trainer.run()' diff --git a/models/mednist_ddpm/configs/train_multigpu.yaml b/models/mednist_ddpm/configs/train_multigpu.yaml deleted file mode 100644 index 51f5acf4..00000000 --- a/models/mednist_ddpm/configs/train_multigpu.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This can be mixed in with the training script to enable multi-GPU training - -network: - _target_: torch.nn.parallel.DistributedDataParallel - module: $@network_def.to(@device) - device_ids: ['@device'] - find_unused_parameters: true - -tsampler: - _target_: DistributedSampler - dataset: '@train_ds' - even_divisible: true - shuffle: true -train_loader#sampler: '@tsampler' -train_loader#shuffle: false - -vsampler: - _target_: DistributedSampler - dataset: '@val_ds' - even_divisible: false - shuffle: false -val_loader#sampler: '@vsampler' - -training: -- $import torch.distributed as dist -- $dist.init_process_group(backend='nccl') -- $torch.cuda.set_device(@device) -- $monai.utils.set_determinism(seed=123), -- $@trainer.run() -- $dist.destroy_process_group() diff --git a/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb b/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb deleted file mode 100644 index 79315d88..00000000 --- a/models/mednist_ddpm/docs/2d_ddpm_bundle_tutorial.ipynb +++ /dev/null @@ -1,577 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "c54f5831-58eb-4f9e-bb8a-2c2a6536a658", - "metadata": {}, - "source": [ - "# Denoising Diffusion Probabilistic Models with MedNIST Dataset Bundle \n", - "\n", - "This notebook discusses and uses the MONAI bundle it's included in for generating images from the MedNIST dataset using diffusion models. This is based off the 2d_ddpm_tutorial_ignite.ipynb notebook with a few changes.\n", - "\n", - "The bundle defines training and inference scripts whose use will be described here along with visualisations. The assumption with this notebook is that it's run within the bundle's `docs` directory and that the environment it runs in has `MONAI` installed. The command lines given are known to work in `bash` however may be problematic in Windows.\n", - "\n", - "Specifically, we train a diffusion model to generate X-Ray hands (drawn from the MedNIST dataset).\n", - "\n", - "First thing to do is import libraries and verify MONAI is present:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "6d32f8a4-2bfe-4cfb-9abd-033b0c6080e6", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "MONAI version: 1.4.0\n", - "Numpy version: 1.26.4\n", - "Pytorch version: 2.5.1+cu124\n", - "MONAI flags: HAS_EXT = False, USE_COMPILED = False, USE_META_DICT = False\n", - "MONAI rev id: 46a5272196a6c2590ca2589029eed8e4d56ff008\n", - "MONAI __file__: /venv/lib/python3.10/site-packages/monai/__init__.py\n", - "\n", - "Optional dependencies:\n", - "Pytorch Ignite version: 0.5.1\n", - "ITK version: NOT INSTALLED or UNKNOWN VERSION.\n", - "Nibabel version: NOT INSTALLED or UNKNOWN VERSION.\n", - "scikit-image version: NOT INSTALLED or UNKNOWN VERSION.\n", - "scipy version: NOT INSTALLED or UNKNOWN VERSION.\n", - "Pillow version: 11.0.0\n", - "Tensorboard version: NOT INSTALLED or UNKNOWN VERSION.\n", - "gdown version: 5.2.0\n", - "TorchVision version: NOT INSTALLED or UNKNOWN VERSION.\n", - "tqdm version: 4.67.1\n", - "lmdb version: NOT INSTALLED or UNKNOWN VERSION.\n", - "psutil version: 6.1.1\n", - "pandas version: NOT INSTALLED or UNKNOWN VERSION.\n", - "einops version: 0.8.0\n", - "transformers version: 4.46.3\n", - "mlflow version: NOT INSTALLED or UNKNOWN VERSION.\n", - "pynrrd version: NOT INSTALLED or UNKNOWN VERSION.\n", - "clearml version: NOT INSTALLED or UNKNOWN VERSION.\n", - "\n", - "For details about installing the optional dependencies, please visit:\n", - " https://docs.monai.io/en/latest/installation.html#installing-the-recommended-dependencies\n", - "\n" - ] - } - ], - "source": [ - "import os\n", - "import shutil\n", - "import tempfile\n", - "from pathlib import Path\n", - "\n", - "import torch\n", - "\n", - "import matplotlib.pyplot as plt\n", - "import monai\n", - "from monai.bundle import ConfigParser\n", - "\n", - "# path to the bundle directory, this assumes you're running the notebook in its directory\n", - "bundle_root = str(Path(\".\").absolute().parent)\n", - "\n", - "monai.config.print_config()" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "d6fc6592-cb51-4527-97ee-add5d1cdbeb4", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/tmp/tmpwv12iwwo\n" - ] - } - ], - "source": [ - "directory = os.environ.get(\"MONAI_DATA_DIRECTORY\")\n", - "dataset_dir = tempfile.mkdtemp() if directory is None else directory\n", - "print(dataset_dir)" - ] - }, - { - "cell_type": "markdown", - "id": "5721b12a-8474-435b-aac2-c0ed054fa618", - "metadata": {}, - "source": [ - "### Training the diffusion model" - ] - }, - { - "cell_type": "markdown", - "id": "678d2e51-dc2d-4ad9-a4c0-14a6f900398b", - "metadata": {}, - "source": [ - "A bundle can be run on the command line using the Fire library or by parsing the configuration manually then getting parsed content objects. The following is the command to train the network for the default number of epochs. It will define values in the config files which need to be set for a particular run, such as the dataset directory created above, and setting the PYTHONPATH variable. The configuration for this bundle is split into 4 yaml files, one having common definitions for training and inference (common.yaml), one to enable multi-GPU training (train_multigpu.yaml), and one each for training (train.yaml) and inference (inference.yaml). Their combinations determine what your final configuration is, in this case the common and train files produce a training script. \n", - "\n", - "The dataset information is available in configs/common.yaml. The transformations to which the data is subject, which is basically the addition of a channel dimension and the scaling of the images between 0 and 1, is in each task yaml file. " - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "d52a4ae9-0d6d-4bc4-a5b5-f84470711f2d", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2025-01-12 15:03:16,093 - INFO - --- input summary of monai.bundle.scripts.run ---\n", - "2025-01-12 15:03:16,093 - INFO - > config_file: ('./configs/common.yaml',\n", - " './configs/train.yaml')\n", - "2025-01-12 15:03:16,093 - INFO - > meta_file: './configs/metadata.json'\n", - "2025-01-12 15:03:16,093 - INFO - > logging_file: '/monai-model-zoo/model-zoo/models/mednist_ddpm/configs/logging.conf'\n", - "2025-01-12 15:03:16,093 - INFO - > run_id: 'training'\n", - "2025-01-12 15:03:16,093 - INFO - > bundle_root: '/model-zoo/models/mednist_ddpm'\n", - "2025-01-12 15:03:16,093 - INFO - > dataset_dir: '/tmp/tmpwv12iwwo'\n", - "2025-01-12 15:03:16,093 - INFO - ---\n", - "\n", - "\n", - "2025-01-12 15:03:16,093 - INFO - Setting logging properties based on config: ./configs/logging.conf.\n", - "2025-01-12 15:03:17,424 - INFO - Downloaded: /tmp/tmpwv12iwwo/MedNIST.tar.gz\n", - "2025-01-12 15:03:17,500 - INFO - Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n", - "2025-01-12 15:03:17,500 - INFO - Writing into directory: /tmp/tmpwv12iwwo.\n", - "2025-01-12 15:03:38,425 - INFO - Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n", - "2025-01-12 15:03:38,425 - INFO - File exists: /tmp/tmpwv12iwwo/MedNIST.tar.gz, skipped downloading.\n", - "2025-01-12 15:03:38,425 - INFO - Non-empty folder exists in /tmp/tmpwv12iwwo/MedNIST, skipped extracting.\n", - "2025-01-12 15:03:40,493 - ignite.engine.engine.SupervisedTrainer - INFO - Engine run resuming from iteration 0, epoch 0 until 75 epochs\n", - "2025-01-12 15:04:32,910 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.1607925146818161\n", - "2025-01-12 15:04:32,910 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[1] Complete. Time taken: 00:00:52.417\n", - "2025-01-12 15:05:23,448 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.016663629561662674\n", - "2025-01-12 15:05:23,448 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[2] Complete. Time taken: 00:00:50.538\n", - "2025-01-12 15:06:14,642 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.01578485034406185\n", - "2025-01-12 15:06:14,642 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[3] Complete. Time taken: 00:00:51.194\n", - "2025-01-12 15:07:05,276 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.013587715104222298\n", - "2025-01-12 15:07:05,276 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[4] Complete. Time taken: 00:00:50.634\n", - "2025-01-12 15:07:55,814 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.012479547411203384\n", - "2025-01-12 15:07:55,814 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 4 until 5 epochs\n", - "2025-01-12 15:07:59,376 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.05754538252949715\n", - "2025-01-12 15:07:59,376 - INFO - Epoch[5] Metrics -- val_mean_abs_error: 0.0575 \n", - "2025-01-12 15:07:59,376 - INFO - Key metric: val_mean_abs_error best value: 0.05754538252949715 at epoch: 5\n", - "2025-01-12 15:07:59,376 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[5] Complete. Time taken: 00:00:03.456\n", - "2025-01-12 15:07:59,376 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.561\n", - "2025-01-12 15:07:59,414 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 5\n", - "2025-01-12 15:07:59,414 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[5] Complete. Time taken: 00:00:54.138\n", - "2025-01-12 15:08:50,244 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.012240087613463402\n", - "2025-01-12 15:08:50,244 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[6] Complete. Time taken: 00:00:50.830\n", - "2025-01-12 15:09:41,102 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[7] Complete. Time taken: 00:00:50.858\n", - "2025-01-12 15:10:31,267 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[8] Complete. Time taken: 00:00:50.165\n", - "2025-01-12 15:11:21,542 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.01170545443892479\n", - "2025-01-12 15:11:21,542 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[9] Complete. Time taken: 00:00:50.275\n", - "2025-01-12 15:12:11,241 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 9 until 10 epochs\n", - "2025-01-12 15:12:14,437 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.052069272845983505\n", - "2025-01-12 15:12:14,437 - INFO - Epoch[10] Metrics -- val_mean_abs_error: 0.0521 \n", - "2025-01-12 15:12:14,437 - INFO - Key metric: val_mean_abs_error best value: 0.052069272845983505 at epoch: 10\n", - "2025-01-12 15:12:14,437 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[10] Complete. Time taken: 00:00:03.195\n", - "2025-01-12 15:12:14,437 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.196\n", - "2025-01-12 15:12:14,472 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 10\n", - "2025-01-12 15:12:14,472 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[10] Complete. Time taken: 00:00:52.930\n", - "2025-01-12 15:13:04,729 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.011470048688352108\n", - "2025-01-12 15:13:04,729 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[11] Complete. Time taken: 00:00:50.257\n", - "2025-01-12 15:13:54,781 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.010766257531940937\n", - "2025-01-12 15:13:54,781 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[12] Complete. Time taken: 00:00:50.052\n", - "2025-01-12 15:14:47,646 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[13] Complete. Time taken: 00:00:52.865\n", - "2025-01-12 15:15:38,487 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.010334153659641743\n", - "2025-01-12 15:15:38,487 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[14] Complete. Time taken: 00:00:50.840\n", - "2025-01-12 15:16:29,745 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 14 until 15 epochs\n", - "2025-01-12 15:16:32,924 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.04713250324130058\n", - "2025-01-12 15:16:32,924 - INFO - Epoch[15] Metrics -- val_mean_abs_error: 0.0471 \n", - "2025-01-12 15:16:32,924 - INFO - Key metric: val_mean_abs_error best value: 0.04713250324130058 at epoch: 15\n", - "2025-01-12 15:16:32,924 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[15] Complete. Time taken: 00:00:03.178\n", - "2025-01-12 15:16:32,924 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.179\n", - "2025-01-12 15:16:32,960 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 15\n", - "2025-01-12 15:16:32,960 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[15] Complete. Time taken: 00:00:54.473\n", - "2025-01-12 15:17:23,605 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.010036583058536053\n", - "2025-01-12 15:17:23,605 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[16] Complete. Time taken: 00:00:50.645\n", - "2025-01-12 15:18:14,424 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[17] Complete. Time taken: 00:00:50.819\n", - "2025-01-12 15:19:05,194 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[18] Complete. Time taken: 00:00:50.770\n", - "2025-01-12 15:19:55,723 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.010024736635386944\n", - "2025-01-12 15:19:55,723 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[19] Complete. Time taken: 00:00:50.529\n", - "2025-01-12 15:20:46,329 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 19 until 20 epochs\n", - "2025-01-12 15:20:49,486 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.04626006633043289\n", - "2025-01-12 15:20:49,486 - INFO - Epoch[20] Metrics -- val_mean_abs_error: 0.0463 \n", - "2025-01-12 15:20:49,486 - INFO - Key metric: val_mean_abs_error best value: 0.04626006633043289 at epoch: 20\n", - "2025-01-12 15:20:49,486 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[20] Complete. Time taken: 00:00:03.155\n", - "2025-01-12 15:20:49,486 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.156\n", - "2025-01-12 15:20:49,522 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 20\n", - "2025-01-12 15:20:49,522 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[20] Complete. Time taken: 00:00:53.799\n", - "2025-01-12 15:21:41,275 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[21] Complete. Time taken: 00:00:51.753\n", - "2025-01-12 15:22:31,483 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.010010532103478909\n", - "2025-01-12 15:22:31,483 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[22] Complete. Time taken: 00:00:50.207\n", - "2025-01-12 15:23:22,529 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.0098584508523345\n", - "2025-01-12 15:23:22,529 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[23] Complete. Time taken: 00:00:51.046\n", - "2025-01-12 15:24:14,032 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[24] Complete. Time taken: 00:00:51.503\n", - "2025-01-12 15:25:05,966 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 24 until 25 epochs\n", - "2025-01-12 15:25:09,415 - INFO - Epoch[25] Metrics -- val_mean_abs_error: 0.0496 \n", - "2025-01-12 15:25:09,415 - INFO - Key metric: val_mean_abs_error best value: 0.04626006633043289 at epoch: 20\n", - "2025-01-12 15:25:09,415 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[25] Complete. Time taken: 00:00:03.448\n", - "2025-01-12 15:25:09,415 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.449\n", - "2025-01-12 15:25:09,456 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 25\n", - "2025-01-12 15:25:09,456 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[25] Complete. Time taken: 00:00:55.424\n", - "2025-01-12 15:26:01,710 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.00983799621462822\n", - "2025-01-12 15:26:01,710 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[26] Complete. Time taken: 00:00:52.254\n", - "2025-01-12 15:26:52,896 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.009661602787673473\n", - "2025-01-12 15:26:52,896 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[27] Complete. Time taken: 00:00:51.186\n", - "2025-01-12 15:27:44,867 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[28] Complete. Time taken: 00:00:51.971\n", - "2025-01-12 15:28:36,403 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[29] Complete. Time taken: 00:00:51.536\n", - "2025-01-12 15:29:28,646 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 29 until 30 epochs\n", - "2025-01-12 15:29:32,041 - INFO - Epoch[30] Metrics -- val_mean_abs_error: 0.0470 \n", - "2025-01-12 15:29:32,041 - INFO - Key metric: val_mean_abs_error best value: 0.04626006633043289 at epoch: 20\n", - "2025-01-12 15:29:32,041 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[30] Complete. Time taken: 00:00:03.394\n", - "2025-01-12 15:29:32,041 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.395\n", - "2025-01-12 15:29:32,077 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 30\n", - "2025-01-12 15:29:32,077 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[30] Complete. Time taken: 00:00:55.673\n", - "2025-01-12 15:30:23,055 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.00965067371726036\n", - "2025-01-12 15:30:23,055 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[31] Complete. Time taken: 00:00:50.978\n", - "2025-01-12 15:31:13,065 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.009442757815122604\n", - "2025-01-12 15:31:13,065 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[32] Complete. Time taken: 00:00:50.010\n", - "2025-01-12 15:32:03,203 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.008967726491391659\n", - "2025-01-12 15:32:03,203 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[33] Complete. Time taken: 00:00:50.138\n", - "2025-01-12 15:32:54,857 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[34] Complete. Time taken: 00:00:51.654\n", - "2025-01-12 15:33:46,354 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 34 until 35 epochs\n", - "2025-01-12 15:33:49,503 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.04337985813617706\n", - "2025-01-12 15:33:49,503 - INFO - Epoch[35] Metrics -- val_mean_abs_error: 0.0434 \n", - "2025-01-12 15:33:49,503 - INFO - Key metric: val_mean_abs_error best value: 0.04337985813617706 at epoch: 35\n", - "2025-01-12 15:33:49,503 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[35] Complete. Time taken: 00:00:03.148\n", - "2025-01-12 15:33:49,503 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.149\n", - "2025-01-12 15:33:49,541 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 35\n", - "2025-01-12 15:33:49,541 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[35] Complete. Time taken: 00:00:54.684\n", - "2025-01-12 15:34:39,577 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[36] Complete. Time taken: 00:00:50.036\n", - "2025-01-12 15:35:29,836 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[37] Complete. Time taken: 00:00:50.259\n", - "2025-01-12 15:36:20,156 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[38] Complete. Time taken: 00:00:50.319\n", - "2025-01-12 15:37:11,001 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[39] Complete. Time taken: 00:00:50.845\n", - "2025-01-12 15:38:00,893 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 39 until 40 epochs\n", - "2025-01-12 15:38:04,000 - INFO - Epoch[40] Metrics -- val_mean_abs_error: 0.0438 \n", - "2025-01-12 15:38:04,000 - INFO - Key metric: val_mean_abs_error best value: 0.04337985813617706 at epoch: 35\n", - "2025-01-12 15:38:04,001 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[40] Complete. Time taken: 00:00:03.107\n", - "2025-01-12 15:38:04,001 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.108\n", - "2025-01-12 15:38:04,036 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 40\n", - "2025-01-12 15:38:04,036 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[40] Complete. Time taken: 00:00:53.035\n", - "2025-01-12 15:38:55,442 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[41] Complete. Time taken: 00:00:51.406\n", - "2025-01-12 15:39:45,574 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[42] Complete. Time taken: 00:00:50.132\n", - "2025-01-12 15:40:35,569 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[43] Complete. Time taken: 00:00:49.995\n", - "2025-01-12 15:41:26,067 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[44] Complete. Time taken: 00:00:50.498\n", - "2025-01-12 15:42:16,779 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 44 until 45 epochs\n", - "2025-01-12 15:42:19,954 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.04306837171316147\n", - "2025-01-12 15:42:19,954 - INFO - Epoch[45] Metrics -- val_mean_abs_error: 0.0431 \n", - "2025-01-12 15:42:19,954 - INFO - Key metric: val_mean_abs_error best value: 0.04306837171316147 at epoch: 45\n", - "2025-01-12 15:42:19,954 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[45] Complete. Time taken: 00:00:03.175\n", - "2025-01-12 15:42:19,954 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.176\n", - "2025-01-12 15:42:19,991 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 45\n", - "2025-01-12 15:42:19,991 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[45] Complete. Time taken: 00:00:53.924\n", - "2025-01-12 15:43:10,711 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[46] Complete. Time taken: 00:00:50.719\n", - "2025-01-12 15:44:01,432 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[47] Complete. Time taken: 00:00:50.721\n", - "2025-01-12 15:44:51,691 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[48] Complete. Time taken: 00:00:50.259\n", - "2025-01-12 15:45:42,095 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[49] Complete. Time taken: 00:00:50.404\n", - "2025-01-12 15:46:31,322 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 49 until 50 epochs\n", - "2025-01-12 15:46:34,403 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.0430283285677433\n", - "2025-01-12 15:46:34,403 - INFO - Epoch[50] Metrics -- val_mean_abs_error: 0.0430 \n", - "2025-01-12 15:46:34,403 - INFO - Key metric: val_mean_abs_error best value: 0.0430283285677433 at epoch: 50\n", - "2025-01-12 15:46:34,403 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[50] Complete. Time taken: 00:00:03.081\n", - "2025-01-12 15:46:34,403 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.081\n", - "2025-01-12 15:46:34,438 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 50\n", - "2025-01-12 15:46:34,439 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[50] Complete. Time taken: 00:00:52.343\n", - "2025-01-12 15:47:24,391 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[51] Complete. Time taken: 00:00:49.953\n", - "2025-01-12 15:48:13,872 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.008929001167416573\n", - "2025-01-12 15:48:13,872 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[52] Complete. Time taken: 00:00:49.481\n", - "2025-01-12 15:49:03,685 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.008782487362623215\n", - "2025-01-12 15:49:03,685 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[53] Complete. Time taken: 00:00:49.813\n", - "2025-01-12 15:49:54,525 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.008487475104629993\n", - "2025-01-12 15:49:54,525 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[54] Complete. Time taken: 00:00:50.840\n", - "2025-01-12 15:50:44,821 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 54 until 55 epochs\n", - "2025-01-12 15:50:48,030 - INFO - Epoch[55] Metrics -- val_mean_abs_error: 0.0439 \n", - "2025-01-12 15:50:48,030 - INFO - Key metric: val_mean_abs_error best value: 0.0430283285677433 at epoch: 50\n", - "2025-01-12 15:50:48,030 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[55] Complete. Time taken: 00:00:03.209\n", - "2025-01-12 15:50:48,030 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.209\n", - "2025-01-12 15:50:48,065 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 55\n", - "2025-01-12 15:50:48,065 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[55] Complete. Time taken: 00:00:53.540\n", - "2025-01-12 15:51:38,621 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[56] Complete. Time taken: 00:00:50.556\n", - "2025-01-12 15:52:29,348 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[57] Complete. Time taken: 00:00:50.728\n", - "2025-01-12 15:53:19,125 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[58] Complete. Time taken: 00:00:49.777\n", - "2025-01-12 15:54:09,447 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[59] Complete. Time taken: 00:00:50.322\n", - "2025-01-12 15:55:00,218 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 59 until 60 epochs\n", - "2025-01-12 15:55:03,421 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.041947875171899796\n", - "2025-01-12 15:55:03,421 - INFO - Epoch[60] Metrics -- val_mean_abs_error: 0.0419 \n", - "2025-01-12 15:55:03,421 - INFO - Key metric: val_mean_abs_error best value: 0.041947875171899796 at epoch: 60\n", - "2025-01-12 15:55:03,421 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[60] Complete. Time taken: 00:00:03.203\n", - "2025-01-12 15:55:03,421 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.204\n", - "2025-01-12 15:55:03,457 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 60\n", - "2025-01-12 15:55:03,457 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[60] Complete. Time taken: 00:00:54.010\n", - "2025-01-12 15:55:53,564 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[61] Complete. Time taken: 00:00:50.106\n", - "2025-01-12 15:56:43,425 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[62] Complete. Time taken: 00:00:49.861\n", - "2025-01-12 15:57:33,398 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[63] Complete. Time taken: 00:00:49.973\n", - "2025-01-12 15:58:24,324 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[64] Complete. Time taken: 00:00:50.926\n", - "2025-01-12 15:59:14,813 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 64 until 65 epochs\n", - "2025-01-12 15:59:18,066 - ignite.engine.engine.SupervisedEvaluator - INFO - Got new best metric of val_mean_abs_error: 0.03936021775007248\n", - "2025-01-12 15:59:18,066 - INFO - Epoch[65] Metrics -- val_mean_abs_error: 0.0394 \n", - "2025-01-12 15:59:18,066 - INFO - Key metric: val_mean_abs_error best value: 0.03936021775007248 at epoch: 65\n", - "2025-01-12 15:59:18,066 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[65] Complete. Time taken: 00:00:03.252\n", - "2025-01-12 15:59:18,066 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.253\n", - "2025-01-12 15:59:18,102 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 65\n", - "2025-01-12 15:59:18,102 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[65] Complete. Time taken: 00:00:53.777\n", - "2025-01-12 16:00:08,835 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[66] Complete. Time taken: 00:00:50.733\n", - "2025-01-12 16:00:59,763 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[67] Complete. Time taken: 00:00:50.928\n", - "2025-01-12 16:01:50,445 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[68] Complete. Time taken: 00:00:50.682\n", - "2025-01-12 16:02:40,879 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[69] Complete. Time taken: 00:00:50.434\n", - "2025-01-12 16:03:31,271 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 69 until 70 epochs\n", - "2025-01-12 16:03:34,374 - INFO - Epoch[70] Metrics -- val_mean_abs_error: 0.0419 \n", - "2025-01-12 16:03:34,374 - INFO - Key metric: val_mean_abs_error best value: 0.03936021775007248 at epoch: 65\n", - "2025-01-12 16:03:34,374 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[70] Complete. Time taken: 00:00:03.103\n", - "2025-01-12 16:03:34,374 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.103\n", - "2025-01-12 16:03:34,410 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 70\n", - "2025-01-12 16:03:34,410 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[70] Complete. Time taken: 00:00:53.531\n", - "2025-01-12 16:04:24,720 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[71] Complete. Time taken: 00:00:50.310\n", - "2025-01-12 16:05:16,274 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[72] Complete. Time taken: 00:00:51.554\n", - "2025-01-12 16:06:07,155 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[73] Complete. Time taken: 00:00:50.880\n", - "2025-01-12 16:06:57,143 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[74] Complete. Time taken: 00:00:49.988\n", - "2025-01-12 16:07:47,371 - ignite.engine.engine.SupervisedTrainer - INFO - Got new best metric of train_acc: 0.008344327099621296\n", - "2025-01-12 16:07:47,371 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run resuming from iteration 0, epoch 74 until 75 epochs\n", - "2025-01-12 16:07:50,558 - INFO - Epoch[75] Metrics -- val_mean_abs_error: 0.0419 \n", - "2025-01-12 16:07:50,558 - INFO - Key metric: val_mean_abs_error best value: 0.03936021775007248 at epoch: 65\n", - "2025-01-12 16:07:50,558 - ignite.engine.engine.SupervisedEvaluator - INFO - Epoch[75] Complete. Time taken: 00:00:03.186\n", - "2025-01-12 16:07:50,558 - ignite.engine.engine.SupervisedEvaluator - INFO - Engine run complete. Time taken: 00:00:03.187\n", - "2025-01-12 16:07:50,595 - ignite.engine.engine.SupervisedTrainer - INFO - Saved checkpoint at epoch: 75\n", - "2025-01-12 16:07:50,595 - ignite.engine.engine.SupervisedTrainer - INFO - Epoch[75] Complete. Time taken: 00:00:53.452\n", - "2025-01-12 16:07:50,631 - ignite.engine.engine.SupervisedTrainer - INFO - Train completed, saved final checkpoint: results/output_250112_150340/model_final_iteration=75000.pt\n", - "2025-01-12 16:07:50,631 - ignite.engine.engine.SupervisedTrainer - INFO - Engine run complete. Time taken: 01:04:10.138\n" - ] - } - ], - "source": [ - "# multiple config files need to be specified this way with '' quotes, variable used in command line must be in \"\" quotes\n", - "configs=f\"'{bundle_root}/configs/common.yaml', '{bundle_root}/configs/train.yaml'\"\n", - "output_dir = \"outputs\"\n", - "!PYTHONPATH={bundle_root} python -m monai.bundle run training \\\n", - " --meta_file {bundle_root}/configs/metadata.json \\\n", - " --config_file \"{configs}\" \\\n", - " --logging_file {bundle_root}/configs/logging.conf \\\n", - " --bundle_root {bundle_root} \\\n", - " --dataset_dir {dataset_dir} \\\n", - " --output_dir {output_dir}" - ] - }, - { - "cell_type": "markdown", - "id": "f872fccf-12af-43ef-bdb5-f49bc74119fa", - "metadata": {}, - "source": [ - "### Test the diffusion model" - ] - }, - { - "cell_type": "markdown", - "id": "5030732c-deb5-448a-b575-385bda0fa308", - "metadata": {}, - "source": [ - "The test inference script can then be invoked as such to produce an output tensor saved to the given file with a randomly generated image. The `ckpt_path` value should point to the final checkpoint file created during the above training run, which will be in a subdirectory of `./results`. The training script's default behaviour is to create a new timestamped subdirectory in `./results` for every new run, this can be explicitly set by providing a `output_dir` value on the command line." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "40e6a3e9-3984-44b0-ba9a-5b8d58c7ea2d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2025-01-12 19:11:01,720 - INFO - --- input summary of monai.bundle.scripts.run ---\n", - "2025-01-12 19:11:01,721 - INFO - > config_file: ('./common.yaml',\n", - " './configs/infer.yaml')\n", - "2025-01-12 19:11:01,721 - INFO - > meta_file: './configs/metadata.json'\n", - "2025-01-12 19:11:01,721 - INFO - > run_id: 'testing'\n", - "2025-01-12 19:11:01,721 - INFO - > ckpt_path: './results/output_250112_150340/model_final_iteration=75000.pt'\n", - "2025-01-12 19:11:01,721 - INFO - > bundle_root: '/model-zoo/models/mednist_ddpm'\n", - "2025-01-12 19:11:01,721 - INFO - > out_file: 'test.pt'\n", - "2025-01-12 19:11:01,721 - INFO - ---\n", - "\n", - "\n", - "2025-01-12 19:11:01,721 - INFO - Setting logging properties based on config: ./configs/logging.conf.\n", - ":1: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n", - "100%|██████████████████████████████████████| 1000/1000 [00:08<00:00, 112.66it/s]\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_2473027/522477091.py:5: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n", - " test = torch.load(\"test.pt\", map_location=\"cpu\")\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "

" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "configs=f\"'{bundle_root}/configs/common.yaml', '{bundle_root}/configs/infer.yaml'\"\n", - "\n", - "!PYTHONPATH={bundle_root} python -m monai.bundle run testing \\\n", - " --meta_file {bundle_root}/configs/metadata.json \\\n", - " --config_file \"{configs}\" \\\n", - " --ckpt_path ./results/{output_dir}/model_final_iteration=75000.pt \\\n", - " --bundle_root {bundle_root} \\\n", - " --out_file test.pt\n", - "\n", - "test = torch.load(\"test.pt\", map_location=\"cpu\")\n", - "\n", - "plt.imshow(test[0, 0], vmin=0, vmax=1, cmap=\"gray\")" - ] - }, - { - "cell_type": "markdown", - "id": "f581c36e-4033-4005-8969-76205470588e", - "metadata": {}, - "source": [ - "The same can be done by creating the parser object, filling in its configuration, then resolving the Python objects from the constructed bundle data:" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "cf8438b3-4c7d-48c4-bb41-ed7def73753f", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [00:08<00:00, 113.56it/s]\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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t/jzzjvvFJe55pprshkzZmRPP/10tn379qyxsTFrbGxMuNV+N910U7Z58+Zs165d2S9+8YvspptuyioqKrL//M//zLKsPPYx5PdTcFlWHvt54403Zs8880y2a9eu7Oc//3nW1NSUnXzyydm+ffuyLCuPfcyyLHvuueeysWPHZt/4xjeynTt3Zt///vezE044IfvXf/3X4jLH+zOoZAegLMuyb3/729mMGTOy6urq7Pzzz8+2bt2aepNG5Kc//WkmadDPsmXLsix7NwZ58803Z/X19VmhUMguvvjibMeOHWk32im0f5KydevWFZc5ePBg9rd/+7fZiSeemJ1wwgnZn//5n2d79+5Nt9HH4G/+5m+ymTNnZtXV1dkpp5ySXXzxxcXBJ8vKYx9Djh6AymE/r7jiimzKlClZdXV19gd/8AfZFVdckb3++uvF18thH9/z2GOPZWeddVZWKBSyOXPmZPfff/+A14/3ZxDzAQEAkijJZ0AAgPLHAAQASIIBCACQBAMQACAJBiAAQBIMQACAJBiAAABJMAABAJJgAAIAJMEABABIggEIAJDE/wP0V4VDuW3pfwAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import sys\n", - "\n", - "sys.path.append(bundle_root) # make sure we load the script files we need\n", - "\n", - "# configure the parser from the bundle's information\n", - "cp = ConfigParser()\n", - "cp.read_meta(f\"{bundle_root}/configs/metadata.json\")\n", - "cp.read_config([f\"{bundle_root}/configs/common.yaml\", f\"{bundle_root}/configs/infer.yaml\"])\n", - "cp[\"bundle_root\"] = bundle_root\n", - "cp[\"ckpt_path\"] = f\"./results/{output_dir}/model_final_iteration=75000.pt\"\n", - "\n", - "cp.get_parsed_content(\"load_state\") # load the saved state from the checkpoint just be resolving this value\n", - "\n", - "device = cp.get_parsed_content(\"device\") # device used by the bundle\n", - "sample = cp.get_parsed_content(\"sample\") # test sampling function\n", - "\n", - "image_dim = cp[\"image_dim\"] # get the stored dimension value, no need to resolve anything\n", - "\n", - "noise = torch.rand(1, 1, image_dim, image_dim).to(device) # or cp.get_parsed_content(\"noise\")\n", - "\n", - "test = sample(noise)\n", - "\n", - "plt.imshow(test[0, 0].cpu(), vmin=0, vmax=1, cmap=\"gray\")" - ] - }, - { - "cell_type": "markdown", - "id": "2feab4e5-2745-4d35-9eec-a2bb8340cf51", - "metadata": {}, - "source": [ - "Multi-GPU can be enabled by including the `train_multigpu.yaml` configuration file:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "173cda1c-ac90-410f-b34d-b6cbb0044c7a", - "metadata": {}, - "outputs": [], - "source": [ - "configs=f\"'{bundle_root}/configs/common.yaml', '{bundle_root}/configs/train.yaml', '{bundle_root}/configs/train_multigpu.yaml'\"\n", - "\n", - "!PYTHONPATH={bundle_root} torchrun --standalone --nnodes=1 --nproc_per_node=2 -m monai.bundle run training \\\n", - " --meta_file {bundle_root}/configs/metadata.json \\\n", - " --config_file \"{configs}\" \\\n", - " --logging_file {bundle_root}/configs/logging.conf \\\n", - " --bundle_root {bundle_root} \\\n", - " --dataset_dir {dataset_dir} \\\n", - " --output_dir {output_dir} " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cb719023-8250-43c4-ab10-911829332498", - "metadata": {}, - "outputs": [], - "source": [ - "if directory is None:\n", - " shutil.rmtree(dataset_dir)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.10" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/models/mednist_ddpm/docs/README.md b/models/mednist_ddpm/docs/README.md deleted file mode 100644 index b8fbc440..00000000 --- a/models/mednist_ddpm/docs/README.md +++ /dev/null @@ -1,11 +0,0 @@ - -# MedNIST DDPM Example Bundle - -This implements roughly equivalent code to the "Denoising Diffusion Probabilistic Models with MedNIST Dataset" -example notebook. This includes scripts for training with single or multiple GPUs and a visualisation notebook. - - -The files included here demonstrate how to use the bundle: - * [2d_ddpm_bundle_tutorial.ipynb](./2d_ddpm_bundle_tutorial.ipynb) - demonstrates command line and in-code invocation of the bundle's training and inference scripts - * [sub_train.sh](sub_train.sh) - SLURM submission script example for training - * [sub_train_multigpu.sh](sub_train_multigpu.sh) - SLURM submission script example for training with multiple GPUs diff --git a/models/mednist_ddpm/docs/sub_train.sh b/models/mednist_ddpm/docs/sub_train.sh deleted file mode 100755 index 8d566d22..00000000 --- a/models/mednist_ddpm/docs/sub_train.sh +++ /dev/null @@ -1,31 +0,0 @@ -#! /bin/bash -#SBATCH --nodes=1 -#SBATCH -J mednist_train -#SBATCH -c 4 -#SBATCH --gres=gpu:1 -#SBATCH --time=2:00:00 -#SBATCH -p small - -set -v - -# change this if run submitted from a different directory -export BUNDLE="$(pwd)/.." - -# change this to load a checkpoint instead of started from scratch -CKPT=none - -CONFIG="'$BUNDLE/configs/common.yaml', '$BUNDLE/configs/train.yaml'" - -# change this to point to where MedNIST is located -DATASET="$(pwd)" - -# it's useful to include the configuration in the log file -cat "$BUNDLE/configs/common.yaml" -cat "$BUNDLE/configs/train.yaml" - -python -m monai.bundle run training \ - --meta_file "$BUNDLE/configs/metadata.json" \ - --config_file "$CONFIG" \ - --logging_file "$BUNDLE/configs/logging.conf" \ - --bundle_root "$BUNDLE" \ - --dataset_dir "$DATASET" diff --git a/models/mednist_ddpm/docs/sub_train_multigpu.sh b/models/mednist_ddpm/docs/sub_train_multigpu.sh deleted file mode 100644 index 8ed26ddc..00000000 --- a/models/mednist_ddpm/docs/sub_train_multigpu.sh +++ /dev/null @@ -1,33 +0,0 @@ -#! /bin/bash -#SBATCH --nodes=1 -#SBATCH -J mednist_train -#SBATCH -c 4 -#SBATCH --gres=gpu:2 -#SBATCH --time=2:00:00 -#SBATCH -p big - -set -v - -# change this if run submitted from a different directory -export BUNDLE="$(pwd)/.." - -# change this to load a checkpoint instead of started from scratch -CKPT=none - -CONFIG="'$BUNDLE/configs/common.yaml', '$BUNDLE/configs/train.yaml', '$BUNDLE/configs/train_multigpu.yaml'" - -# change this to point to where MedNIST is located -DATASET="$(pwd)" - -# it's useful to include the configuration in the log file -cat "$BUNDLE/configs/common.yaml" -cat "$BUNDLE/configs/train.yaml" -cat "$BUNDLE/configs/train_multigpu.yaml" - -# remember to change arguments to match how many nodes and GPUs you have -torchrun --standalone --nnodes=1 --nproc_per_node=2 -m monai.bundle run training \ - --meta_file "$BUNDLE/configs/metadata.json" \ - --config_file "$CONFIG" \ - --logging_file "$BUNDLE/configs/logging.conf" \ - --bundle_root "$BUNDLE" \ - --dataset_dir "$DATASET" diff --git a/models/mednist_ddpm/docs/test.pt b/models/mednist_ddpm/docs/test.pt deleted file mode 100644 index 39b12ae12b1677adf672bb212cf906474ba0fb41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17485 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 diff --git a/models/mednist_ddpm/scripts/__init__.py b/models/mednist_ddpm/scripts/__init__.py deleted file mode 100644 index c44e4a34..00000000 --- a/models/mednist_ddpm/scripts/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from __future__ import annotations - - -def inv_metric_cmp_fn(current_metric: float, prev_best: float) -> bool: - """ - This inverts comparison for those metrics which reduce like loss values, such that the lower one is better. - - Args: - current_metric: metric value of current round computation. - prev_best: the best metric value of previous rounds to compare with. - """ - return current_metric < prev_best From 9161f0b0f916666625979b8d61649938bf896efc Mon Sep 17 00:00:00 2001 From: "R. Garcia-Dias" Date: Mon, 20 Jan 2025 10:04:57 +0000 Subject: [PATCH 26/33] Corrects unittest and verify_bundle to include brain synthesis only --- ..._image_synthesis_latent_diffusion_model.py | 48 ------------------- ci/verify_bundle.py | 4 +- 2 files changed, 2 insertions(+), 50 deletions(-) delete mode 100644 ci/unit_tests/test_cxr_image_synthesis_latent_diffusion_model.py diff --git a/ci/unit_tests/test_cxr_image_synthesis_latent_diffusion_model.py b/ci/unit_tests/test_cxr_image_synthesis_latent_diffusion_model.py deleted file mode 100644 index 83f39293..00000000 --- a/ci/unit_tests/test_cxr_image_synthesis_latent_diffusion_model.py +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (c) MONAI Consortium -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os -import shutil -import tempfile -import unittest - -import numpy as np -from monai.bundle import ConfigWorkflow -from parameterized import parameterized -from utils import check_workflow - -TEST_CASE_1 = [ # inference - { - "bundle_root": "models/cxr_image_synthesis_latent_diffusion_model", - "prompt": "Big right-sided pleural effusion. Normal left lung.", - "guidance_scale": 7.0, - } -] - - -class TestCXRLatentDiffusionInference(unittest.TestCase): - @parameterized.expand([TEST_CASE_1]) - def test_inference(self, params): - bundle_root = params["bundle_root"] - inference_file = os.path.join(bundle_root, "configs/inference.json") - trainer = ConfigWorkflow( - workflow_type="inference", - config_file=inference_file, - logging_file=os.path.join(bundle_root, "configs/logging.conf"), - meta_file=os.path.join(bundle_root, "configs/metadata.json"), - **params, - ) - check_workflow(trainer, check_properties=True) - - -if __name__ == "__main__": - loader = unittest.TestLoader() - unittest.main(testLoader=loader) diff --git a/ci/verify_bundle.py b/ci/verify_bundle.py index 7beca3e5..c7a57805 100644 --- a/ci/verify_bundle.py +++ b/ci/verify_bundle.py @@ -54,8 +54,8 @@ def _get_weights_names(bundle: str): if bundle == "pediatric_abdominal_ct_segmentation": # skip test for this bundle's ts file return "dynunet_FT.pt", None - if bundle == "cxr_image_synthesis_latent_diffusion_model": - return "autoencoder.pt", None + if bundle == "brain_image_synthesis_latent_diffusion": + return "autoencoder.pt", "model.pt" return "model.pt", "model.ts" From 1672aa14f87da9e41cfa05d9a2289c4249a7c482 Mon Sep 17 00:00:00 2001 From: "R. Garcia-Dias" Date: Tue, 21 Jan 2025 11:26:27 +0000 Subject: [PATCH 27/33] Documentation corrections --- .../configs/inference.json | 3 +-- .../configs/metadata.json | 2 +- .../docs/README.md | 6 +++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json b/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json index abbe0e98..6e7b0262 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json +++ b/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json @@ -1,5 +1,4 @@ { - "_mode_": "debug", "imports": [ "$import torch", "$from datetime import datetime", @@ -104,7 +103,7 @@ }, "sample": "$@sampler.sampling_fn(@noise, @autoencoder, @diffusion, @scheduler, @conditioning)", "saver": { - "_target_": "scripts.saver.NiftiSaver", + "_target_": "SaveImage", "_requires_": "@create_output_dir", "output_dir": "@output_dir" }, diff --git a/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json b/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json index 11e2d3d6..94b93ee1 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json +++ b/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json @@ -2,7 +2,7 @@ "schema": "https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/meta_schema_20220324.json", "version": "1.0.0", "changelog": { - "1.0.8": "Initial release" + "1.0.0": "Initial release" }, "monai_version": "1.4.0", "pytorch_version": "2.5.1", diff --git a/models/brain_image_synthesis_latent_diffusion_model/docs/README.md b/models/brain_image_synthesis_latent_diffusion_model/docs/README.md index cc5e6126..f5783ce3 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/docs/README.md +++ b/models/brain_image_synthesis_latent_diffusion_model/docs/README.md @@ -36,9 +36,9 @@ Please, check Table 1 of the original paper for more details regarding evaluatio Execute sampling: ```shell -export PYTHONPATH=$PYTHONPATH:"" -$ python -m monai.bundle run --config_file configs/inference.json --gender 1.0 --age 0.7 --ventricular_vol 0.7 --brain_vol 0.5 +python -m monai.bundle run --config_file configs/inference.json --gender 1.0 --age 0.7 --ventricular_vol 0.7 --brain_vol 0.5 ``` + All conditioning are expected to have values between 0 and 1 ## Using a new version of the model @@ -48,7 +48,7 @@ to avoid the function load_old_state_dict being called instead of load_state_dic required to load the checkpoint from the original GenerativeModels repository. ```shell -$ python -m monai.bundle run --config_file configs/inference.json --gender 1.0 --age 0.7 --ventricular_vol 0.7 --brain_vol 0.5 --load_old 0 +python -m monai.bundle run --config_file configs/inference.json --gender 1.0 --age 0.7 --ventricular_vol 0.7 --brain_vol 0.5 --load_old 0 ``` ## **Citation Info** From 0fcc2bda7eb627367595123ee735d9df2224a2cf Mon Sep 17 00:00:00 2001 From: rd24_lihe055 Date: Tue, 21 Jan 2025 12:04:24 +0000 Subject: [PATCH 28/33] replaces custom saver with SaveImage --- .../configs/inference.json | 6 ++-- .../scripts/saver.py | 29 ------------------- 2 files changed, 3 insertions(+), 32 deletions(-) delete mode 100644 models/brain_image_synthesis_latent_diffusion_model/scripts/saver.py diff --git a/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json b/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json index 6e7b0262..206d1130 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json +++ b/models/brain_image_synthesis_latent_diffusion_model/configs/inference.json @@ -105,8 +105,8 @@ "saver": { "_target_": "SaveImage", "_requires_": "@create_output_dir", - "output_dir": "@output_dir" + "output_dir": "@output_dir", + "output_postfix": "@out_file" }, - "run": "$@saver.save(@sample, @out_file)", - "save": "$torch.save(@sample, @output_dir + '/' + @out_file + '.pt')" + "run": "$@saver(@sample[0][0])" } diff --git a/models/brain_image_synthesis_latent_diffusion_model/scripts/saver.py b/models/brain_image_synthesis_latent_diffusion_model/scripts/saver.py deleted file mode 100644 index de882df0..00000000 --- a/models/brain_image_synthesis_latent_diffusion_model/scripts/saver.py +++ /dev/null @@ -1,29 +0,0 @@ -from __future__ import annotations - -import nibabel as nib -import numpy as np -import torch - - -class NiftiSaver: - def __init__(self, output_dir: str) -> None: - super().__init__() - self.output_dir = output_dir - self.affine = np.array( - [ - [-1.0, 0.0, 0.0, 96.48149872], - [0.0, 1.0, 0.0, -141.47715759], - [0.0, 0.0, 1.0, -156.55375671], - [0.0, 0.0, 0.0, 1.0], - ] - ) - - def save(self, image_data: torch.Tensor, file_name: str) -> None: - image_data = image_data.cpu().numpy() - image_data = image_data[0, 0, 5:-5, 5:-5, :-15] - image_data = (image_data - image_data.min()) / (image_data.max() - image_data.min()) - image_data = (image_data * 255).astype(np.uint8) - - empty_header = nib.Nifti1Header() - sample_nii = nib.Nifti1Image(image_data, self.affine, empty_header) - nib.save(sample_nii, f"{str(self.output_dir)}/{file_name}.nii.gz") From e72ec391d3014928b3d3009358e4aa481506f28c Mon Sep 17 00:00:00 2001 From: rd24_lihe055 Date: Tue, 21 Jan 2025 13:21:16 +0000 Subject: [PATCH 29/33] Corrects citation on README --- .../brain_image_synthesis_latent_diffusion_model/docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/brain_image_synthesis_latent_diffusion_model/docs/README.md b/models/brain_image_synthesis_latent_diffusion_model/docs/README.md index f5783ce3..3d80474b 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/docs/README.md +++ b/models/brain_image_synthesis_latent_diffusion_model/docs/README.md @@ -53,7 +53,7 @@ python -m monai.bundle run --config_file configs/inference.json --gender 1.0 --a ## **Citation Info** -```json +```bibtex @inproceedings{pinaya2022brain, title={Brain imaging generation with latent diffusion models}, author={Pinaya, Walter HL and Tudosiu, Petru-Daniel and Dafflon, Jessica and Da Costa, Pedro F and Fernandez, Virginia and Nachev, Parashkev and Ourselin, Sebastien and Cardoso, M Jorge}, From a751df515a35a88d7ca5f57b534511eab178a8ba Mon Sep 17 00:00:00 2001 From: "R. Garcia-Dias" Date: Fri, 24 Jan 2025 17:13:07 +0000 Subject: [PATCH 30/33] Adds format to metadata --- .../configs/metadata.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json b/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json index 94b93ee1..b2d0f441 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json +++ b/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json @@ -36,6 +36,7 @@ 0, 1 ], + "format": "nii", "is_patch_data": false, "channel_def": { "0": "Gender", @@ -48,8 +49,7 @@ "outputs": { "pred": { "type": "image", - "format": "magnitude", - "modality": "MR", + "format": "image", "num_channels": 1, "spatial_shape": [ 160, @@ -61,6 +61,7 @@ 0, 1 ], + "modality": "MR", "is_patch_data": false, "channel_def": { "0": "T1w" From 0b508e50e3c72197e8928b6f5b07357d9e88a346 Mon Sep 17 00:00:00 2001 From: "R. Garcia-Dias" Date: Mon, 27 Jan 2025 09:31:03 +0000 Subject: [PATCH 31/33] fix flake8 problems ignored by ./runtests.sh --autofix --- .../test_brain_image_synthesis_latent_diffusion_model.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/ci/unit_tests/test_brain_image_synthesis_latent_diffusion_model.py b/ci/unit_tests/test_brain_image_synthesis_latent_diffusion_model.py index 0543b403..93fa0c40 100644 --- a/ci/unit_tests/test_brain_image_synthesis_latent_diffusion_model.py +++ b/ci/unit_tests/test_brain_image_synthesis_latent_diffusion_model.py @@ -10,11 +10,8 @@ # limitations under the License. import os -import shutil -import tempfile import unittest -import numpy as np from monai.bundle import ConfigWorkflow from parameterized import parameterized from utils import check_workflow From 33dc75552517fcd9706fbbf1a8099e33657f8a4d Mon Sep 17 00:00:00 2001 From: "R. Garcia-Dias" Date: Mon, 27 Jan 2025 10:20:26 +0000 Subject: [PATCH 32/33] Adding missing property to schema compliance --- .../configs/metadata.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json b/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json index b2d0f441..7e1bfc52 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json +++ b/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json @@ -37,6 +37,11 @@ 1 ], "format": "nii", + "spatial_shape": [ + 160, + 224, + 160 + ], "is_patch_data": false, "channel_def": { "0": "Gender", From 2bf89c58af2cd428a28fc18b305c358200bd7ceb Mon Sep 17 00:00:00 2001 From: Rafael Garcia-Dias Date: Mon, 27 Jan 2025 13:58:06 +0000 Subject: [PATCH 33/33] Update models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json Co-authored-by: Eric Kerfoot <17726042+ericspod@users.noreply.github.com> Signed-off-by: Rafael Garcia-Dias --- .../configs/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json b/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json index 7e1bfc52..1cb61e71 100644 --- a/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json +++ b/models/brain_image_synthesis_latent_diffusion_model/configs/metadata.json @@ -1,5 +1,5 @@ { - "schema": "https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/meta_schema_20220324.json", + "schema": "https://github.com/Project-MONAI/MONAI-extra-test-data/releases/download/0.8.1/meta_schema_20240725.json", "version": "1.0.0", "changelog": { "1.0.0": "Initial release"

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≦MKwgLetShiavcK^^H-2;@HCto$`0^}ku< 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 z