在 Google Colab 中保存 TensorFlow 检查点
Posted
技术标签:
【中文标题】在 Google Colab 中保存 TensorFlow 检查点【英文标题】:Save TensorFlow checkpoint in a Google Colab 【发布时间】:2019-11-15 15:48:42 【问题描述】:我正在尝试使用 TF.train.Saver() 保存经过训练的模型
saver = tf.train.Saver()
with tf.Session() as sess:
[...]
save_path = saver.save(sess, "/final_model.ckpt")
我知道这可以在本地计算机上运行,但是当我尝试在 Google Colab 上运行它时,它无法运行,并出现以下错误:
ValueError: final_model.ckpt 的父目录不存在
我已经执行了here提出的答案,
from google.colab import drive
drive.mount('/content/gdrive/')
但我保存的模型不会放在当前目录中。它进入了我在我的云端硬盘中看不到的content
文件夹。
我的代码在My Drive/TF 01/some method/
下,我想将检查点和日志保存在同一个文件夹中。
【问题讨论】:
【参考方案1】:发生这种情况是因为以下行:
save_path = saver.save(sess, "/final_model.ckpt")
“/”符号指的是 Colab 的“家”。假设您的个人驱动器安装为:
from google.colab import drive
drive.mount('/content/gdrive/')
您可以通过这种方式保存在您的驱动器中:
save_path = saver.save(sess, "gdrive/My Drive/TF 01/some method/final_model.ckpt")
或者通过硬编码:
save_path = saver.save(sess, "/content/gdrive/My Drive/TF 01/some method/final_model.ckpt")
或者,如果您只想在运行时使用它,只需删除“/”符号:
save_path = saver.save(sess, "final_model.ckpt")
【讨论】:
您能否解释一下“如果您只想在运行时中,只需删除 / 符号”是什么意思。如果我删除“/”,它会保存在哪里?我不能在工作完成后找到它吗? 这意味着它将保存在你的运行时,在文件夹“/content/”中。基本上,当您打开协作页面时,它就是您在左侧看到的“文件资源管理器”。如果在 Colab 中以这种方式保存文件,则在重置运行时时会丢失它。这就是为什么我还建议您将其保存在 Google 驱动器文件夹中,这样您在重置运行时时不会丢失模型权重。 有没有办法获得当前目录而无需硬编码?我不喜欢在分享我的 colab 时分享我的文件结构(即"/content/gdrive/My Drive/TF 01/some method/final_model.ckpt"
)。
不幸的是这是不可能的。您唯一能做的就是使用语法 gdrive/My Drive/TF 01/some method/final_model.ckpt
而不是带有 /content/
的语法,但您不能隐藏您的谷歌驱动器结构。
@mao95 我们是否只是为 /TF 01/ 编写自己的语法,还是这是标准的?我可以举个例子说明用什么代替“/some method/”。感谢 MatinKh Kh 提出这个问题。以上是关于在 Google Colab 中保存 TensorFlow 检查点的主要内容,如果未能解决你的问题,请参考以下文章
将列表保存到文件中,将另一个列表添加到同一文件中,然后在 google colab 上加载
如果我断开连接,Google Colab 会继续运行单元以将文件保存在已安装的驱动器中吗?