Skip to content

Segresnet improvements#5281

Merged
wyli merged 12 commits intoProject-MONAI:devfrom
myron:segresnet2
Oct 13, 2022
Merged

Segresnet improvements#5281
wyli merged 12 commits intoProject-MONAI:devfrom
myron:segresnet2

Conversation

@myron
Copy link
Copy Markdown
Collaborator

@myron myron commented Oct 6, 2022

This adds improvements to SegResNet semantic segmentation to include deep supervision feature (among other things).

I've decided to add a new network named SegResnetDS instead of replacing the existing SegResNet, because it would have broken all previously pretrained model checkpoints.

Please take a look, and if it looks good, I can add unit tests. All the helper functions, and blocks are inside of the same file (which I prefer, since it's easier to read) instead of spreading it among other files (e.g segresnet_ds_block or segresnet_utils).

Description

A few sentences describing the changes proposed in this pull request.

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.

@myron myron added this to the Auto3D Seg framework [P0 v1.0] milestone Oct 6, 2022
@myron myron requested a review from wyli October 6, 2022 20:55
myron added 2 commits October 6, 2022 15:48
Signed-off-by: myron <[email protected]>
Signed-off-by: myron <[email protected]>
@myron myron changed the title Segresnet2 Segresnet improvements Oct 12, 2022
@myron
Copy link
Copy Markdown
Collaborator Author

myron commented Oct 12, 2022

@wyli I've updated the code to reuse shared get_norm_layer, get_act_layer, following your request.
I've also added unit tests. and internal blocks and components are inside of the same file (instead of creating extra files), which I very much prefer. Please check and merge.

@Nic-Ma Nic-Ma requested a review from ericspod October 13, 2022 05:16
@wyli
Copy link
Copy Markdown
Contributor

wyli commented Oct 13, 2022

@myron
Copy link
Copy Markdown
Collaborator Author

myron commented Oct 13, 2022

thanks, this looks to me, please address these minor issues detected: https://deepsource.io/gh/Project-MONAI/MONAI/run/2c41e145-4caa-4a5d-b7b9-78fa88b415ee/python/

for the torchscript issues (https://github.com/Project-MONAI/MONAI/actions/runs/3237807871/), the test could be skipped with a decorator:

@SkipIfBeforePyTorchVersion((1, 9))

Thanks, I've addressed all those issues, and pushed. plz check

@wyli
Copy link
Copy Markdown
Contributor

wyli commented Oct 13, 2022

/build

@wyli wyli enabled auto-merge (squash) October 13, 2022 19:22
@wyli wyli merged commit 02a6a6d into Project-MONAI:dev Oct 13, 2022
wyli pushed a commit to wyli/MONAI that referenced this pull request Oct 15, 2022
This adds improvements to SegResNet semantic segmentation to include
deep supervision feature (among other things).

I've decided to add a new network named SegResnetDS instead of replacing
the existing SegResNet, because it would have broken all previously
pretrained model checkpoints.

Please take a look, and if it looks good, I can add unit tests. All the
helper functions, and blocks are inside of the same file (which I
prefer, since it's easier to read) instead of spreading it among other
files (e.g segresnet_ds_block or segresnet_utils).


### Description

A few sentences describing the changes proposed in this pull request.

### Types of changes
<!--- Put an `x` in all the boxes that apply, and remove the not
applicable items -->
- [x] 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.

Signed-off-by: myron <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
@myron myron deleted the segresnet2 branch October 22, 2022 18:50
KumoLiu pushed a commit that referenced this pull request Nov 2, 2022
This adds improvements to SegResNet semantic segmentation to include
deep supervision feature (among other things).

I've decided to add a new network named SegResnetDS instead of replacing
the existing SegResNet, because it would have broken all previously
pretrained model checkpoints.

Please take a look, and if it looks good, I can add unit tests. All the
helper functions, and blocks are inside of the same file (which I
prefer, since it's easier to read) instead of spreading it among other
files (e.g segresnet_ds_block or segresnet_utils).


### Description

A few sentences describing the changes proposed in this pull request.

### Types of changes
<!--- Put an `x` in all the boxes that apply, and remove the not
applicable items -->
- [x] 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.

Signed-off-by: myron <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Signed-off-by: KumoLiu <[email protected]>
@nhhung1810
Copy link
Copy Markdown

nhhung1810 commented Aug 5, 2023

Hi @myron , I'm working on a PR about writing tutorials on this module SegResNetDS, can I ask some details, about

  • Why this was an improvement compare to SegResnet and SegResNetVAE, because I can not find any papers that discuss about the SegResNet with deep supervision and non-isotropic kernel
  • I wonder if this deep-supervision is the same as deep-supervision as UNet++, as I found the implementation quite similar
  • It would be very helpful if you could point out some resources to non-isotropic/isotropic kernel, too, so that I can write the tutorials better

Thank for your help :D

Edit: I've found this publication, it's the right one?

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.

3 participants