我正在研究皮肤癌识别模型。 我正在尝试使用keras和tensorflow训练我的模型,但是我注意到val_accuracy并没有改变,它的精度和损耗以及val_loss都在变化,它停留在54%。 我对ResNet50层使用了预先训练的权重,然后添加了其他层并冻结了第一层以训练其余部分。 这是我的模型:
console.log(
Math.round(90071992547409.93 * 100) === 9007199254740993,
);
这是培训的日志:
model = keras.Sequential()
model.add(ResNet50(include_top=False,input_tensor=None, input_shape=(224,224,3)
,pooling='avg',classes=2,weights=resnet_weights_path))
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.5))
model.add(BatchNormalization())
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(BatchNormalization())
model.add(Dense(1, activation='sigmoid'))
model.layers[0].trainable = False
model.summary()
model.compile(optimizer=SGD(lr=0.001),loss='binary_crossentropy',metrics=['accuracy'])
red_lr= ReduceLROnPlateau(monitor='val_accuracy',patience=3,verbose=1,factor=0.7)
batch_size=64
epochs=150
History = model.fit_generator(datagen.flow(x_train,y_train,batch_size=batch_size),validation_data=(x_val,y_val),
epochs= epochs, steps_per_epoch=x_train.shape[0]//batch_size,verbose=1,callbacks=[red_lr]
)
以此类推 因此,如果您能看到我的模型出了什么问题,请帮忙! 谢谢!
答案 0 :(得分:1)
发生这种情况的原因是您没有:
将这两个结合在一起可以解决您的问题。同时,您可能要删除BatchNormalization,如下面的注释中所建议。
答案 1 :(得分:0)