Google ml-engine云存储作为文件

时间:2019-03-13 20:19:48

标签: python google-app-engine google-cloud-platform google-cloud-storage google-cloud-ml

我正在使用Google Cloud ML-Engine使用Python。我发现的文档表明应该使用Bucket和Blob完成数据存储

https://cloud.google.com/ml-engine/docs/tensorflow/working-with-cloud-storage

但是,我的大部分代码以及它调用的库都适用于文件。我可以在ml-engine代码中以某种方式将Google Storage视为文件系统吗?

我希望我的代码看起来像

with open(<something>) as f:
   for line in f:
      dosomething(line)

请注意,在ml-engine中,不会创建和配置VM实例。因此,我无法使用Filestore挂载自己的共享文件系统。

2 个答案:

答案 0 :(得分:2)

使Cloud Storage作为文件系统出现的唯一方法是访问mount a bucket as a file system

  

您可以使用Google Cloud Storage FUSE工具来安装云   您的Compute Engine实例的存储桶。装好的水桶   即使Cloud Storage的行为与persistent disk类似   存储桶是对象存储。

但是,如果无法创建和配置VM,则无法执行此操作。

  

请注意,在ml-engine中,它不会创建和配置VM实例。

那不是完全正确的。我看到ML Engine支持building custom containers,这通常是安装和配置OS级依赖项的方式。但是仅适用于培训领域,因此,如果您的需求在该领域,那么不妨尝试一下。

我假设您已经检查过该库不支持通过已打开的类似文件的处理程序进行访问(如果不支持,则可能是How to restore Tensorflow model from Google bucket without writing to filesystem?

答案 1 :(得分:2)

对于那些之后的人,这是答案

Google Cloud ML and GCS Bucket issues

from tensorflow.python.lib.io import file_io

这是一个例子

with file_io.FileIO("gc://bucket_name/foobar.txt","w") as f:
    f.write("FOO")
    f.flush()
    print("Write foobar.txt")

with file_io.FileIO("gc://bucket_name/foobar.txt","r") as f:
    for line in f:
        print("Read foobar.txt: "+line)