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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

1回答

407閲覧

機械学習(ディープラーニング)で手書き文字認識を実施してるのですが・・・

nobita

総合スコア66

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

1クリップ

投稿2018/12/03 13:34

現在、機械学習を学習していてテストデータを使用して学習させたモデルがあります。
そのモデルを使用して、評価を実施したいのですが、ファイルの読み込みPASSを下記のように記述しました。。。
ライブラリは
import numpy as image_np
from PIL import Image
を使用して実施したいです。

モデルを作成しているときは、書籍等を参考にして作成したのですが、(サンプルデータ_ラベルがついているもの)
いざ、実践的に、自分PC上のフォルダ(./number_file/*.jpg)に4つ画像ファイルがあります。から読み込もうとしたときどうしたらいいのか。そこからどうに数値化したらいいのか。
アドバイスお願いします。

modelに作成したモデルを載せておきます 

python

1path = glob.glob("./number_file/*.jpg") 2N = 4 3img_list =[] 4for i in range(N): 5 img = image_np.array(Image.open(path[i])) 6 7 img_list.append(img) 8 #print(img) 9 #img.show() 10 11 12 13print(img.shape)

model

1%matplotlib inline 2#from __future__ import division, print_function 3 4from keras import backend as K 5from keras.datasets import mnist 6from keras.layers import Activation, Dense, Dropout 7from keras.layers.normalization import BatchNormalization 8from keras.models import Sequential 9from keras.utils.np_utils import to_categorical 10import numpy as np 11from sklearn.metrics import classification_report, confusion_matrix 12# Kerasに付属の手書き数字画像データをダウンロード 13np.random.seed(0) 14(X_train, labels_train), (X_test, labels_test) = mnist.load_data() 15# 各画像は行列なのでベクトルに変換→X_trainとX_testを作成 16X_train = X_train.reshape(len(X_train),-1) 17X_test = X_test.reshape(len(X_test),-1) 18# ラベルをone-hotベクトル(値がひとつだけ1で他が0のベクトル)に変換→Y_trainとY_testを作成 19Y_train = to_categorical(labels_train) 20Y_test = to_categorical(labels_test) 21# モデルの準備 22model = Sequential() 23model.add(Dense(10,input_shape=(784,))) 24model.add(Activation("softmax")) 25model.compile(loss="categorical_crossentropy",optimizer="adam",metrics=["accuracy"]) 26# Trainingの実施 27model.fit(X_train,Y_train,batch_size=128,nb_epoch=10,verbose=1) 28# Test dataを用いてモデルを評価(accuracyを算出) 29_,acc = model.evaluate(X_test,Y_test,verbose=0) 30print("accuracy:{}".format(acc)) 31# Classification_report関数で評価結果を表示 32labels_pred = model.predict_classes(X_test,verbose=0) 33print(confusion_matrix(labels_test,labels_pred)) 34print(classification_report(labels_test,labels_pred)) 35

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

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

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

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

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

guest

回答1

0

ベストアンサー

ご質問の意図を組みきれていないかもしれませんが,学習モデルを保存している前提であれば,以下のコードで動作すると思います.

import numpy as np from keras.models import load_model from PIL import Image from glob import glob paths = glob.glob("./number_file/*.jpg") model_path = "モデルのパスを指定." model = load_model(model_path) for path in paths: img_pil = Image.open(path) img = np.array(img_pil) X = img.ravel() pred_prob = model.predict(X) pred = np.argmax(pred, -1) print("{0}の予測結果は{1}です.".format(path, pred))

投稿2018/12/04 02:00

Hiroki013

総合スコア99

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

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

nobita

2018/12/04 08:44

回答ありがとうございます。 モデルは保存はしていなくて、同じjupyternotebookにあります。 モデルパスを指定の部分をモデルにすればいいんですね!!
Hiroki013

2018/12/04 08:56

それであれば,model_path=....とmodel=load_model(...)を除いてもらえばよいと思います.
nobita

2018/12/05 03:04

ありがとうございます! 解決できました!☻
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問