【问题标题】:ModelCheckpoint in keras compare with old modelkeras 中的 ModelCheckpoint 与旧模型比较
【发布时间】:2020-02-25 15:48:40
【问题描述】:

我是深度学习的新手,正在做一些分类问题。

我在回调列表中使用EarlyStoppingModelCheckpoint,但是当训练开始时,模型检查点的基线是负无穷大并覆盖“best_model.h5”。

但是,“best_model.h5”已经存储了我最后一个最好的模型。我想将ModelCheckpoint 的基线设置为我在数据上的最后一个最佳模型的性能。

谁能帮帮我?

es = EarlyStopping(monitor='val_accuracy', mode='max', verbose=1, patience=3)
mc = ModelCheckpoint('best_model.h5', monitor='val_accuracy', mode='max', save_best_only=True, verbose=1)

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(x_train, y_train, validation_data=(x_valid, y_valid), batch_size=400,\
                  epochs=20, callbacks=[es, mc])

enter image description here

【问题讨论】:

    标签: keras deep-learning


    【解决方案1】:

    这样做:

    mc = ModelCheckpoint('best_model-{epoch:04d}_{val_accuracy:.2f}.h5', monitor='val_accuracy', mode='max', save_best_only=True, verbose=1)
    

    这将使用epoch 编号和validation_accuracy 保存您的新最佳模型,而不会覆盖best_model.h5。这应该会在以后帮助您选择最佳模型并进行比较。

    【讨论】:

      【解决方案2】:

      我认为您的问题是您想在第一个时期之前保存 val_acc - 回到一般机器学习问题的机制,我认为第一次迭代之前的准确度值对比较没有意义(您的模型尚未在给定数据集上接受过训练)。如果您愿意,可以尽可能检查验证损失 (val_loss)。

      但是如果你想保存你的训练过程的日志,你不需要为每个 epoch 保存模型。您可以将历史函数用作 (import matplotlib.pyplot as plt)

      results = model.fit(x_train, y_train, validation_data=(x_valid, y_valid), batch_size=400,epochs=20, callbacks=[es, mc])
      
      plt.figure(figsize=(8, 8))
      plt.title("Learning curve")
      plt.plot(results.history["loss"], label="loss")
      plt.plot(results.history["val_loss"], label="val_loss")
      plt.xlabel("Epochs")
      plt.ylabel("Loss")
      plt.legend()
      plt.savefig('loss.png')
      
      plt.figure(figsize=(8, 8))
      plt.title("Learning curve")
      plt.plot(results.history["acc"], label="accuracy")
      plt.plot(results.history["val_acc"], label="accuracy")
      plt.xlabel("Epochs")
      plt.ylabel("Accuracy")
      plt.legend()
      plt.savefig('acc.png')
      

      【讨论】:

        猜你喜欢
        • 2022-10-14
        • 1970-01-01
        • 2019-03-22
        • 2020-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多