Skip to content

Conversation

@yiheng-wang-nv
Copy link
Contributor

@yiheng-wang-nv yiheng-wang-nv commented Apr 12, 2022

Fixes #4095 .

This PR is used to add download and load features for monai.bundle, and users can download bundle zip file from github releases or url. The load function is able to load model weights, or TorchScript module from bundle.

Status

Ready

Types of changes

  • Non-breaking change (fix or new feature that would not break existing functionality).
  • Breaking change (fix or new feature that would cause existing functionality to change).
  • New tests added to cover the changes.
  • Integration tests passed locally by running ./runtests.sh -f -u --net --coverage.
  • Quick tests passed locally by running ./runtests.sh --quick --unittests --disttests.
  • In-line docstrings updated.
  • Documentation updated, tested make html command in the docs/ folder.

yiheng-wang-nv and others added 4 commits April 8, 2022 23:49
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
yiheng-wang-nv and others added 10 commits April 14, 2022 22:37
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
… into add-bundle-download

Signed-off-by: Yiheng Wang <vennw@nvidia.com>
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
@yiheng-wang-nv yiheng-wang-nv marked this pull request as ready for review April 19, 2022 09:31
@yiheng-wang-nv yiheng-wang-nv changed the title [WIP] 4095 Add bundle download 4095 Add bundle download Apr 19, 2022
@yiheng-wang-nv
Copy link
Contributor Author

Hi @Nic-Ma @ericspod @wyli , to do the unit test, I added a new release in: https://github.com/Project-MONAI/MONAI-extra-test-data/releases/tag/test_bundle
I'm not sure if it is a good way, and do you have any suggestions? Thanks!

Signed-off-by: Yiheng Wang <vennw@nvidia.com>
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
@ericspod
Copy link
Member

If we do it's fine but doesn't really illustrate the correct configuration, you could do the release a second time with just the zip file with things in the right places.

yiheng-wang-nv and others added 2 commits April 20, 2022 19:23
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
@Nic-Ma
Copy link
Contributor

Nic-Ma commented Apr 20, 2022

Hi @ericspod ,

@yiheng-wang-nv and I tried to revisit this "subdirectories" issue today, how about let's simply the first version API:

  1. Put the bundle in a zip file with well folder structures, then upload it to the Github release of some repo. For the CI test bundle, we can just put it to: https://github.com/Project-MONAI/MONAI-extra-test-data/releases/tag/0.8.1.
  2. The monai.bundle download API only supports downloading the whole bundle zip directly, similar to our existing MMAR API: https://github.com/Project-MONAI/MONAI/blob/dev/monai/apps/mmars/mmars.py#L97.
  3. I imagine we will show a list of bundles and the corresponding description in https://monai.io/, so we don't need to consider the files browser of a bundle in Github release directly.
  4. The load API still supports to automatically download a bundle and load weights or torchscript model from it.

What do you think?

Thanks in advance.

@ericspod
Copy link
Member

Hi @ericspod ,

@yiheng-wang-nv and I tried to revisit this "subdirectories" issue today, how about let's simply the first version API:

1. Put the bundle in a `zip` file with well folder structures, then upload it to the Github release of some repo. For the CI test bundle, we can just put it to: https://github.com/Project-MONAI/MONAI-extra-test-data/releases/tag/0.8.1.

2. The `monai.bundle download` API only supports downloading the whole bundle zip directly, similar to our existing MMAR API: https://github.com/Project-MONAI/MONAI/blob/dev/monai/apps/mmars/mmars.py#L97.

3. I imagine we will show a list of bundles and the corresponding description in https://monai.io/, so we don't need to consider the files browser of a bundle in Github release directly.

4. The `load` API still supports to automatically download a bundle and load weights or torchscript model from it.

What do you think?

Thanks in advance.

OK sounds good let's go with this and address any issues we might come up with in subsequent revisions. This looks good for the first version.

yiheng-wang-nv and others added 2 commits April 21, 2022 14:48
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
Copy link
Contributor

@Nic-Ma Nic-Ma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the quick update.
Looks good to me except for some minor suggestions.

Thanks.

Signed-off-by: Nic Ma <nma@nvidia.com>
Copy link
Contributor

@Nic-Ma Nic-Ma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the quick update.
Looks good to me except for some minor comments inline.

Thanks.

Signed-off-by: Yiheng Wang <vennw@nvidia.com>
@Nic-Ma
Copy link
Contributor

Nic-Ma commented Apr 22, 2022

/black

@Nic-Ma
Copy link
Contributor

Nic-Ma commented Apr 22, 2022

/build

@Nic-Ma Nic-Ma enabled auto-merge (squash) April 22, 2022 14:56
@Nic-Ma Nic-Ma merged commit e0e2e65 into Project-MONAI:dev Apr 22, 2022
wyli added a commit that referenced this pull request Apr 26, 2022
* 4095 Add bundle download (#4114)

* draft download

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* update bundle download

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* add url and load

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* rename args and remove a few places

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix flake8 issue

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* enhance with reviews

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* add instantiate for load

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* fix black error

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* add unittest

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* add load to docs

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* add skip

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* add schemaerror

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* fix partial places

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* download zip bundle

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* [DLMED] restore Exception for test

Signed-off-by: Nic Ma <nma@nvidia.com>

* update ts features

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* add config_files test case

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* enhance docstring example for args_file

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Nic Ma <nma@nvidia.com>

* Disable pylint error and fix CI tests of new tifffile (#4162)

* workaround

Signed-off-by: Nic Ma <nma@nvidia.com>

* [DLMED] fix tifffile issue

Signed-off-by: Nic Ma <nma@nvidia.com>

* Fixed an error in DiNTS model implementation and enabled act and norm layer options (#4157)

* fixed a bug

Signed-off-by: dongy <dongy@nvidia.com>

* autofix

Signed-off-by: dongy <dongy@nvidia.com>

* update test case

Signed-off-by: dongy <dongy@nvidia.com>

Co-authored-by: dongy <dongy@nvidia.com>

* Split transform (#4153)

* Redesign whole slide image reading (#4107)

* Redesign BaseWSIReader,  WSIReader, CuCIMWSIReader

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Add unittests for WSIReader

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Add image mode for output validation

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Update docs

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Update references to new WSIReader

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Remove legacy WSIReader

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Update unittests

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Update docs

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* sort imports

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Clean up imports

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Update docstrings

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Update docs and docstrings

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix a typo

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Remove redundant checking

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Update read and other methods

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Update wsireader to support multi image and update docstrings

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Make workaround for CuImage objects

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Add unittests for multi image reading

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Update a note about cucim

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Update type hints and docstrings

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Implement Split transform

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Add unittests

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Update formatting

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Implement SplitDict

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Add unittests for SplitDict

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Add docs

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Remove images from docs

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Address all comments

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Add example and size check

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Update docs

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Revert references to new wsireader

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* Add missing comma

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

* fix bundle download test issue (#4169)

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* 4094 Enhance `ckpt_export` to save config files (#4159)

* [DLMED] enhance checkpoint export

Signed-off-by: Nic Ma <nma@nvidia.com>

* [DLMED] update according to comments

Signed-off-by: Nic Ma <nma@nvidia.com>

* Move RGB/RGBA checks to base class (#4171)

Signed-off-by: Behrooz <3968947+drbeh@users.noreply.github.com>

Co-authored-by: Nic Ma <nma@nvidia.com>

* [CICD] To support temp dgx runner (#4175)

* Support new temp dgx runner

Signed-off-by: Peixin Li <pxli@nyu.edu>

* atol 1e-5

Signed-off-by: Wenqi Li <wenqil@nvidia.com>

Co-authored-by: Wenqi Li <wenqil@nvidia.com>

* Test fix for AMP kwargs (#4178)

Signed-off-by: Eric Kerfoot <eric.kerfoot@kcl.ac.uk>

Co-authored-by: Yiheng Wang <68361391+yiheng-wang-nv@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Nic Ma <nma@nvidia.com>
Co-authored-by: dongyang0122 <don.yang.mech@gmail.com>
Co-authored-by: dongy <dongy@nvidia.com>
Co-authored-by: Behrooz <3968947+drbeh@users.noreply.github.com>
Co-authored-by: Peixin <pxli@nyu.edu>
Co-authored-by: Eric Kerfoot <17726042+ericspod@users.noreply.github.com>
Can-Zhao pushed a commit to Can-Zhao/MONAI that referenced this pull request May 10, 2022
* draft download

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* update bundle download

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* add url and load

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* rename args and remove a few places

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix flake8 issue

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* enhance with reviews

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* add instantiate for load

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* fix black error

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* add unittest

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* add load to docs

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* add skip

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* add schemaerror

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* fix partial places

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* download zip bundle

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* [DLMED] restore Exception for test

Signed-off-by: Nic Ma <nma@nvidia.com>

* update ts features

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* add config_files test case

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

* enhance docstring example for args_file

Signed-off-by: Yiheng Wang <vennw@nvidia.com>

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Nic Ma <nma@nvidia.com>
@Nic-Ma Nic-Ma mentioned this pull request May 11, 2022
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Checkpoint Download Automation for Bundles

3 participants