gcloud 作业无法访问我的文件,无论它们在 GCS 中还是在我的云中 shell
gcloud job can't access my files, either they are in GCS or in my cloud shell
我正在尝试 运行 我的机器学习代码,在 Google CloudML 中使用 tensorflow 从图像中学习。但是,提交的作业似乎无法访问我的云 shell 或 GCS 中的文件。尽管它在我的本地机器上运行良好,但一旦我使用来自云的命令 gcloud shell 提交我的作业,我就会收到以下错误:
ERROR 2017-12-19 13:52:28 +0100 service IOError: [Errno 2] No such file or directory: '/home/user/pores-project-googleML/trainer/train.txt'
这个文件夹肯定可以在云端找到shell,我输入的时候可以查看:
ls /home/user/pores-project-googleML/trainer/train.txt
我尝试将我的文件 train.txt
放入 GCS 并从我的代码访问它(通过指定路径 gs://my_bucket/my_path
),但是提交作业后,我得到了一个 'No such file or directory'对应路径错误。
为了检查我使用 gcloud 提交的作业在哪里 运行ning,我在 python 代码 trainer/task.py 的开头添加了 print(os.getcwd())
,它打印了结果在日志中:/user_dir
。我无法使用云 shell 找到此路径,甚至在 GCS 中也找不到。 所以我的问题是我如何知道我的工作在哪台机器上 运行ning?如果它在某处的某个容器中,我如何使用云 shell 和 GCS 从它访问我的文件?
在执行所有这些操作之前,我已成功完成 'Image Classification using Flowers Dataset' 教程。
我用来提交作业的命令是:
gcloud ml-engine jobs submit training $JOB_NAME --job-dir $JOB_DIR --packages trainer-0.1.tar.gz --module-name $MAIN_TRAINER_MODULE --region us-central1
其中:
TRAINER_PACKAGE_PATH=/home/use/pores-project-googleML/trainer
MAIN_TRAINER_MODULE="trainer.task"
JOB_DIR="gs://pores/AlexNet_CloudML/job_dir/"
JOB_NAME="census$(date +"%Y%m%d_%H%M%S")"
常规 Python IO 库无法访问 GCS 上的文件。相反,您需要使用 GCS python 客户端或 gstuil cli 来访问 GCS 文件。
请注意,TensorFlow 本身具有对 GCS 的原生支持(即,它可以直接读取 GCS 文件)。
我正在尝试 运行 我的机器学习代码,在 Google CloudML 中使用 tensorflow 从图像中学习。但是,提交的作业似乎无法访问我的云 shell 或 GCS 中的文件。尽管它在我的本地机器上运行良好,但一旦我使用来自云的命令 gcloud shell 提交我的作业,我就会收到以下错误:
ERROR 2017-12-19 13:52:28 +0100 service IOError: [Errno 2] No such file or directory: '/home/user/pores-project-googleML/trainer/train.txt'
这个文件夹肯定可以在云端找到shell,我输入的时候可以查看:
ls /home/user/pores-project-googleML/trainer/train.txt
我尝试将我的文件 train.txt
放入 GCS 并从我的代码访问它(通过指定路径 gs://my_bucket/my_path
),但是提交作业后,我得到了一个 'No such file or directory'对应路径错误。
为了检查我使用 gcloud 提交的作业在哪里 运行ning,我在 python 代码 trainer/task.py 的开头添加了 print(os.getcwd())
,它打印了结果在日志中:/user_dir
。我无法使用云 shell 找到此路径,甚至在 GCS 中也找不到。 所以我的问题是我如何知道我的工作在哪台机器上 运行ning?如果它在某处的某个容器中,我如何使用云 shell 和 GCS 从它访问我的文件?
在执行所有这些操作之前,我已成功完成 'Image Classification using Flowers Dataset' 教程。
我用来提交作业的命令是:
gcloud ml-engine jobs submit training $JOB_NAME --job-dir $JOB_DIR --packages trainer-0.1.tar.gz --module-name $MAIN_TRAINER_MODULE --region us-central1
其中:
TRAINER_PACKAGE_PATH=/home/use/pores-project-googleML/trainer
MAIN_TRAINER_MODULE="trainer.task"
JOB_DIR="gs://pores/AlexNet_CloudML/job_dir/"
JOB_NAME="census$(date +"%Y%m%d_%H%M%S")"
常规 Python IO 库无法访问 GCS 上的文件。相反,您需要使用 GCS python 客户端或 gstuil cli 来访问 GCS 文件。
请注意,TensorFlow 本身具有对 GCS 的原生支持(即,它可以直接读取 GCS 文件)。