问:使用Keras训练期间提取模型输出的最佳方法

时间:2017-05-17 12:31:53

标签: python deep-learning keras

正如问题所说,我想在训练期间为每个输入数据提取模型输出。我认为有可能在训练期间轻松提取前进传球的输出,因为它无论如何都要计算,但无法找到一种有效的方法。

所以我正在寻找一种更有效的方法来执行以下操作:

for epoch in range(num_epochs):
    model.fit(x_tr, y_tr, batch_size=batch_size, epochs=1)
    y_pred = model.predict(x_tr, batch_size=batch_size)

    # now I use y_pred for something before starting the next epoch
    do_something_with_prediction(y_pred)

Custom Callbacks进入我的脑海,因为他们有内置函数可以调用,例如在每批结束时。但据我所知,您只能访问损失/度量值,而不能访问最后一层的实际输出。

我认为必须有一种更有效的方法,因为输出会在每次前后传球计算,我真的想节省时间来再次计算整个训练数据的正向传球。

1 个答案:

答案 0 :(得分:0)

您可以在图形模式下以高性能执行这样的操作,

tf.py_function(do_something_with_prediction, [y_pred], [outputs_of_your_func])