-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Add InstanceNorm3dNVFuser support #4194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add InstanceNorm3dNVFuser support #4194
Conversation
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
for more information, see https://pre-commit.ci
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
…wang-nv/MONAI into 4085-add-instance_norm_3dnvfuser
for more information, see https://pre-commit.ci
…wang-nv/MONAI into 4085-add-instance_norm_3dnvfuser
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>
wyli
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, it looks good to me.
Nic-Ma
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @yiheng-wang-nv ,
Thanks for the quick update, looks good to me now.
Could you please help add some unit tests to ensure the InstanceNorm3dNVFuser is compatible with TorchScript exporting?
Thanks in advance.
Signed-off-by: Yiheng Wang <vennw@nvidia.com>
Hi @Nic-Ma and @wyli , unfortunately, this layer uses the customized autograd function, which is not supported in TorchScript. (please click this link for more details: pytorch/pytorch#22329) |
|
/build |
|
/build |
* 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>
* 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>
* 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>
Signed-off-by: Yiheng Wang vennw@nvidia.com
Fixes #4085 .
Description
This PR enhances the layer factory via adding the
InstanceNorm3dNVFuser, a faster version ofnn.InstanceNorm3dimplemented byapex.The consistency between
InstanceNorm3dNVFuserandnn.InstanceNorm3dhas been validated via usingDynUNet.Status
Ready
Types of changes
./runtests.sh -f -u --net --coverage../runtests.sh --quick --unittests --disttests.make htmlcommand in thedocs/folder.