精度等于0 CNN Python Keras

我正在研究二进制分类问题。刚开始我获得了69%的准确度,但是由于内存不足,因此我缩小了某些参数,现在它的值为0。知道发生什么了吗?


model = Sequential()
from keras.layers import Dropout
model.add(Conv2D(96,kernel_size=11,padding="same",input_shape=(300,300,1),activation = 'relu'))
model.add(MaxPooling2D(pool_size=(3,3),strides=(2,2)))

model.add(Conv2D(128,kernel_size=3,activation = 'relu'))
model.add(MaxPooling2D(pool_size=(2,2),2)))

from keras.layers.core import activation

model.add(flatten())
# model.add(Dense(units=1000,activation='relu'  ))
model.add(Dense(units= 300,activation='relu'))
model.add(Dropout(0.2))

model.add(Dense(1))
model.add(activation("softmax"))

model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])


from keras.preprocessing.image import ImageDataGenerator

datagen = ImageDataGenerator(
    featurewise_center=True,rotation_range=90,fill_mode='nearest',validation_split = 0.2
    )

datagen.fit(train)

train_generator = datagen.flow(train,train_labels,batch_size=8)


# # fits the model on batches with real-time data augmentation:
history = model.fit_generator(generator=train_generator,use_multiprocessing=True,steps_per_epoch = len(train_generator) / 8,epochs = 5,workers=20)
speedisk 回答:精度等于0 CNN Python Keras

仅当您遇到多类分类问题时才应使用Softmax。您的Dense层只有一个输出,因此应该使用Sigmoid。

本文链接:https://www.f2er.com/3107320.html

大家都在问