python 初心者です。
独学にて教本を使用して勉強しております。
以前にこちらでscikit learnパッケージを使用するために教本通り書いていたコードが古いとのことで、プログラムが実行できませんでした。
今回scikit learnの手書きサンプルを使用し表示させたいのですが、実行するとFileNotFoundError:が出ます。
調べましたがこちらはまだ使用されているコードのように思いました。
原因がわからず困っております。
どうかご教授いただけると助かります。
下記が書き出したコードです。
import os, sys, math from sklearn import datasets, svm from sklearn.externals import joblib def train_digits(): digits = datasets.load_digits() data_train = digits.data label_train = digits.target clf = svm.SVC(gamma=0.001) clf.fit(data_train, label_train) joblib.dump(clf, DIGITS_PKL) print("予測モデルを保存しました=", DIGITS_PKL) return clf def predict_digits(data): if not os.path.exists(DIGITS_PKL): clf = train_digits() clf = joblib.load(DIGITS_PKL) n = clf.predict([data]) print("判定結果=", n) def image_to_data(imagefile): import numpy as np from PIL import Image image = Image.open(imagefile).convert('L') image = image.resize((8, 8), Image.ANTIALIAS) img = np.asarray(image, dtype=float) img = np.floor(16 - 6 * (img / 256)) #import matplotlib.pyplot as plt #plt.imshow(img) ##plt.show() img = img.flatten() print(img) return img def main(): if len(sys.argv) <= 1: print("USAGE:") print("python3 predict_digit.py imagefile") return imagefile = sys.argv[1] data = image_to_data(imagefile) predict_digits(data) if __name__ == '__main__': main()
ターミナル実効後
$ python3 predict_digit.py test5.png Traceback (most recent call last): File "predict_digit.py", line 47, in <module> main() File "predict_digit.py", line 43, in main data = image_to_data(imagefile) File "predict_digit.py", line 25, in image_to_data image = Image.open(imagefile).convert('L') File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/PIL/Image.py", line 2609, in open fp = builtins.open(filename, "rb") FileNotFoundError: [Errno 2] No such file or directory: 'test5.png'
追記
predict_digit.py フルパス
/Users/hoge/Desktop/pythonkyoukasyo/predict_digit.py
predict_digit.pyとtest5.pngのフルパスを追記ください。パスに個人名が含まれる場合はhogeなどに置き換えてください
迅速な返信ありがとうございます! すぐにフルパスを追記いたします。 後なのですがtest5.pngは教本を見る限りでは画像ファイルを用意してあるとの記載があったためこのコードにより取り込むのかと思っていたのですが、こちらは自分で用意するものなのでしょうか? ど素人の質問お許しください。。
サンプルコードが書籍付属のROMあるいはネット上で公開されていませんか?それに含まれているのかもしれません。
サンプルコードが書籍に付属されておりました! こちらを同じ階層に移動させたところ表示されました。コードについてではなく自分の完全なミスでこのようにお手をかけてしまい本当に申し訳ございません。。 そして、いつも迅速かつ的確な解答をいただきありがとうございます!
回答1件
あなたの回答
tips
プレビュー