Skip to main content
 首页 » 编程设计

python之在固定训练时间后保存 tensorflow 模型

2024年09月03日27EasonJim

我在一台服务器上训练一个模型,它只允许我进行一个小时的计算:在那个时间结束时,它只会扼杀我的工作。我希望 tensorflow 在训练 58 分钟后保存其训练结果,无论当前状态如何。我同意在最后一个完成的时期保存状态,我只是想知道发生了什么。我该怎么做?

请您参考如下方法:

当然,你也可以定义一个委托(delegate)回调函数来停止训练阶段。

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

在这个例子中,创建了一个回调函数,以便在“准确度”超过阈值时停止训练阶段。您可以修改函数以进行时间计算以验证耗时。


这是一段有效的代码:

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)]