Я хочу предсказать, что di git равно 5 или нет от 0 до 9. Я использовал набор данных cmaterdb.
Для этой задачи я изменил все di git label 0, кроме 5 в набор обучающих и тестовых данных
new_train_label=np.copy(train_labels)
for i, label in enumerate(new_train_label):
new_train_label[i] = 0 if (label == 5) else 1
new_test_label=np.copy(test_labels)
for i, label in enumerate(new_test_label):
new_test_label[i] = 0 if (label == 5) else 1
#train up model using cnn
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
from keras.layers import Flatten
from keras.layers.convolutional import Conv2D
from keras.layers.convolutional import MaxPooling2D
from keras.utils import np_utils
model = Sequential()
model.add(MaxPooling2D(pool_size=(3, 3)))
model.add(Conv2D(15, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(3, 3)))
model.add(Dropout(0.02))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(50, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])
model.fit(train_examples, new_train_label, epochs=30)
val_loss, val_acc = model.evaluate(test_examples,new_test_label)
print(val_loss)
print(val_acc)
Хотя точность хорошая, она не может предсказать 5. что не так в моем коде или logi c?