[英]SageMaker Model Package Group cannot be deleted because it still contains Model Packages
我在 SageMaker 中创建了一个 Model Package 组,以在 Model 注册表中存储不同的版本。
import boto3
model_package = 'risk-model'
sagemaker_boto_client = boto3.client('sagemaker')
sagemaker_boto_client.list_model_packages(ModelPackageGroupName=model_package)["ModelPackageSummaryList"]
>>> [
{'ModelPackageGroupName': 'risk-model',
'ModelPackageVersion': 3,
'ModelPackageArn': 'some_arn_3',
'ModelPackageDescription': 'New Model Version 3',
'CreationTime': datetime.datetime(2022, 4, 5, 15, 9, 3, 800000, tzinfo=tzlocal()),
'ModelPackageStatus': 'Completed',
'ModelApprovalStatus': 'PendingManualApproval'},
{'ModelPackageGroupName': 'risk-model',
'ModelPackageVersion': 2,
'ModelPackageArn': 'some_arn_2',
'ModelPackageDescription': 'New Model Version 2',
'CreationTime': datetime.datetime(2022, 4, 5, 14, 48, 5, 150000, tzinfo=tzlocal()),
'ModelPackageStatus': 'Completed',
'ModelApprovalStatus': 'PendingManualApproval'},
{'ModelPackageGroupName': 'risk-model',
'ModelPackageVersion': 1,
'ModelPackageArn': 'some_arn_1',
'ModelPackageDescription': 'New Model Version 1',
'CreationTime': datetime.datetime(2022, 4, 4, 23, 10, 38, 516000, tzinfo=tzlocal()),
'ModelPackageStatus': 'Completed',
'ModelApprovalStatus': 'Approved'}]
当我想删除 Model Package 组时
sagemaker_boto_client.delete_model_package_group(
ModelPackageGroupName='risk-model'
)
我收到以下错误
An error occurred (ValidationException) when calling the DeleteModelPackageGroup operation: Model Package Group cannot be deleted because it still contains Model Packages.
您需要首先删除 Model Package 组中的所有 Model 包。 请参阅delete_model_package()
boto3 API。
根据@Marc K 的建议,以下代码片段可以使用 boto3 清空和删除ModelPackageGroup
import boto3
import time
sagemaker_client = boto3.client('sagemaker')
model_package = 'risk-fraud-model'
empty_and_delete_model_package(sagemaker_client, model_package)
def empty_and_delete_model_package(sagemaker_client, mpg_name):
mpg = sagemaker_client.list_model_packages(
ModelPackageGroupName=mpg_name,
)
# Delete model packages if Group not empty
model_packages = mpg.get('ModelPackageSummaryList')
if model_packages:
for mp in model_packages:
sagemaker_client.delete_model_package(
ModelPackageName=mp['ModelPackageArn']
)
time.sleep(1)
# Delete model package group
sagemaker_client.delete_model_package_group(
ModelPackageGroupName=mpg_name
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.