我正在使用以下命令读取我的数据文件:
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在同一区域中工作,并使用与我的存储桶
相同的项目进行配置答案 0 :(得分:2)
GCS不是POSIX文件系统,因此您通常不能使用"常规"用于操作GCS上的文件的文件库(例如,请参阅this,this和this),当然包括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文件名来测试代码也可能会有所帮助。