Skip to content
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

spatial transforms won't apply in Lazy mode #6779

Open
PaulJehanno opened this issue Jul 26, 2023 · 3 comments
Open

spatial transforms won't apply in Lazy mode #6779

PaulJehanno opened this issue Jul 26, 2023 · 3 comments
Assignees
Labels
Contribution wanted documentation Improvements or additions to documentation enhancement New feature or request

Comments

@PaulJehanno
Copy link

Describe the bug
Spatial transforms won't apply in lazy mode, as explained in another previous issue that was closed

To Reproduce

import matplotlib.pyplot
import monai.transforms
from torchvision.transforms import Compose
x = np.zeros((1,100,100,100))
x[0, 30:50, 40:70, 10:80] = 1
plt.imshow(
    x[0, ...].max(0)
)
plt.show()
t = Compose([
    monai.transforms.RandRotate(range_x=0.52, prob=1.0, lazy=True),
    monai.transforms.ApplyPending(),
])
for _ in range(5):
    plt.imshow(
        t(x).numpy()[0, ...].max(0)
    )
    plt.show()

Expected behavior
If i'm correct, ApplyPending should have applied the lazy transforms

Environment

Ensuring you use the relevant python executable, please paste the output of:

================================
Printing MONAI config...
================================
MONAI version: 1.3.dev2329
Numpy version: 1.24.2
Pytorch version: 1.13.1+cu117
MONAI flags: HAS_EXT = False, USE_COMPILED = False, USE_META_DICT = False
MONAI rev id: c82c65a288e396f8f7d059e82373edb1814b20be
MONAI __file__: /home/ec2-user/.pyenv/versions/3.9.2/lib/python3.9/site-packages/monai/__init__.py

Optional dependencies:
Pytorch Ignite version: NOT INSTALLED or UNKNOWN VERSION.
ITK version: NOT INSTALLED or UNKNOWN VERSION.
Nibabel version: 5.0.1
scikit-image version: 0.20.0
Pillow version: 9.4.0
Tensorboard version: NOT INSTALLED or UNKNOWN VERSION.
gdown version: NOT INSTALLED or UNKNOWN VERSION.
TorchVision version: 0.14.1+cu117
tqdm version: 4.64.1
lmdb version: NOT INSTALLED or UNKNOWN VERSION.
psutil version: NOT INSTALLED or UNKNOWN VERSION.
pandas version: 1.5.3
einops version: NOT INSTALLED or UNKNOWN VERSION.
transformers version: NOT INSTALLED or UNKNOWN VERSION.
mlflow version: NOT INSTALLED or UNKNOWN VERSION.
pynrrd version: NOT INSTALLED or UNKNOWN VERSION.

For details about installing the optional dependencies, please visit:
    https://docs.monai.io/en/latest/installation.html#installing-the-recommended-dependencies


================================
Printing system config...
================================
`psutil` required for `print_system_info`

================================
Printing GPU config...
================================
Num GPUs: 0
Has CUDA: False
cuDNN enabled: True
cuDNN version: 8500
@PaulJehanno
Copy link
Author

sorry, I checked this issue and used monai.transforms.Compose instead of torchvision.transforms.Compose and it does work. is it in purpose? Maybe to be specified somewhere that one shall not use torchvision Compose when trying lazy mode?

@wyli
Copy link
Contributor

wyli commented Jul 26, 2023

thanks @PaulJehanno, that's right, I'm labelling this as a feature request for documentation enhancements.

@wyli wyli added documentation Improvements or additions to documentation enhancement New feature or request Contribution wanted labels Jul 26, 2023
@atbenmurray
Copy link
Contributor

Hi @PaulJehanno thanks for raising this. Yes, it should be clear that lazy resampling should be used with monai.Compose rather than other composes, although there are options for making it more generally applicable in the lazy resampling roadmap if that is an issue.

@atbenmurray atbenmurray self-assigned this Oct 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Contribution wanted documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants