有没有办法直接通过
gcloud ai models upload
命令获取型号ID?
无论是使用JSON输出还是数值输出,都需要通过拆分和提取来进行操作。如果有方法可以直接获取型号ID而不需要操作,请指教。
output = !gcloud ai models upload \
--region=$REGION \
--display-name=$JOB_NAME \
--container-image-uri=us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-8:latest \
--artifact-uri=$GCS_URL_FOR_SAVED_MODEL \
--format="value(model)"
output
-----
['Using endpoint [https://us-central1-aiplatform.googleapis.com/]',
'projects/xxxxxxxx/locations/us-central1/models/1961937762277916672',
'Waiting for operation [8951184153827606528]...',
'...................................done.']
由于您已经有了
$REGION
和 $JOB_NAME
的值,因此您可以在上传模型后使用执行 gcloud ai models list
来以最少的操作获取模型 id。
参见下面的命令:
export REGION=us-central1
export JOB_NAME=test_training
export PROJECT_ID=your-project-name
gcloud ai models list --region=$REGION --filter="DISPLAY_NAME: $JOB_NAME" | grep "MODEL_ID" | cut -f2 -d: | sed 's/\s//'
输出:
如果您想形成
gcloud ai models upload
返回的实际字符串,您只需连接变量即可。
MODEL_ID=$(gcloud ai models list --region=$REGION --filter="DISPLAY_NAME: $JOB_NAME" | grep "MODEL_ID" | cut -f2 -d: | sed 's/\s//')
echo projects/${PROJECT_ID}/locations/${REGION}/models/${MODEL_ID}
输出:
gcloud ai models describe $MODEL_NAME
的输出包括已部署的ModelId。
因此,如果您有 MODEL_NAME,则只需提取已部署的ModelId:
MODEL_ID=$(gcloud ai models describe $MODEL_NAME --project=$PROJECT --region=$REGION --flatten="deployedModels[0]" --format="csv[no-heading](deployedModelId)")
如果您部署的版本很多并且需要选择一个,则需要细化。