Google Cloud ML发动机培训师是否必须明确意识到Google Cloud Storage URI



我正在尝试使用现有的TensorFlow模型,而我到目前为止使用Google Cloud ML ML引擎在本地运行。

该模型当前通过将诸如my_model.trainmy_model.eval等文件名中的培训数据传输到tf.data.TextLineDataset中。这些文件名现在已在模型的培训师中进行了硬编码,但是我计划重构它,以便它以培训应用程序参数(以及--job-dir)在命令行上获得。例如喜欢:

my_trainer.pl --job-dir job 
  --filename-train my_model.train --filename-eval my_model.eval

这也应该让我在本地使用Clould ML引擎运行教练:

gcloud ml-engine local train 
  --job-dir job
  ...
  -- 
  --filename-train my_model.train 
  --filename-eval my_model.eval

我到目前为止做了正确的假设,我还可以通过用Google Cloud Storage gs: URIS替换本地文件名来在Google的云中运行同一培训师(将数据集文件上传到my_bucket之后),例如。喜欢:

gcloud ml-engine local train 
  --job-dir job
  ...
  -- 
  --filename-train gs://my_bucket/my_model.train 
  --filename-eval gs://my_bucket/my_model.eval

i其他世界, tf.data.TextLineDataset可以透明地处理 gs: uris,还是我必须在教练中包括特殊代码以事先处理此类uris?

是的,tf.read_file和tf.tf.textlinereader和tf.data.textlinedataset隐含地处理GCS。只需确保您将GCS URL传递给GS://my_bucket/path/to/data.csv作为"文件名"

要小心的一件事:始终使用OS.Path.join()组合"目录"名称和"文件"名称。尽管大多数Linux发行版都通过忽略重复的斜杠(是键值商店)来处理诸如/some/path/somefile.txt之类的路径。因此,使用OS.Path.join确保您不重复目录分离器。

最新更新