Skip to content

Colab inference demo incompatible with current MONAI and NumPy #119

Description

@msayr

Hi there,

I was trying out the Colab inference notebook ([here])(https://colab.research.google.com/github/MMathisLab/CellSeg3d/blob/main/Notebooks/Colab_inference_demo.ipynb#scrollTo=IFbmZ3_zAm-1) and I've gotten the following error. All original code above this line ran without error:

result = cs3d.inference_on_images(
    demo_image,
    config=inference_config,
)
WARNING:napari_cellseg3d.utils:Caught TypeError: SwinUNETR.__init__() got multiple values for argument 'in_channels'
ERROR:napari_cellseg3d.utils:SwinUNETR.__init__() got multiple values for argument 'in_channels'
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/dist-packages/napari_cellseg3d/code_models/models/model_SwinUNetR.py", line 34, in __init__
    super().__init__(
TypeError: SwinUNETR.__init__() got multiple values for argument 'in_channels'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/dist-packages/napari_cellseg3d/code_models/worker_inference.py", line 859, in inference
    model = model_class(
            ^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/dist-packages/napari_cellseg3d/code_models/models/model_SwinUNetR.py", line 47, in __init__
    super().__init__(
TypeError: SwinUNETR.__init__() got multiple values for argument 'in_channels'
--------------------
Parameters summary :
Model is : SwinUNetR
Window inference is enabled
Window size is 64
Window overlap is 0.25
Dataset loaded on cuda device
--------------------
MODEL DIMS : [64, 64, 64]
Model name : SwinUNetR
Instantiating model...

Changing numpy and monai versions solved the issue for me:

!pip install -U "numpy>=2.1,<2.6" "monai==1.3.2"

import numpy, monai
print("NumPy:", numpy.__version__)
print("MONAI:", monai.__version__)

NumPy: 2.4.6
MONAI: 1.3.2

Then updating reshape to shape to match different numpy version:

from pathlib import Path

p = Path("/usr/local/lib/python3.12/dist-packages/napari_cellseg3d/code_models/worker_inference.py")
s = p.read_text()
s = s.replace("np.reshape(volume, newshape=(1, *volume.shape))",
              "np.reshape(volume, (1, *volume.shape))")
p.write_text(s)

print("Patched:", p)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions