Python 从cloud ml中删除模型及其所有版本
显然,要从Python 从cloud ml中删除模型及其所有版本,python,google-cloud-platform,google-cloud-ml,Python,Google Cloud Platform,Google Cloud Ml,显然,要从云ml中删除模型并不容易,不能使用UI或pythonAPI。有人知道从云ml中删除模型及其所有版本的快速方法吗 我编写了一个python函数,从cloud ml及其所有版本中删除一个模型。它很凌乱,但很有效 from googleapiclient import discovery from googleapiclient import errors import time def remove_model_cloud_ml (model_name:str, gc_project_i
云ml
中删除模型并不容易,不能使用UI
或pythonAPI
。有人知道从云ml
中删除模型及其所有版本的快速方法吗 我编写了一个python函数,从cloud ml及其所有版本中删除一个模型。它很凌乱,但很有效
from googleapiclient import discovery
from googleapiclient import errors
import time
def remove_model_cloud_ml (model_name:str, gc_project_id:str):
project_id = 'projects/{}'.format(gc_project_id)
model_id = '{}/models/{}'.format(project_id, model_name)
ml = discovery.build('ml','v1')
request = ml.projects().models().versions().list(parent=model_id)
response = request.execute()
# check if model has versions
if 'versions' in response.keys():
versions = response['versions']
while len(versions) >= 1:
for version in response['versions']:
request = ml.projects().models().versions().delete(name = version['name'])
try:
request.execute()
except errors.HttpError as err:
reason = err._get_reason()
if 'Cannot delete the default version' in reason:
next
request = ml.projects().models().versions().list(parent=model_id)
response = request.execute()
time.sleep(1)
try:
versions = response['versions']
except:
break
# remove the model
request = ml.projects().models().delete(name=model_id)
# make the call to remove
while True:
try:
response = request.execute()
# Any additional code on success goes here (logging, etc.)
except errors.HttpError as err:
# Something went wrong, print out some information.
print('There was an error deleting the model.' +
' Check the details:')
reason = err._get_reason()
print(reason)
# Wait for 1000 milliseconds.
if 'A model with versions cannot be deleted' in reason:
# this probably means that the last delete version call
# has not yet completed, so wait and retry
time.sleep(1)
continue
break
我编写了一个python函数来从cloudml
及其所有版本中删除一个模型。它很凌乱,但很有效
from googleapiclient import discovery
from googleapiclient import errors
import time
def remove_model_cloud_ml (model_name:str, gc_project_id:str):
project_id = 'projects/{}'.format(gc_project_id)
model_id = '{}/models/{}'.format(project_id, model_name)
ml = discovery.build('ml','v1')
request = ml.projects().models().versions().list(parent=model_id)
response = request.execute()
# check if model has versions
if 'versions' in response.keys():
versions = response['versions']
while len(versions) >= 1:
for version in response['versions']:
request = ml.projects().models().versions().delete(name = version['name'])
try:
request.execute()
except errors.HttpError as err:
reason = err._get_reason()
if 'Cannot delete the default version' in reason:
next
request = ml.projects().models().versions().list(parent=model_id)
response = request.execute()
time.sleep(1)
try:
versions = response['versions']
except:
break
# remove the model
request = ml.projects().models().delete(name=model_id)
# make the call to remove
while True:
try:
response = request.execute()
# Any additional code on success goes here (logging, etc.)
except errors.HttpError as err:
# Something went wrong, print out some information.
print('There was an error deleting the model.' +
' Check the details:')
reason = err._get_reason()
print(reason)
# Wait for 1000 milliseconds.
if 'A model with versions cannot be deleted' in reason:
# this probably means that the last delete version call
# has not yet completed, so wait and retry
time.sleep(1)
continue
break
要删除模型,需要先删除版本,然后删除模型。为此,您需要遵循以下步骤:
从模型中删除所有非默认版本,因此最终只得到一个版本
删除最后一个版本(默认版本)
删除模型
您可以通过使用UI、命令行或API来实现这一点。所有需要的信息和命令都在我提供的链接上 要删除模型,需要先删除版本,然后再删除模型。为此,您需要遵循以下步骤:
从模型中删除所有非默认版本,因此最终只得到一个版本
删除最后一个版本(默认版本)
删除模型
您可以通过使用UI、命令行或API来实现这一点。所有需要的信息和命令都在我提供的链接上 以上建议的方法是删除模型的正确方法,即先删除版本(非默认,然后是默认),然后删除模型本身。我们意识到这可能会很麻烦,并且正在努力使这个界面对我们的用户更容易。一种方法是让一些东西基本上递归地删除版本和模型。还有其他更合适的方法吗?以上建议的方法是删除模型的正确方法,即先删除版本(非默认,然后是默认),然后删除模型本身。我们意识到这可能会很麻烦,并且正在努力使这个界面对我们的用户更容易。一种方法是让一些东西基本上递归地删除版本和模型。还有其他更合适的方法吗?在cloud shell中可以执行一个命令:
gcloud ai-platform versions list --model=NAMEOFYOURMODEL|xargs -n 1 gcloud ai-platform versions delete --model=NAMEOFYOURMODEL--quiet
您可以在cloud shell中执行一个命令:
gcloud ai-platform versions list --model=NAMEOFYOURMODEL|xargs -n 1 gcloud ai-platform versions delete --model=NAMEOFYOURMODEL--quiet