質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

3576閲覧

python、AttributeErrorが出て進まない

kkmoto

総合スコア3

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/10/02 11:01

編集2022/10/02 11:42

前提

初歩的な機械学習の勉強をしています。
jupyternotebookでコードを書いています

実現したいこと

数字が書かれた画像データを読み込んでそれを予測したいと考えています

発生している問題・エラーメッセージ

AttributeError Traceback (most recent call last) Input In [9], in <cell line: 29>() 27 print("予測=", n) 28 #画像ファイルを数値リストに変換する ---> 29 data = imageToData("2.png") 30 #数字を予測する 31 predictDigits(data) Input In [9], in imageToData(filename) 7 def imageToData(filename): 8 #画像を8x8のグレースケールに変換 9 grayImage = PIL.Image.open(filename).convert("L") ---> 10 grayImage = grayImage.resize((8,8), PIL.Image.Resampling.LANCZOS) 11 #数値リストに変換 12 numImage = numpy.asarray(grayImage, dtype = float) File ~\anaconda3\lib\site-packages\PIL\Image.py:65, in __getattr__(name) 58 warnings.warn( 59 "Image categories are deprecated and will be removed in Pillow 10 " 60 "(2023-07-01). Use is_animated instead.", 61 DeprecationWarning, 62 stacklevel=2, 63 ) 64 return categories[name] ---> 65 raise AttributeError(f"module '{__name__}' has no attribute '{name}'") AttributeError: module 'PIL.Image' has no attribute 'Resampling'

該当のソースコード

python3

1import sklearn.datasets 2import sklearn.svm 3import PIL.Image 4import numpy 5 6#画像ファイルから数値リストに変換する 7def imageToData(filename): 8 #画像を8x8のグレースケールに変換 9 grayImage = PIL.Image.open(filename).convert("L") 10 grayImage = grayImage.resize((8,8), PIL.Image.Resampling.LANCZOS) 11 #数値リストに変換 12 numImage = numpy.asarray(grayImage, dtype = float) 13 numImage = 16 - numpy.floor(17 * nuimImage / 256) 14 numImage = numImage.flattrn() 15 16 return numImage 17 18#数値リストに変換 19def predictDigits(data): 20 #学習量データを読み込む 21 digits =sklearn.datasets.load_digits() 22 #機械学習する 23 clf = sklearn.svm.SVC(gamma = 0.001) 24 clf.fit(digits.data, digits.target) 25 # 26 n = clf.predict([data]) 27 print("予測=", n) 28#画像ファイルを数値リストに変換する 29data = imageToData("2.png") 30#数字を予測する 31predictDigits(data) 32

試したこと

ネットにて調べてみると、属性が違うからエラーが出ることがわかったのですが、このエラーの対策をどのようにしたらいいのかわかりません

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2022/10/02 11:35

質問のコードは質問者さんが全て書かれたものでしょうか? もしどこかからの引用であれば引用元を示してください。(コードのコピペミス等の可能性もありますので)
guest

回答2

0

AttributeError: module 'PIL.Image' has no attribute 'Resampling'

「PIL.Image.Resampling.LANCZOS」はPillow 9.1.0で追加されたようなので、Pillowをアップデートしたらエラー出なくなると思います
Module PIL has not attribute "Resampling"

「PIL.Image.LANCZOS」はPillow 10.0.0で廃止される予定のようなので、Pillowをアップデートして、今後は「PIL.Image.Resampling.LANCZOS」を使うようにした方がいいと思います
Deprecations and removals

投稿2022/10/02 13:00

jbpb0

総合スコア7651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kkmoto

2022/10/02 14:00 編集

回答ありがとうございます、pillowをアップデートして使わせていただきます
guest

0

ベストアンサー

PIL.Image.Resampling.LANCZOS ではなく
PIL.Image.LANCZOS ではないですかね

投稿2022/10/02 11:32

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kkmoto

2022/10/02 11:51

実行できました、ありがとうございます。勉強の励みになります
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問