テストデータでの評価を行いたいのですが、エラーが出てしまい結果が表示されません。
解決方法わかる方いたら教えてください。
エラー文
Input arrays should have the same number of samples as target arrays. Found 50000 input samples and 10000 target samples.
Python
1#CIFAR-10のデータセットのインポート 2from keras.datasets import cifar10 3 4(X_train, Y_train), (X_test, Y_test) = cifar10.load_data() 5 6#CIFAR-10の正規化 7from keras.utils import to_categorical 8 9root_dir = "ルートディレクトリ" 10 11# 特徴量の正規化 12X_train = X_train.astype("float") / 255 13X_test = X_train.astype("float") / 255 14 15# クラスラベルの1-hotベクトル化 16Y_train = to_categorical(Y_train, 10) 17Y_test = to_categorical(Y_test, 10) 18 19# CNNの構築 20from keras.models import Sequential 21from keras.layers.convolutional import Conv2D, MaxPooling2D 22from keras.layers.core import Dense, Dropout, Activation, Flatten 23import numpy as np 24 25model = Sequential() 26 27#3x3のフィルタを32枚使用 28model.add(Conv2D(32, (3, 3), padding='same',input_shape=X_train.shape[1:])) 29#ReLU関数を使用(入力が0以下の時は出力0 入力が0より大きい場合はそのまま) 30model.add(Activation('relu')) 31model.add(Conv2D(32, (3, 3))) 32model.add(Activation('relu')) 33#2x2の最大プーリング層 34model.add(MaxPooling2D(pool_size=(2, 2))) 35model.add(Dropout(0.25)) 36 37model.add(Conv2D(64, (3, 3), padding='same')) 38model.add(Activation('relu')) 39model.add(Conv2D(64, (3, 3))) 40model.add(Activation('relu')) 41model.add(MaxPooling2D(pool_size=(2, 2))) 42model.add(Dropout(0.25)) 43 44model.add(Flatten()) 45model.add(Dense(512)) 46model.add(Activation('relu')) 47model.add(Dropout(0.5)) 48model.add(Dense(10)) 49model.add(Activation('softmax')) 50 51# コンパイル 52model.compile(loss='categorical_crossentropy',optimizer='SGD',metrics=['accuracy']) 53 54#訓練 55History = model.fit(X_train, Y_train, epochs=30) 56 57#評価 & 評価結果出力(これがでない) 58print(model.evaluate(X_test, Y_test)) 59 60# モデルの保存 61open(root_dir + "/modelCIFAR.json", "w").write(model.to_json()) 62 63model.save_weights(root_dir + "/weightCIFAR.hdf5") 64 65print("学習データを保存しました")
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/15 02:49