Google Cloud ML Engine 培训师是否必须明确了解 Google Cloud Storage URI?
Does Google Cloud ML Engine trainer have to be explicitly aware of Google Cloud Storage URIs?
我正在尝试使用现有的 TensorFlow 模型,目前我在本地 运行 使用 Google Cloud ML Engine。
该模型目前通过在命令行上将 my_model.train
和 my_model.eval
等文件名传递到 tf.data.TextLineDataset
. These filenames are now hardcoded in the model's trainer, but I plan to refactor it such that it obtains them as training application parameters(连同 --job-dir
)来获取其训练数据;例如像这样:
my_trainer.pl --job-dir job \
--filename-train my_model.train --filename-eval my_model.eval
这应该也允许我在本地 运行 使用 Clould ML Engine 的培训师:
gcloud ml-engine local train \
--job-dir job
...
-- \
--filename-train my_model.train \
--filename-eval my_model.eval
到目前为止我做出的假设是否正确,我是否也可以通过替换本地文件名来 运行 Google 云中的同一个培训师(将我的数据集文件上传到 my_bucket
之后)使用 Google 云存储 gs:
URI,例如像这样:
gcloud ml-engine local train \
--job-dir job
...
-- \
--filename-train gs://my_bucket/my_model.train \
--filename-eval gs://my_bucket/my_model.eval
我在其他世界,可以tf.data.TextLineDataset
像"filenames"一样透明地处理gs:
URI,还是我必须在我的训练器中包含特殊代码来预先处理这些URI?
是的,tf.read_file 和 tf.TextLineReader 以及 tf.data.TextLineDataset 都隐式处理 GCS。只需确保将 gs://my_bucket/path/to/data.csv 的 GCS URL 作为 "filename"
传递
有一点要注意:始终使用 os.path.join() 组合 "directory" 个名称和 "file" 个名称。虽然大多数 Linux 发行版通过忽略重复的斜杠来处理像 /some/path//somefile.txt 这样的路径,但 GCS(作为键值存储)认为它不同于 /some/path/somefile.txt。因此,使用 os.path.join 确保您没有重复目录分隔符。
我正在尝试使用现有的 TensorFlow 模型,目前我在本地 运行 使用 Google Cloud ML Engine。
该模型目前通过在命令行上将 my_model.train
和 my_model.eval
等文件名传递到 tf.data.TextLineDataset
. These filenames are now hardcoded in the model's trainer, but I plan to refactor it such that it obtains them as training application parameters(连同 --job-dir
)来获取其训练数据;例如像这样:
my_trainer.pl --job-dir job \
--filename-train my_model.train --filename-eval my_model.eval
这应该也允许我在本地 运行 使用 Clould ML Engine 的培训师:
gcloud ml-engine local train \
--job-dir job
...
-- \
--filename-train my_model.train \
--filename-eval my_model.eval
到目前为止我做出的假设是否正确,我是否也可以通过替换本地文件名来 运行 Google 云中的同一个培训师(将我的数据集文件上传到 my_bucket
之后)使用 Google 云存储 gs:
URI,例如像这样:
gcloud ml-engine local train \
--job-dir job
...
-- \
--filename-train gs://my_bucket/my_model.train \
--filename-eval gs://my_bucket/my_model.eval
我在其他世界,可以tf.data.TextLineDataset
像"filenames"一样透明地处理gs:
URI,还是我必须在我的训练器中包含特殊代码来预先处理这些URI?
是的,tf.read_file 和 tf.TextLineReader 以及 tf.data.TextLineDataset 都隐式处理 GCS。只需确保将 gs://my_bucket/path/to/data.csv 的 GCS URL 作为 "filename"
传递有一点要注意:始终使用 os.path.join() 组合 "directory" 个名称和 "file" 个名称。虽然大多数 Linux 发行版通过忽略重复的斜杠来处理像 /some/path//somefile.txt 这样的路径,但 GCS(作为键值存储)认为它不同于 /some/path/somefile.txt。因此,使用 os.path.join 确保您没有重复目录分隔符。