为什么在加载和继续训练ConvNet之后,每次精度都会下降?

时间:2019-07-14 14:00:56

标签: python tensorflow keras

我用自己的数据从头开始训练InceptionV3 ConvNet。重新加载模型并继续学习后,我意识到训练集的准确性在退格后会略有下降(例如,从0.956降至0.879)。然后,精度将继续保持预期的状态。对我来说似乎很不直观。有谁知道为什么会这样?

这是我最初初始化模型的方式:

    return showDialog<bool>(
      context: context,
      barrierDismissible: false,
      builder: (BuildContext context)
      {
        return StateDialog(dialog: AlertDialog(
          title: Text("Save Event"),
          content: new Column(
            children: <Widget>[
etc...

在每个时期之后,我使用以下回调存储模型:

base_model = InceptionV3(weights=None, include_top=False) x = base_model.output x = GlobalAveragePooling2D(name='avg_pool')(x) x = Dropout(0.4)(x) predictions = Dense(num_classes, activation='softmax')(x) model = Model(inputs=base_model.input, outputs=predictions) # Freeze all layers if preTrained: for layer in base_model.layers: layer.trainable = False model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

此代码用于分解模型(我不再编译模型): checkpointEveryEpoch_callback = ModelCheckpoint(saveDir + "modelFiles/saved-model-{epoch:02d}-{val_acc:.2f}.hdf5", monitor='val_acc', verbose=1, save_best_only=False, mode='max')

我使用RMSProp优化器尝试了相同的操作。但是,在重新加载并继续训练之后,也会发生同样的情况。

有什么想法为什么每次训练集的准确性都会略有下降?

0 个答案:

没有答案