深層学習とかでのPythonエラー「AttributeError: module 'scipy.misc' has no attribute 'imresize'」への対処
目的
misc.imresize()
misc.imresize()
で、
AttributeError: module 'scipy.misc' has no attribute 'imresize'
というエラーが出る場合がある。
これは、シンプルで、
ぐぐると対策がわかるハズですが、
ちょっと、そういう活動が嫌ですね。
余裕があるときは、少し、調べたりします。
今回、わかったことを記事にします。
関係する環境情報
Name: scipy
Version: 1.4.1
Summary: SciPy: Scientific Library for Python
Home-page: https://www.scipy.org
エラーと対策
原因
これは、よくあるscipyのバージョンアップの関連で、
「古いバージョンのsicpyで動作していたものが、scipy version 1.3.0以降でエラーになる」シリーズ?です。
対策1 (対策2のほうがいいと思います。)
scipyを1.2.0にする
「1.3.0ではremoveします」と警告は出ますが、動作はします。
block_1_hobo_org.py:23: DeprecationWarning: `imresize` is deprecated!
`imresize` is deprecated in SciPy 1.0.0, and will be removed in 1.3.0.
Use Pillow instead: ``numpy.array(Image.fromarray(arr).resize())``.
obs = (misc.imresize(obs, (110, 84))) #===
対策2
上記の警告と同時に示される
numpy.array(Image.fromarray(arr).resize())
を使う。
対策2を使うときの注意事項
(まず、単に、imresizeという関数なくなりました。別のとこの、
resizeを使いなさいというシンプルでとっても簡単な話なので、
簡単なこととして、心を落ち着けて。。。。)
注意1:resizeでのサイズの指定は、tupleです。
注意2:imresizeとresizeは、hightとwidthの順序が逆な気がします。
具体的には、
imresize(xxx, (110, 42))だったら、
resize((42,110))
と、逆に書けばいいと思います。
ネットの説明で間違えているサイトがあるような気がします、ご注意。
補足(imresizeとresieのhelpを記載)
widthとheightの順序に注目
imresizeのhelp
(余談ですが、コマンドは、例えば、「python -m pydoc PIL.Image.Image.resize」です。 Image.Imageとなります。。。。わかる方は、わかると思いますが。。。。)
C:XXXX>python -m pydoc PIL.Image.Image.resize
Help on function resize in PIL.Image.Image:
PIL.Image.Image.resize = resize(self, size, resample=0, box=None)
Returns a resized copy of this image.
:param size: The requested size in pixels, as a 2-tuple:
(width, height).
:param resample: An optional resampling filter. This can be
one of :py:attr:`PIL.Image.NEAREST`, :py:attr:`PIL.Image.BOX`,
:py:attr:`PIL.Image.BILINEAR`, :py:attr:`PIL.Image.HAMMING`,
:py:attr:`PIL.Image.BICUBIC` or :py:attr:`PIL.Image.LANCZOS`.
If omitted, or if the image has mode "1" or "P", it is
set :py:attr:`PIL.Image.NEAREST`.
See: :ref:`concept-filters`.
:param box: An optional 4-tuple of floats giving the region
of the source image which should be scaled.
The values should be within (0, 0, width, height) rectangle.
If omitted or None, the entire source is used.
:returns: An :py:class:`~PIL.Image.Image` object.
resieのhelp
(余談ですが、、、コマンドは、例えば、「python -m pydoc scipy.misc.imresize」です。)
C:XXXXX>python -m pydoc scipy.misc.imresize
Help on function imresize in scipy.misc:
scipy.misc.imresize = imresize(*args, **kwds)
`imresize` is deprecated!
`imresize` is deprecated in SciPy 1.0.0, and will be removed in 1.3.0.
Use Pillow instead: ``numpy.array(Image.fromarray(arr).resize())``.
Resize an image.
This function is only available if Python Imaging Library (PIL) is installed.
.. warning::
This function uses `bytescale` under the hood to rescale images to use
the full (0, 255) range if ``mode`` is one of ``None, 'L', 'P', 'l'``.
It will also cast data for 2-D images to ``uint32`` for ``mode=None``
(which is the default).
Parameters
----------
arr : ndarray
The array of image to be resized.
size : int, float or tuple
* int - Percentage of current size.
* float - Fraction of current size.
* tuple - Size of the output image (height, width).
interp : str, optional
まとめ
エラーが出て、
ぐぐって、、、
そうするしかないですが、、、ちょっと、嫌です。
調べて記事にしました。。。。(ぐぐられて役立つつもりで記事にしてるので、矛盾しているのですが、将来の布石。。。。)
関連(本人)
深層学習とかでのPythonエラー「ImportError: cannot import name 'imread' from 'scipy.misc' 」への対処
英語と日本語、両方使ってPythonを丁寧に学ぶ。
今後
コメントなどあれば、お願いします。
勉強します、、、、
Author And Source
この問題について(深層学習とかでのPythonエラー「AttributeError: module 'scipy.misc' has no attribute 'imresize'」への対処), 我々は、より多くの情報をここで見つけました https://qiita.com/enoughspacefor/items/678226cd149d6afec72c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .