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

ImportError: cannot import name 'imresize' #209

Open
vk-mittal14 opened this issue Feb 8, 2020 · 6 comments
Open

ImportError: cannot import name 'imresize' #209

vk-mittal14 opened this issue Feb 8, 2020 · 6 comments

Comments

@vk-mittal14
Copy link

While importing visualize_activation from vis.visualization I got this error
from vis.visualization import visualize_activation

ImportError                               Traceback (most recent call last)
<ipython-input-3-8c45a7bcfdef> in <module>()
----> 1 from vis.visualization import visualize_activation
      2 from vis.utils import utils
      3 from keras import activations
      4 
      5 from matplotlib import pyplot as plt

1 frames
/usr/local/lib/python3.6/dist-packages/vis/visualization/__init__.py in <module>()
      5 from .activation_maximization import visualize_activation
      6 
----> 7 from .saliency import visualize_saliency_with_losses
      8 from .saliency import visualize_saliency
      9 from .saliency import visualize_cam_with_losses

/usr/local/lib/python3.6/dist-packages/vis/visualization/saliency.py in <module>()
      3 import numpy as np
      4 import matplotlib.cm as cm
----> 5 from scipy.misc import imresize
      6 
      7 from keras.layers.convolutional import _Conv

ImportError: cannot import name 'imresize'
@Mazzanicolas
Copy link

That's because imresize has been removed from scipy since v1.3.0rc1
What you can do is edit the code in vis/visualization/saliency.py to use other function to resize, such as opencv resize.

@keisen
Copy link
Collaborator

keisen commented Feb 10, 2020

Or, As being mentioned in #203 (comment) , you can downgrade scipy to 1.1.0 as follows:

pip install scipy==1.1.0

@ekamioka
Copy link

ekamioka commented Feb 14, 2020

as @Mazzanicolas said:

in vis/visualization/saliency.py

replace: from scipy.misc import imresize

to: import cv2

then

replace: heatmap = imresize(heatmap, input_dims, interp='bicubic', mode='F')

to:

heatmap = cv2.resize(src=heatmap,
                       dsize=input_dims,
                       interpolation=cv2.INTER_CUBIC)

I just couldn't map the mode param.

@TiagoFilipeSousaGoncalves
Copy link

Another way of solving this (I did it myself and it's working quite well) is to use Pillow library:
in vis/visualization/saliency.py

comment from scipy.misc import imresize

and add from PIL import Image

comment heatmap = imresize(heatmap, input_dims, interp='bicubic', mode='F')

Then, update the heatmap variable as such:
heatmap = np.array(Image.fromarray(obj=heatmap, mode='F').resize(size=input_dims, resample=Image.BICUBIC))

Check SciPy:
scipy.misc.imresize

And Pillow:
Pillow Image Module

@TataMoktari
Copy link

Or, As being mentioned in #203 (comment) , you can downgrade scipy to 1.1.0 as follows:

pip install scipy==1.1.0
```It worked for me :) 

@manjitlal
Copy link

manjitlal commented Mar 19, 2021

Check docs: scipy.misc.imresize - SciPy v1.2.1 Reference Guide
imresize is deprecated! imresize is deprecated in SciPy 1.0.0, and will be removed in 1.3.0.

Check example: sample problem

If you are using scipy version earlier than 1.3.0, then try this (it worked for me, tested on version 0.19.1):

instead of:

...
from scipy.misc import imresize
...

imresize()

do:

...
from scipy import misc
...

misc.imresize()

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

No branches or pull requests

7 participants