Cloud ML无法在Google云端存储上找到该文件

时间:2017-12-22 13:24:15

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

我正在使用以下命令读取我的数据文件:

data_dir = arguments['data_dir']
data = pd.read_csv(data_dir + "/train.csv")

我正在使用此数据在Google Cloud ML上训练我的模型,我已成功安排作业,但在获取文件时出现以下IO错误:

IOError: File gs://cloud-bucket/data/train.csv does not exist

该文件的地址是正确的,因为我已使用上述存储桶中的控制台上传它。此外,Cloud ML在同一区域中工作,并使用与我的存储桶

相同的项目进行配置

1 个答案:

答案 0 :(得分:2)

GCS不是POSIX文件系统,因此您通常不能使用"常规"用于操作GCS上的文件的文件库(例如,请参阅thisthisthis),当然包括pd.read_csv等便利功能。

对于pandas,你可以传递文件句柄,因此,基于前面提到的post,我建议使用TensorFlow的文件包装器,它可以从GCS或标准POSIX文件系统读取以启用您可以在本地和云上运行相同的代码:

from tensorflow.python.lib.io import file_io

data_dir = arguments['data_dir']
with file_io.FileIO(data_dir + "/train.csv", mode ='r') as f:
  data = pd.read_csv(f)

在提交云作业之前,通过在本地运行并传入GCS文件名来测试代码也可能会有所帮助。