【问题标题】:Get the path of saved_model.pb after training on ML engine在 ML 引擎上训练后获取 saved_model.pb 的路径
【发布时间】:2018-08-27 02:19:42
【问题描述】:

我一直在使用 ML 引擎的 python 客户端 API 来创建一些罐装估计器的训练作业。我不能做的是在 GCS 上获取 saved_model.pb 的路径,因为它存储的路径有一个时间戳作为目录名称。无论如何我可以在python客户端上使用正则表达式或其他东西来获得这个,这样我就可以使用正确的路径部署模型。

路径现在似乎是这种格式 -

gs://bucket_name/outputs/export/serv/timestamp/saved_model.pb


更新

感谢shahin 的回答。 所以我写了这个,它给了我可以传递给 ml 引擎的 deploy_uri 的确切路径。

from google.cloud import storage

def getGCSPath(prefix):
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    mlist = bucket.list_blobs(prefix=prefix)
    for line in mlist:
        if 'saved_model.pb' in line.name:
            return line.name[:-14]

# print getGCSPath('output/export/serv/')

【问题讨论】:

    标签: python tensorflow google-cloud-storage google-cloud-ml


    【解决方案1】:

    使用 gsutil 和 tail:

    MODEL_LOCATION=$(gsutil ls gs://${BUCKET}/outputs/export/serv | tail -1)
    gcloud ml-engine models create ${MODEL_NAME} --regions $REGION
    gcloud ml-engine versions create ${MODEL_VERSION} --model ${MODEL_NAME} --origin ${MODEL_LOCATION} --runtime-version $TFVERSION
    

    【讨论】:

    • 我希望得到一个 python 客户端的答案。
    • 在 python 中运行 bash 脚本 import os os.system('gsutil ls gs://${BUCKET}/outputs/export/serv | tail -1')
    【解决方案2】:
    import os
    import cloudstorage as gcs
    bucket = os.environ.get('BUCKET')
    page_size = 1
    stats = gcs.listbucket(bucket + '/outputs/export/serv', max_keys=page_size)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-17
      • 2023-03-31
      • 1970-01-01
      • 2018-06-18
      相关资源
      最近更新 更多