現在、Deep Learningの学習をしています。サンプルコードを自分なりに変え、学習した後にwebカメラからの入力画像を分類し表示された数字が何かを当てるというものにしましたつもりです。また、正答確率は85 %近辺です。しかし、実際に動かしてみるとエラーこそ出ないもののプログラムが一向に数字を当ててくれません。
私はDeep Learningの学習を始めたばかりのため、原因が分かりませんでした。モデルの正答率に対して実際にモデルの画像を分類させたときの正答率が低い原因を教えていただきたいです。
python
1import cv2 2from PIL import Image 3from keras.models import load_model 4import numpy as np 5import matplotlib.pyplot as plt 6from keras.datasets import mnist 7from keras.layers import Activation, Dense, Dropout 8from keras.models import Sequential, load_model 9from keras import optimizers 10from keras.utils.np_utils import to_categorical 11 12(X_train, y_train), (X_test, y_test) = mnist.load_data() 13 14X_train = X_train.reshape(X_train.shape[0], 784)[:6000] 15X_test = X_test.reshape(X_test.shape[0], 784)[:1000] 16y_train = to_categorical(y_train)[:6000] 17y_test = to_categorical(y_test)[:1000] 18 19model = Sequential() 20model.add(Dense(280, input_dim=784)) 21model.add(Activation("sigmoid")) 22model.add(Dense(128)) 23model.add(Activation("sigmoid")) 24model.add(Dropout(rate=0.5)) 25model.add(Dense(10)) 26model.add(Activation("softmax")) 27 28sgd = optimizers.SGD(lr=0.01) 29model.compile(optimizer=sgd, loss="categorical_crossentropy", metrics=["accuracy"]) 30model.fit(X_train, y_train, batch_size=32, epochs=10, verbose=1) 31 32score = model.evaluate(X_test, y_test, verbose=0) 33print("evaluate loss: {0[0]}\nevaluate acc: {0[1]}".format(score)) 34 35cap = cv2.VideoCapture(1) 36 37while True: 38 39 ret, frame = cap.read() 40 gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY) 41 42 cv2.imshow('preview', frame) 43 key = cv2.waitKey(10) 44 if key == ord("s"): 45 path = "photo.jpg" 46 cv2.imwrite(path,gray) 47 48 img = np.array(Image.open('photo.jpg')) 49 width,height=28,28 50 img2 = cv2.resize(img,(width,height)) 51 data = img2.reshape(1, 784) 52 res = model.predict([data]) 53 y = res.argmax() 54 rabel = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 55 print("Prediction is ", rabel[y]) 56 57 if key == ord("q"): 58 break 59コード
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/22 11:19
2018/10/22 12:01
2018/10/23 01:08