python模型训练停电_防止训练模型时信息丢失,用于TensorFlow、Keras和PyTorch的检查点教程...

本文介绍了在深度学习模型训练过程中使用检查点的重要性,以防止因停电、系统故障等原因导致的训练进度丢失。文章通过FloydHub平台,展示了在TensorFlow、Keras和PyTorch中如何保存和恢复检查点,包括短期、正常和长期训练策略。通过检查点,可以在特定状态恢复训练,避免重复工作,并保存模型成果。
摘要由CSDN通过智能技术生成

如果你玩过电子游戏,你就会明白为什么检查点(chekpoint)是有用的了。举个例子,有时候你会在一个大Boss的城堡前把你的游戏的当前进度保存起来——以防进入城堡里面就Game Over了。

机器学习和深度学习实验中的检查点本质上是一样的,它们都是一种保存你实验状态的方法,这样你就可以从你离开的地方开始继续学习。

如果你因为停电、操作系统故障、工作优先或其他类型的意外错误而丢失了一个或多个实验,你一定会抓狂。其他时候,即使你没有遇到不可预见的错误,你也可能只是想要恢复一种新实验的训练的特殊状态,或者从一个给定的状态中尝试不同的事情。

这就是为什么你需要检查点!

但是,等等,还有一个很重要的原因。如果你在工作结束时不检查你的训练模式,你将会失去所有的结果!简单来说,如果你想使用你训练的模型,你就需要一些检查点。

FloydHub是一个极其易用的深度学习云计算平台。号称“Zero Setup for Deep Learning”。它的服务主旨是: “您就专心研究您的深度学习,其它的环境配置、部署、版本控制等等都交给我们来做就可以了”。

这篇文章将演示如何在FloydHub上对你的训练模型进行检查,以便你可以从这些保存的状态重新开始你的实验。

什么是检查点?

Keras文档为检查点提供了一个很好的解释:

模型的体系结构,允许你重新创建模型

模型的权重

训练配置(损失、优化器、epochs和其他元信息)

优化器的状态,允许在你离开的地方恢复训练

同样,一个检查点包含了保存当前实验状态所需的信息,以便你可以从这一点恢复训练。

检查点策略

你可以根据你正在执行的训练类型,采用不同的检查点策略。

短期训练制度(几分钟到几小时)

正常的训练制度(数小时到一整天)

长期训练制度(数天至数周)

短期训练制度

典型的做法是在训练结束时,或者在每个epoch结束时,保存一个检查点。

正常的训练制度

在这种情况下,在每个n_epochs中保存多个检查点,并跟踪我们所关心的一些验证度量,这是很常见的。通常,有一个固定的最大数量的检查点,这样就不会占用太多的磁盘空间(例如,将你最大的检查点数量限制在10个,新的位置将会取代最早的检查点)。

长期训练制度

在这种类型的训练体系中,你可能希望采用与常规机制类似的策略:在每一个n_epochs中,你都可以节省多个检查点,并在你所关心的验证度量上保持最佳状态。在这种情况下,由于训练将花费很长的时间,所以减少检查点的次数是很常见的,但是需要维护更多的检查点。

哪种制度适合我?

这些不同策略之间的折衷是要保持频率和检查点文件的数量。让我们来看看当我们对这两个参数进行操作时发生了什么:

在FloydHub中保存和恢复

现在,让我们研究FloydHub上的一些代码。我将向你展示如何在TensorFlow、Keras和PyTorch这三个流行的深度学习框架中保存检查点:

在开始之前,使用floyd login命令登录到FloydHub命令行工具,然后复刻(fork)并初始化(init)项目:

$ git clone https://github.com/floydhub/save-and-resume.git

$ cd save-and-resume

$ floyd init save-and-resume

对于我们的检查点示例,我们将使用深度学习的Hello,World:使用卷积神经网络模型的MNIST分类任务。

因为预先清楚我们的检查点策略是很重要的,我将说明我们将要采用的方法:

只保留一个检查点

在每个epoch结束时采取策略

保存具有最佳(最大)验证精确度的那个

如果是这样的小例子,我们可以采用短期的训练制度。

命令

在深入研究具体的工作示例之前,让我们概述一下你需要的基本命令。当你开始新工作时,你的第一个命令看起来是这样的:

floyd run \

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值