Skip to content

Conversation

@Nic-Ma
Copy link
Contributor

@Nic-Ma Nic-Ma commented May 3, 2022

Fixes #4217 .

Description

This PR updated the PyTorch base docker and CI tests docker to 22.04.

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.

@Nic-Ma
Copy link
Contributor Author

Nic-Ma commented May 3, 2022

/black

@Nic-Ma
Copy link
Contributor Author

Nic-Ma commented May 3, 2022

/build

@Nic-Ma
Copy link
Contributor Author

Nic-Ma commented May 3, 2022

/integration-test

@Nic-Ma
Copy link
Contributor Author

Nic-Ma commented May 3, 2022

Hi @rijobro ,

When I try to run our CI tests on the latest PyTorch docker, got the same error from MetaTensor test cases, like:

======================================================================
ERROR: test_copy_9 (__main__.TestMetaTensor)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/opt/conda/lib/python3.8/site-packages/parameterized/parameterized.py", line 533, in standalone_func
    return func(*(a + p.args), **p.kwargs)
  File "tests/test_meta_tensor.py", line 172, in test_copy
    a = deepcopy(m)
  File "/opt/conda/lib/python3.8/copy.py", line 153, in deepcopy
    y = copier(memo)
  File "/opt/conda/lib/python3.8/site-packages/torch/_tensor.py", line 86, in __deepcopy__
    return handle_torch_function(Tensor.__deepcopy__, (self,), self, memo)
  File "/opt/conda/lib/python3.8/site-packages/torch/overrides.py", line 1394, in handle_torch_function
    result = torch_func_method(public_api, types, args, kwargs)
  File "/workspace/data/medical/MONAI/monai/data/meta_tensor.py", line 187, in __torch_function__
    ret = super().__torch_function__(func, types, args, kwargs)
  File "/opt/conda/lib/python3.8/site-packages/torch/_tensor.py", line 1178, in __torch_function__
    ret = func(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/torch/_tensor.py", line 141, in __deepcopy__
    raise RuntimeError("The default implementation of __deepcopy__() for non-wrapper subclasses "
RuntimeError: The default implementation of __deepcopy__() for non-wrapper subclasses only works for subclass types that implement new_empty() and for which that function returns another instance of the same subclass. You should either properly implement new_empty() for your subclass or override __deepcopy__() if it is intended behavior for new_empty() to return an instance of a different type.

Do you have any idea?

Thanks in advance.

@Nic-Ma
Copy link
Contributor Author

Nic-Ma commented May 3, 2022

BTW, except for the MetaTensor tests, I manually executed all the integration tests on V100 locally, all passed OK.

Thanks.

@rijobro
Copy link
Contributor

rijobro commented May 4, 2022

@wyli did any of your recent MetaTensor commits fix the issue @Nic-Ma is referring to, or do I still need to look into this? Thanks

@wyli
Copy link
Contributor

wyli commented May 4, 2022

@wyli did any of your recent MetaTensor commits fix the issue @Nic-Ma is referring to, or do I still need to look into this? Thanks

yes, I forgot to get back to the dev branch, I'll look into this.

wyli and others added 3 commits May 4, 2022 11:09
Signed-off-by: Wenqi Li <wenqil@nvidia.com>
Signed-off-by: Wenqi Li <wenqil@nvidia.com>
@wyli wyli force-pushed the 4217-update-pytorch branch from b04343b to c095f92 Compare May 4, 2022 15:04
@wyli
Copy link
Contributor

wyli commented May 4, 2022

@wyli did any of your recent MetaTensor commits fix the issue @Nic-Ma is referring to, or do I still need to look into this? Thanks

yes, I forgot to get back to the dev branch, I'll look into this.

this seems to address the issue c095f92 please let me know if there's a better way

@Nic-Ma Nic-Ma marked this pull request as ready for review May 5, 2022 00:26
@Nic-Ma Nic-Ma changed the title [WIP] 4217 update pytorch 4217 Update PyTorch docker to 22..04 May 5, 2022
@Nic-Ma Nic-Ma changed the title 4217 Update PyTorch docker to 22..04 4217 Update PyTorch docker to 22.04 May 5, 2022
@Nic-Ma
Copy link
Contributor Author

Nic-Ma commented May 5, 2022

/build

@Nic-Ma
Copy link
Contributor Author

Nic-Ma commented May 5, 2022

@wyli @rijobro Thanks for your fix! This PR is ready for review now.

@Nic-Ma Nic-Ma requested review from ericspod, rijobro and wyli May 5, 2022 00:28
@Nic-Ma
Copy link
Contributor Author

Nic-Ma commented May 5, 2022

/build

1 similar comment
@Nic-Ma
Copy link
Contributor Author

Nic-Ma commented May 5, 2022

/build

Copy link
Contributor

@wyli wyli left a comment

Choose a reason for hiding this comment

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

looks good to me, there might be a more efficient way to implement new_empty

self.as_tensor().new_empty(size=size, dtype=dtype, device=device, requires_grad=requires_grad)

@wyli wyli merged commit b10364c into Project-MONAI:dev May 5, 2022
wyli added a commit that referenced this pull request May 5, 2022
* add swin_unetr model (#4074)

* add swin_unetr model

* 4217 Update PyTorch docker to 22.04 (#4218)

* [DLMED] update to 22.04

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

* fixes unit test tests.test_lr_finder

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

* test new_empty

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

Co-authored-by: Wenqi Li <wenqil@nvidia.com>
Co-authored-by: Wenqi Li <831580+wyli@users.noreply.github.com>

* Add InstanceNorm3dNVFuser support (#4194)

* implement the base class

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

* add unittest

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

* autofix

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

* switch to call apex directly

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

* uncomment unittest

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

* add apex install link in docstring

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

* add channels_last_3d test case

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

* rewrite types

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

* change types

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

* add docstrings

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: Wenqi Li <831580+wyli@users.noreply.github.com>

Co-authored-by: Ali Hatamizadeh <ahatamizadeh@nvidia.com>
Co-authored-by: Nic Ma <nma@nvidia.com>
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>
Can-Zhao pushed a commit to Can-Zhao/MONAI that referenced this pull request May 10, 2022
* [DLMED] update to 22.04

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

* fixes unit test tests.test_lr_finder

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

* test new_empty

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

Co-authored-by: Wenqi Li <wenqil@nvidia.com>
Co-authored-by: Wenqi Li <831580+wyli@users.noreply.github.com>
wyli pushed a commit that referenced this pull request May 13, 2022
* add swin_unetr model (#4074)

* add swin_unetr model

Signed-off-by: kbressem <kenobressem@gmail.com>

* 4217 Update PyTorch docker to 22.04 (#4218)

* [DLMED] update to 22.04

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

* fixes unit test tests.test_lr_finder

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

* test new_empty

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

Co-authored-by: Wenqi Li <wenqil@nvidia.com>
Co-authored-by: Wenqi Li <831580+wyli@users.noreply.github.com>
Signed-off-by: kbressem <kenobressem@gmail.com>

* Add InstanceNorm3dNVFuser support (#4194)

* implement the base class

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

* add unittest

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

* autofix

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

* switch to call apex directly

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

* uncomment unittest

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

* add apex install link in docstring

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

* add channels_last_3d test case

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

* rewrite types

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

* change types

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

* add docstrings

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: Wenqi Li <831580+wyli@users.noreply.github.com>
Signed-off-by: kbressem <kenobressem@gmail.com>

* Update dice.py (#4234)

* Update dice.py

reduce redundant operations in DiceFocalLoss, initially caused oom

Signed-off-by: Ryan Clanton <55164720+ryancinsight@users.noreply.github.com>

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

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

Signed-off-by: Ryan Clanton <55164720+ryancinsight@users.noreply.github.com>

* [MONAI] python code formatting

Signed-off-by: monai-bot <monai.miccai2019@gmail.com>

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: monai-bot <monai.miccai2019@gmail.com>
Signed-off-by: kbressem <kenobressem@gmail.com>

* Bug fix and improvement in WSI (#4216)

* Make all transforms optional

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

* Update wsireader tests

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

* Remove optional from PersistentDataset and its derivatives

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

* Add unittests for cache without transform

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

* Add default replace_rate

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

* Add default value

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

* Set default replace_rate to 0.1

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

* Update metadata to include path

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

* Adds SmartCachePatchWSIDataset

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

* Add unittests for SmartCachePatchWSIDataset

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

* Update references

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

* Update docs

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

* Remove smart cache

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

* Remove unused imports

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

* Add path metadata for OpenSlide

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

* Update metadata to be unified across different backends

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

* Update wsi metadata for multi wsi objects

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

* Add unittests for wsi metadata

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

* Replace module (#4245)

* replace modules

Signed-off-by: Richard Brown <33289025+rijobro@users.noreply.github.com>

* fix

Signed-off-by: Richard Brown <33289025+rijobro@users.noreply.github.com>

* replace_module -> replace_modules

Signed-off-by: Richard Brown <33289025+rijobro@users.noreply.github.com>

* fix

Signed-off-by: Richard Brown <33289025+rijobro@users.noreply.github.com>
Signed-off-by: kbressem <kenobressem@gmail.com>

* Add GaussianSmooth as antialiasing filter in Resize (#4249)

Signed-off-by: Can Zhao <canz@nvidia.com>
Signed-off-by: kbressem <kenobressem@gmail.com>

* 4235 fix 2204 nvfuser issue (#4241)

* reproduce issue

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

* remove 22.01 02

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

* remove other workflows

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

* run on pull request

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

* remove sleep

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

* test single layer forward

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

* add has_nvfuser

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

* add check within factory

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

* revert to original cron.yml

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 old pt issue

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

* change to return directly if no cuda

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

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Signed-off-by: kbressem <kenobressem@gmail.com>

* Update to Bundle Specifiation (#4250)

* Update to bundle specifiation

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

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

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

* Adding description in spec discussing the saved Torchscript object's file storage behaviour, and tweaking ckpt_export to add .json extension

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

* Annotating optional bundle files

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

* Adjusted ckpt_export test

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

* Fix

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

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Signed-off-by: kbressem <kenobressem@gmail.com>

* Implement NrrdReader and NrrdImage classes

Signed-off-by: kbressem <kenobressem@gmail.com>

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

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

Signed-off-by: kbressem <kenobressem@gmail.com>

* run auto style fixes on image_reader.py

Signed-off-by: kbressem <kenobressem@gmail.com>

* add NrrdReader to monai/data/__init__.py

Signed-off-by: kbressem <kenobressem@gmail.com>

* Change the way spatial information is handled in NrrdReader

Signed-off-by: kbressem <kenobressem@gmail.com>

* add tests for NrrdReader

Signed-off-by: kbressem <kenobressem@gmail.com>

* Add NrrdReader to list of possible readers for LoadImage

Signed-off-by: kbressem <kenobressem@gmail.com>

* autofix formating

Signed-off-by: kbressem <kenobressem@gmail.com>

* autofix formating

Signed-off-by: kbressem <kenobressem@gmail.com>

* change NrrdImage class to namedtuple and make flake8 happy

Signed-off-by: kbressem <kenobressem@gmail.com>

* Add pynrrd to requirements

Signed-off-by: kbressem <kenobressem@gmail.com>

* correct typing for namedtumple
make flake8 happy

Signed-off-by: kbressem <kenobressem@gmail.com>

* Add pynrrd info to `get_optional_config_values`
Changed NrrdImage to dataclass

Signed-off-by: kbressem <kenobressem@gmail.com>

* exclude test_nrrd_reader.py from min tests

Signed-off-by: kbressem <kenobressem@gmail.com>

* add pynrrd to config files

Signed-off-by: kbressem <kenobressem@gmail.com>

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

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

* Change the way space is handled in the header. Now, if space is not in header, it is assumed to be LPS and converted to RAS. If space is defined and not LPS, nothing is done to prevent wrong conversions.

Signed-off-by: kbressem <kenobressem@gmail.com>

* add `TestLoadSaveNrrd` where it is tested if a nrrd file, created by ITKWriter can be loaded again. 2D and 3D files with no channels are tested

Signed-off-by: kbressem <kenobressem@gmail.com>

* autofix format


Co-authored-by: kbressem <kenobressem@charite.de>
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.

Upgrade PyTorch docker for release and CI tests

3 participants