python - 在固定训练时间后保存 tensorflow 模型
问题描述
我正在一台服务器上训练一个模型,它只允许我进行一个小时的计算:在那段时间结束时,它只会扼杀我的工作。我希望 tensorflow 在训练 58 分钟后保存其训练结果,无论当前状态如何。我可以在最后一个完成的时期保存状态,我只是想知道发生了什么。我怎样才能做到这一点?
解决方案
当然,你可以定义一个回调函数委托来停止训练阶段。
您可以在这里查看更多信息:
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)]
推荐阅读
- swift - 如何用 Spritekit 模拟弹跳球的运动?
- python - 如何将可变长度的语音特征提供给 RNN(LSTM)进行语音识别?
- jmeter - 关于 WebDriver Sampler 和 Config/Listener 文件夹路径
- c++ - 按分母和分子的升序查找两个给定分数之间的不可约分数
- node.js - 如何在 MS Team 应用工作室中构建 Node.js 应用?
- python-3.x - 打印列表时看不到项目 > frozenset({'nan'}
- c# - 构造一个具有布尔 System.TypeCode 的 System.Char
- django - 如何在 Google Cloud Platform 中设置长时间运行的 Django 命令
- string - 如何在javascript循环中重复字符串
- mysql - 如何使用 knexjs 从 mysql 返回插入的数据?