如何在Jupyter Notebook中获取GCMLE模型的saved_model.pb存储路径
动态获取GCMLE模型存储路径并下载saved_model.pb到本地
当然可以实现!你完全可以通过Google Cloud的Python客户端工具链,在Jupyter Notebook或者Python脚本里自动获取已部署GCMLE模型版本的存储路径,再把saved_model.pb下载到本地。下面是具体的步骤和代码示例:
1. 准备依赖库
首先确保安装了所需的Python库:
pip install google-api-python-client oauth2client google-cloud-storage
2. 获取模型版本的存储路径
使用Google ML Engine的API来查询模型版本的详细信息,从中提取存储路径:
from googleapiclient import discovery from oauth2client.client import GoogleCredentials # 加载GCP认证凭据(本地环境可通过`gcloud auth application-default login`配置) credentials = GoogleCredentials.get_application_default() ml_service = discovery.build('ml', 'v1', credentials=credentials) # 替换成你的项目ID、模型名称和目标版本名称 PROJECT_ID = "your-gcp-project-id" MODEL_NAME = "your-deployed-model-name" VERSION_NAME = "your-model-version-name" # 构建API请求的资源路径 resource_path = f"projects/{PROJECT_ID}/models/{MODEL_NAME}/versions/{VERSION_NAME}" # 调用API获取版本详情 version_details = ml_service.projects().models().versions().get(name=resource_path).execute() # 提取模型的GCS存储路径(就是你在控制台看到的gs://...目录) model_gcs_path = version_details["deploymentUri"] print(f"模型存储路径已获取:{model_gcs_path}")
3. 下载saved_model.pb到本地
拿到GCS路径后,你可以用两种方式下载文件:
方式一:使用Google Cloud Storage客户端库
这种方式更适合纯Python脚本场景:
from google.cloud import storage # 解析GCS路径,拆分bucket名称和文件路径 bucket_name = model_gcs_path.split("gs://")[1].split("/")[0] saved_model_blob_path = "/".join(model_gcs_path.split("gs://")[1].split("/")[1:]) + "/saved_model.pb" # 初始化存储客户端并下载文件 storage_client = storage.Client() bucket = storage_client.bucket(bucket_name) blob = bucket.blob(saved_model_blob_path) local_save_path = "./saved_model.pb" blob.download_to_filename(local_save_path) print(f"saved_model.pb已成功下载到本地:{local_save_path}")
方式二:调用gsutil命令(适合Jupyter Notebook快速操作)
如果你已经配置了gsutil环境,直接在Notebook里运行命令更快捷:
import subprocess download_cmd = f"gsutil cp {model_gcs_path}/saved_model.pb ./saved_model.pb" subprocess.run(download_cmd, shell=True, check=True) print("文件下载完成!")
注意事项
- 确保你的账号拥有足够权限:需要
ml.models.get权限(用于查询模型版本信息)和storage.objects.get权限(用于下载GCS文件)。 - 本地环境认证:如果在本地运行,先通过
gcloud auth application-default login完成身份验证;如果在GCP内部环境(如AI Platform Notebooks),会自动使用服务账号认证。
内容的提问来源于stack exchange,提问作者reese0106
相关产品推荐
相关产品推荐

