经过固定训练时间后保存张量流模型

时间:2019-09-25 10:21:43

标签: python tensorflow

我正在服务器上训练一个模型,该模型只允许我进行一个小时的计算:在那之后,这只会扼杀我的工作。无论当前处于什么状态,我都希望tensorflow在经过58分钟的训练后保存其训练结果。我可以将状态保存到最后一个完成的时间,我只是想知道发生了什么。我该怎么办?

2 个答案:

答案 0 :(得分:2)

当然,您可以定义一个委派的回调函数来停止训练阶段。

您可以在这里查看更多信息:
https://towardsdatascience.com/neural-network-with-tensorflow-how-to-stop-training-using-callback-5c8d575c18a9

在此示例中,创建了一个回调函数,以便在“ ACCURACY”超过阈值时停止训练阶段。您可以修改功能以进行时间计算,以验证经过的时间。


这是一段有效的代码:

class TimeOut(Callback):
    def __init__(self, t0, timeout):
        super().__init__()
        self.t0 = t0
        self.timeout = timeout  # time in minutes

    def on_train_batch_end(self, batch, logs=None):
        if time.time() - self.t0 > self.timeout * 60:  # 58 minutes
            print(f"\nReached {(time.time() - self.t0) / 60:.3f} minutes of training, stopping")
            self.model.stop_training = True

callbacks = [TimeOut(t0=time.time(), timeout=58)]

答案 1 :(得分:0)

Tensorflow最近制作了一个插件来完成此任务。

在您的情况下,看起来像这样

import tensorflow_addons as tfa

time_stopping_callback = tfa.callbacks.TimeStopping(seconds=60*58, verbose=1) #58min

model.fit(........, callbacks = [time_stopping_callback])

链接: https://www.tensorflow.org/addons/tutorials/time_stopping