【问题标题】:Where are models saved by default?模型默认保存在哪里?
【发布时间】:2016-10-13 23:56:14
【问题描述】:

我已经使用RESTful API 向云端提交了一个训练作业,并在console logs 中看到它已成功完成。为了部署模型并将其用于预测,我使用tf.train.Saver().save()(根据how-to guide)保存了最终模型。

在本地运行时,我可以在工作目录中找到图形文件(export-*export-*.meta)。然而,当在云上运行时,我不知道它们最终会在哪里。 API似乎没有指定这个的参数,它不在教练应用程序的存储桶中,我在作业创建的云存储上找不到任何临时存储桶。

【问题讨论】:

    标签: google-cloud-ml


    【解决方案1】:

    在设置 Cloud ML 环境时,您为此设置了一个存储分区。你进去看过吗?

    https://cloud.google.com/ml/docs/how-tos/getting-set-up

    编辑(供将来记录):正如 Robert 在 cmets 中提到的,您需要将输出位置作为参数传递给作业。需要注意的几点:

    • 对每个作业使用唯一的输出位置,这样一个作业就不会影响另一个作业的输出。

    • 建议指定父输出路径,并使用它将导出的模型包含在名为“模型”的子路径中,并在该路径中组织检查点和摘要等其他输出。这样可以更轻松地管理所有输出。

    • 虽然不是必需的,但我还建议将训练代码暂存到输出的包子路径中,这有助于将源代码与其产生的输出相关联。

    • 最后(!),还请记住,当您使用超参数调整时,您需要将试验 ID 附加到输出路径中,以获取由单个运行产生的输出。

    【讨论】:

    • 我确实创建了一个存储桶,并为我正在使用的服务帐户提供 editor 存储桶本身的权限,并将其设置为所有对象的 owner默认。之后,我将培训师应用程序放入桶中并运行了这项工作。不过,我认为这不是权限问题,因为如果无法写入,我应该会收到一条错误消息。据我所知,除了 trainer URI 之外,没有任何东西可以将存储桶与作业链接,还是我错过了什么?
    • 啊,你是对的。我猜你需要在 trainingInput - args 中将 'gs://bucket/model/export' 路径传递给它,然后将其传递给 tf.train.Saver()?
    • 谢谢,它现在完美运行。以前,我的默认保存路径是相对路径,所以我猜这些运行的输出最终会出现在运行作业的虚拟机上,并且在被拆除时丢失了。
    猜你喜欢
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 2017-01-02
    • 2020-01-03
    • 1970-01-01
    • 2010-11-06
    • 2018-08-19
    • 2019-07-27
    相关资源
    最近更新 更多