如何将文件从Google AI平台培训工作转移到另一个计算实例或本地计算机?

时间:2019-05-18 10:09:33

标签: python tensorflow google-cloud-platform google-cloud-storage google-compute-engine

有什么想法在Google AI平台上训练后如何自动将一些文件(主要是Tensorflow模型)发送到另一个计算实例或本地计算机?例如,我想在我的教练中跑步,像这样的GTK+。当然,我不需要使用scp。这只是一个例子。 Google有这种可能性吗?像这样wayland,将文件从作业传输到Google Cloud Storage没问题。但是,当我尝试使用os.system(scp -r ./file1 user@host:/path/to/folder)例如将数据从我的AI平台作业传输到另一个实例时,我得到了os.system('gsutil cp ./example_file gs://my_bucket/path/')。有什么想法我该怎么做?

更新 也许有可能自动从Google云端存储中下载所选文件夹中的所有文件?因此,例如,我会将数据从我的工作实例上传到google cloud storage文件夹,而我的另一个实例会自动检测到更改并下载所有新文件?

UPDATE2 我找到了os.system('gcloud compute scp ./example_file my_instance:/path/'),但不确定它是否可以在后台持续运行?此时,我想到的唯一解决方案是在后端使用cron job并例如每10分钟运行一次Your platform does not support SSH。但这似乎不是最佳解决方案。也许有内置的工具或另一个更好的主意?

1 个答案:

答案 0 :(得分:1)

rsync命令通过复制所有丢失的文件/对象(或那些数据已更改的文件/对象),以及(如果指定了-d选项)删除任何目标文件,使目标目录下的内容与源文件下的内容相同。额外的文件/对象。源必须指定目录,存储桶或存储桶子目录。但是它不会在后台运行。

请记住,您使用的Notebook实际上是运行JupyterLab的VM,基于此,一旦Tensorflow完成创建文件并将其与另一个实例中的目录同步后,您就可以运行命令rsync喜欢:

import os
os.system("rsync -avrz Tensorflow/outputs/filename root@ip:Tensorflow/otputs/file")

我建议您查看rsync documentation,以了解使用该命令的所有可用选项。