I have created a Model Package Group in SageMaker to store different versions in the Model Registry.
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'}]
When I want to delete the Model Package Group
sagemaker_boto_client.delete_model_package_group(
ModelPackageGroupName='risk-model'
)
I got the following error
An error occurred (ValidationException) when calling the DeleteModelPackageGroup operation: Model Package Group cannot be deleted because it still contains Model Packages.
You would need to first delete all the Model Packages in the Model Package Group. Please see the delete_model_package()
boto3 API.
Based on @Marc K suggestion the following code snippet works to empty and delete a ModelPackageGroup
using boto3
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
)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.