У меня есть проблема в моем коде CNN в Керасе
после построения простой архитектуры нейронной сети и запуска функции прогнозирования
все прогнозы имеют одинаковые результаты
Мои собственные данные разделены на два класса (здоровые, нездоровые)
Раньше я думал, что проблема заключается в природе картины
но когда я применил код в других данных, содержащихся из (белое изображение, черное изображение)
я нашел такие же результаты
Какова причина проблемы на ваш взгляд
Моя архитектура Код CNN
#batch_size to train
batch_size = 32
# number of output classes
nb_classes = 2
# number of epochs to train
nb_epoch = 2
# number of convolutional filters to use
nb_filters = 32
# size of pooling area for max pooling
nb_pool = 2
# convolution kernel size
nb_conv = 3
HIDDEN_LAYERS = 4
sgd = SGD(lr=0.5, decay=1e-6, momentum=0.6, nesterov=True)
Y_train = np_utils.to_categorical(Y_train, nb_classes)
Y_test = np_utils.to_categorical(Y_test, nb_classes)
X_train /= 255
X_test /= 255
# first set of CONV => RELU => POOL layers
model = Sequential()
model.add(Conv2D(20, (5, 5), padding="same",
input_shape=shape_ord))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(nb_pool, nb_pool), strides=(2, 2)))
# second set of CONV => RELU => POOL layers
model.add(Conv2D(50, (5, 5), padding="same"))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(nb_pool, nb_pool), strides=(2, 2)))
model.add(Dropout(0.5))
# first (and only) set of FC => RELU layers
model.add(Flatten())
model.add(Dense(128))
model.add(Activation('relu'))
#model.add(Dropout(0.5))
# softmax classifier
model.add(Dense(nb_classes))
model.add(Activation(K.sigmoid))
#categorical_crossentropy
model.compile(loss="binary_crossentropy", optimizer=sgd,metrics=["accuracy"])
Результаты
Результат прогнозов