kerasを使って画像を読み込んでディープラーニング させて判別させるシステムを作っています。 プログラミング初心者です。 エラーの意味がわからず困っています。 アドバイス、解決策お願いします
発生している問題・エラーメッセージ
ValueError: Input arrays should have the same number of samples as target arrays. Found 1 input samples and 0 target samples.
###ソースコード
python
1import keras 2from keras.utils import np_utils 3from keras.layers.convolutional import Conv2D,MaxPooling2D 4from keras.models import Sequential 5from keras.layers.core import Dense,Dropout,Activation,Flatten 6from keras.optimizers import RMSprop 7from keras.preprocessing.image import array_to_img,img_to_array,load_img 8import numpy as np 9import pandas as pd 10from sklearn.model_selection import train_test_split 11import matplotlib.pyplot as plt 12from PIL import Image 13import os 14from keras.preprocessing.image import ImageDataGenerator 15import glob 16 17# 学習用のデータを作る. 18image_list = [] 19label_list = [] 20 21# ./data/train 以下のorange,appleディレクトリ以下の画像を読み込む。 22for dir in os.listdir("Downloads/train"): 23 if dir == ".DS_Store": 24 continue 25 26 dir1 = "Downloads/train/" + dir 27 label = 0 28 29 if dir == "suuji3": # 3はラベル0 30 label = 0 31 elif dir == "suuji4": # 4はラベル1 32 label = 1 33 34 for file in os.listdir(dir1): 35 if file != ".DS_Store": 36 # 配列label_listに正解ラベルを追加(3:0 4:1) 37 label_list.append(label) 38 filepath = dir1 + "/" + file 39 # 画像を25x25pixelに変換し、1要素が[R,G,B]3要素を含む配列の25x25の2次元配列として読み込む。 40 # [R,G,B]はそれぞれが0-255の配列。 41 image = np.array(Image.open(filepath).resize((28, 28))) 42 print(filepath) 43 44 45 46 47 # kerasに渡すためにnumpy配列に変換。 48image_list = np.array(image_list) 49 50# ラベルの配列を1と0からなるラベル配列に変更 51# 0 -> [1,0], 1 -> [0,1] という感じ。 52Y = np_utils.to_categorical(label_list) 53 54 55 56 57 58#CNNの構築 59model = Sequential() 60 61#1層目 62model.add(Conv2D(24,5,padding='same', input_shape=(28,28,3))) 63model.add(Activation('relu')) 64 65#2層目 66model.add(Conv2D(48,3,padding='same')) 67model.add(MaxPooling2D(2,2)) 68model.add(Dropout(0.25)) 69 70#3層目 71model.add(Conv2D(96,3,padding='same')) 72model.add(Activation('relu')) 73 74#4層目 75model.add(Conv2D(96,3)) 76model.add(Activation('relu')) 77model.add(MaxPooling2D(2,2)) 78model.add(Dropout(0.25)) 79 80#5層目 81model.add(Flatten()) 82model.add(Dense(128)) 83model.add(Activation('relu')) 84model.add(Dropout(0.5)) 85 86#6層目 87#model.add(Flatten()) 88model.add(Dense(2)) 89model.add(Activation('softmax')) 90 91model.summary() 92 93model.compile(loss='categorical_crossentropy', #損失関数 94 optimizer='RMSprop', #最適化アルゴリズム 95 metrics=['accuracy']) #評価関数のリスト 96 97history = model.fit(X_train, y_train, batch_size=5, epochs=200, verbose = 1) 98score = model.evaluate(X_test, y_test, verbose=0) 99print('Test loss:', score[0]) 100print('Test accuracy:', score[1])
エラーが出ているコード
history = model.fit(X_train, y_train, batch_size=5, epochs=200, verbose = 1)
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー