我现在正在做的是GAN。实际上,我们不知道CNN和RNN立即使用GAN会做什么,并且由于计算环境是个人的,因此我们正在开发付费版本的“ Google Colab”。我了解到Google Colab最多可以在24小时(不完全是24小时)内使用开发环境。
结果是,机器学习需要一些时间,并且在中间被切断。到目前为止,我被迫学习可以在24小时内进行训练的数据集和方法,然后突然我想,“我们不能积累训练吗?”
因此,我的问题是,例如,如果我训练的次数最多为100次,并且仅在50次训练后就被切断,那么我不能从50次开始进行下一次训练吗?如果我们可以这样做,那么就不会进行长时间的培训,因为尽管有24小时的限制,但Google Colab可以每24小时继续进行一次培训?那就是我的想法。
这可能吗?
答案 0 :(得分:2)
在像PyTorch或Tensorflow这样的框架中,这非常简单。您可以保存模型的权重,然后在以后恢复这些权重,只需做一个模型实例并加载权重即可。
对于PyTorch,您基本上是这样做的:
torch.save(model.state_dict(), path_to_save_to)
要加载保存的重量时:
model = ModelClass()
model.load_state_dict(torch.load(path_saved_to)
您可能希望在每个时期之后或每n个时期之后进行保存,或者仅在模型性能提高时进行保存等。
如果您不使用任何框架,那么即使如此也可能。您可以将模型权重保存在Numpy数组中,然后可以通过多种方式保存到Gdrive。再次需要时,实例化模型,而不是随机初始化参数,而是将它们设置为已加载的Numpy数组。