在 ML 引擎上训练后获取 saved_model.pb 的路径

Get the path of saved_model.pb after training on ML engine

我一直在使用 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/')

使用 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
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)