前提
初歩的な機械学習の勉強をしています。
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/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
質問のコードは質問者さんが全て書かれたものでしょうか? もしどこかからの引用であれば引用元を示してください。(コードのコピペミス等の可能性もありますので)

回答2件
あなたの回答
tips
プレビュー