【问题标题】:Python/Keras - accessing ModelCheckpoint callbackPython/Keras - 访问 ModelCheckpoint 回调
【发布时间】:2016-08-20 22:19:14
【问题描述】:

我正在使用 Keras 来预测时间序列。作为标准,我使用 20 个 epoch。我想知道我的神经网络在 20 个 epoch 中的每一个都预测了什么。

通过使用 model.predict,我得到了最后的预测。但是,我想要所有预测,或者至少是最后 10 个(具有可接受的错误级别)。

要访问它,我正在尝试使用 Keras 的 ModelCheckpoint 函数,但是之后我无法访问它。我正在使用以下代码:

model=Sequential()

model.add(GRU(input_dim=col,init='uniform',output_dim=20))
model.add(Dense(10))
model.add(Dense(5))
model.add(Activation("softmax"))
model.add(Dense(1))

model.compile(loss="mae", optimizer="RMSprop")

checkpoint=ModelCheckpoint(filepath='/Users/Alex/checkpoint.hdf5')

model.fit(X=predictor_train, y=target_train, nb_epoch=20, batch_size=batch,validation_split=0.1) #best validation split at 0.1
model.evaluate(X=predictor_train, y=target_train,batch_size=batch,show_accuracy=True)

print checkpoint

客观地说,我的问题是:

  • 我希望在运行代码后,我会在 /Users/Alex 文件夹中找到一个名为 checkpoint.hdf5 的文件,但我没有。我错过了什么?

  • 当我打印出checkpoint 时,我得到的是keras.callbacks.ModelCheckpoint object at 0x117471290。有没有办法打印我想要的东西?代码会是什么样子?

非常感谢您的帮助:)

【问题讨论】:

    标签: python keras


    【解决方案1】:

    这段代码有两个问题:

    • 您没有将回调传递给模型的 fit 方法。这是通过关键字参数“回调”完成的。
    • 文件路径应包含占位符(如“{epoch:02d}-{val_loss:.2f}”,Keras 将其与 str.format 一起使用,以便将每个时期保存到不同的文件中。

    所以正确的版本应该是这样的:

    checkpoint = ModelCheckpoint(filepath='/Users/Alex/checkpoint-{epoch:02d}-{val_loss:.2f}.hdf5')
    
    model.fit(X=predictor_train, y=target_train, nb_epoch=20,
             batch_size=batch,validation_split=0.1, callbacks=[checkpoint])
    

    您还可以在分配给该关键字的列表中添加其他类型的回调。

    很遗憾,回调对象不存储历史信息,因此无法从中恢复。

    【讨论】:

    • 有没有办法将该文件保存在 csv 或 txt 中? hdf5 很难使用...
    • @abutremutante 不,HDF5 很容易与 h5py 一起使用,但为什么需要使用它呢?您可以使用 load_weights 将权重加载到模型中
    • 是否可以将自定义参数传递给文件路径?它是怎样的:ModelCheckpoint('model-{epoch:02d}-{val_acc:.3f}-{val_loss:.3f}.hdf5'我想成为怎样的人:ModelCheckpoint('model-{}-{epoch:02d}-{val_acc:.3f}-{val_loss:.3f}.hdf5'.format(model_name)
    猜你喜欢
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多