【问题标题】:Google Cloud ML and GCS Bucket issuesGoogle Cloud ML 和 GCS 存储桶问题
【发布时间】:2017-08-05 13:31:45
【问题描述】:

我正在使用研究论文的开源 Tensorflow 实现,例如 DCGAN-tensorflow。我使用的大多数库都配置为在本地训练模型,但我想使用 Google Cloud ML 来训练模型,因为我的笔记本电脑上没有 GPU。我发现很难更改代码以支持 GCS 存储桶。目前,我正在将日志和模型保存到 /tmp,然后在训练结束时运行“gsutil”命令将目录复制到 gs://my-bucket (example here)。如果我尝试将模型直接保存到 gs://my-bucket 它永远不会出现。

至于训练数据,其中一个 tensorflow 样本将数据从 GCS 复制到 /tmp 进行训练 (example here),但这仅适用于数据集较小的情况。我想使用 celebA,每次运行都复制到 /tmp 太大。是否有任何文档或指南说明如何更新在本地训练以使用 Google Cloud ML 的代码?

这些实现运行着不同版本的 Tensorflow,主要是 .11 和 .12

【问题讨论】:

    标签: google-cloud-storage google-cloud-platform google-cloud-ml


    【解决方案1】:

    目前没有明确的指南。基本思想是用file_io 模块中的等效项替换所有出现的本机 Python 文件操作,最值得注意的是:

    这些函数将在本地和 GCS(以及任何已注册的文件系统)上运行。但是请注意,file_io 和标准文件操作存在一些细微差别(例如,支持一组不同的“模式”)。

    幸运的是,检查点和摘要编写确实可以开箱即用,只需确保将 GCS 路径传递给 tf.train.Saver.savetf.summary.FileWriter

    在您发送的样本中,这看起来可能很痛苦。当程序开始只需要执行一次时,考虑猴子修补 Python 函数以映射到 TensorFlow 等效项(已证明 here)。

    附带说明,this 页面上的所有示例都显示从 GCS 读取文件。

    【讨论】:

    • 感谢您提供此信息。尝试读取图像文件时遇到问题。我没有使用不适用于 GCS URI 的 scipy.misc.imread("gs://BUCKET/PATH") ,而是首先使用 file_io 打开文件: scipy.misc.imread(file_io.FileIO(path,模式='r'))。这似乎是返回一个 对象而不是一个数组。我不确定如何在 Cloud ML 上解决此问题,因为在线讨论似乎表明这是 PIL 安装的问题。
    • 这是一个丑陋的 hack,但您可以在 setup.py 中使用 subprocess 来执行 apt-getpip install 之类的操作。话虽如此,让我调查一下。发布有关此问题的单独问题可能很有意义。
    • 在我对您的其他问题的回答中注意到了这一点 (stackoverflow.com/questions/42821093/…),但该问题似乎是 TF 0.12.1 中 file_io 版本中的错误,并已在 TF 1.0 中修复跨度>
    • tf.summary.FileWriter 在提供 GCS 路径时似乎有效,但 tf.train.Saver.save 仅在提供父目录已存在的 GCS 路径时才有效。我认为这是一个错误,因为 GCS 应该是平面存储,其中提供文件层次结构是为了方便。
    猜你喜欢
    • 1970-01-01
    • 2019-10-12
    • 2018-12-23
    • 2020-09-17
    • 2021-02-21
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 2020-07-03
    相关资源
    最近更新 更多