【问题标题】:How to take and restore snapshots of model training on another VM in Google Colab?如何在 Google Colab 中的另一个 VM 上拍摄和恢复模型训练的快照?
【发布时间】:2018-10-08 21:27:50
【问题描述】:
据 google colab 称,在 GPU 上训练深度学习模型需要 12 小时 time limit。其他人过去也有类似的questions,但是当超过 12 小时限制时,如何在训练中途保存和加载模型,包括保存已完成的 epoch 数/保存其他参数。是否有自动脚本让我保存相关参数并在另一个 VM 上恢复操作?我是一个完全的菜鸟;明确的答案将不胜感激。
【问题讨论】:
标签:
python
tensorflow
deep-learning
pytorch
google-colaboratory
【解决方案1】:
据我所知,当您达到 12 小时限制时,无法自动重新连接到另一个虚拟机。所以无论如何,你必须在时间到时手动重新连接。
正如 Bob Smith 所指出的,您可以在 Colab VM 中装载 Google Drive,以便从那里保存和加载数据。特别是,您可以定期保存模型检查点,以便在连接到新的 Colab VM 时加载最新的检查点。
-
在 Colab 虚拟机中安装驱动器:
from google.colab import drive
drive.mount('/content/gdrive')
-
在您的图表中创建一个saver:
saver = tf.train.Saver()
-
定期(例如每个时期)在云端硬盘中保存一个检查点:
saver.save(session, CHECKPOINT_PATH)
当您连接到新的 Colab 虚拟机时(由于超时),在您的虚拟机中再次挂载 Drive 并恢复训练阶段之前的最新检查点:
saver.restore(session, CHECKPOINT_PATH)
...
# Start training with the restored model.
查看documentation 以了解有关tf.train.Saver 的更多信息。
【解决方案3】:
您可以从 colab 访问 github,从而可以定期将模型检查点保存到 github。当会话结束时,您可以启动另一个会话并从您的 github 存储库加载检查点。