为什么我的NASNet模型的准确性在训练期间没有提高?

2024-09-26 17:55:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我在keras中定制了以下模型,但是,当我进行培训时,模型的准确性几乎没有增加:

from keras.applications.nasnet import NASNetLarge
from keras.optimizers import SGD

base_model = NASNetLarge(weights='imagenet', include_top=True)

x = base_model.layers[-6].output
x = Flatten(name='FLATTEN')(x)
x = Dense(256, activation='relu', name='last_FC1')(x)  # let's add a fully-connected layer
x = Dropout(0.5, name='DROPOUT')(x) # Dropout layer so the visualisations are done properly
predictions = Dense(len(classes), activation='softmax', name='PREDICTIONS')(x)
model = Model(input=base_model.input, outputs=predictions)

for layer in model.layers[:-290]:
    layer.trainable = False

model.compile(optimizer=SGD(lr=0.0001, momentum=0.9),
                  loss='categorical_crossentropy',
                  metrics=['accuracy'])
model.summary()

仅供参考,培训准确度、培训损失、验证准确度和验证损失如下:

epoch | accuracy | loss | val_accuracy | val_loss

0 | 0.5149105 | 60.32275529 | 0.463636369 | 0.693147182

1 | 0.51292247 | 0.693200452 | 0.53694582 | 0.695120037

2 | 0.528827 | 0.692723821 | 0.532019675| 0.689894736

3 | 0.53677934 | 0.692179034 | 0.551724136 | 0.695185542

4 | 0.53479123 | 0.69184255 | 0.453201979 | 0.696151495

5 | 0.54075545 | 0.69120561 | 0.571428597 | 0.693781257

6 | 0.5149105 | 0.69272005| 0.541871905 | 0.70132494

7 | 0.528827 | 0.69375147 | 0.566502452 | 0.693984807

有人能建议我在前面提到的代码中更改哪些变量来改进培训吗

如何知道在Keras模型中修改哪些变量以改进模型的训练


Tags: namefrom模型importlayerbasemodellayers

热门问题