Kaggleのチュートリアルのタイタニック問題をkerasで処理してみようと次の2つを参考にしながら組み合わせてみたのですが、どうもうまく動かなく次のようなエラーメッセージが出てしまいます。
[1] https://qiita.com/pappapa/items/ebe0c1a0d518cc6ee7bc
[2] https://qiita.com/agumon/items/0df9f008a255796b5a94
Error when checking target: expected dense_57 to have shape (2,) but got array with shape (1,)
同じようなエラーが出ている人もいたのですが、one-hot vectorにしていなくてこのようなエラーが出ていたみたいなんですがここではone-hot vectorにしているにも関わらずこのようなエラーが出てしまっています。
どこが間違っているのかどなたかわかりますでしょうか?
Python
1# k-fold cross validation 2import keras 3from keras.models import Model 4from keras.layers import Input, Dense, Activation, Dropout 5from sklearn.model_selection import StratifiedKFold 6 7x_train = train_data 8x_test = test_data 9y_train = train_label 10 11k = 4 12num_epochs = 78 13batch_size = 8 14num_class = 2 15 16a_all_scores = [] 17b_all_scores = [] 18c_all_scores = [] 19d_all_scores = [] 20 21kfold = StratifiedKFold(n_splits=k, shuffle=False, random_state=seed) 22 23for idx_train, idx_val in kfold.split(x_train,y_train): 24 inputs = Input(shape=(x_train[idx_train][1].shape)) 25 x = Dense(8, activation='relu')(inputs) 26 x = Dropout(0.2)(x) 27 x = Dense(8, activation='relu')(x) 28 x = Dropout(0.2)(x) 29 x = Dense(num_class, activation='softmax')(x) 30 31 model = Model(input=inputs, output=x) 32 model.compile(loss='categorical_crossentropy', optimizer=keras.optimizers.Adam(), metrics=['accuracy']) 33 hist = model.fit(x_train[idx_train], keras.utils.to_categorical(y_train[idx_train], num_class), 34 batch_size=batch_size, 35 epochs=epochs, 36 validation_data=(x_train[idx_val], y_train[idx_val]), 37 verbose=1) 38 39 a_history = his.history['acc'] 40 a_all_scores.append(a_history) 41 b_history = history.history["val_acc"] 42 b_all_scores.append(b_history) 43 c_history = history.history["loss"] 44 c_all_scores.append(c_history) 45 d_history = history.history["val_loss"] 46 d_all_scores.append(d_history)
あなたの回答
tips
プレビュー