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

通过使用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。有没有办法打印我想要的东西?代码看起来如何?

  • 非常感激你的帮助 :)

    最佳答案

    此代码有两个问题:

  • 您没有将回调传递给模型的fit方法。这是通过关键字参数“callbacks”完成的。
  • 文件路径应包含占位符(例如“{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])
    

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

    不幸的是,回调对象没有存储历史信息,因此无法从中恢复历史信息。

    关于python - Python/Keras-访问ModelCheckpoint回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36875911/

  • 10-12 18:01
    查看更多