2

我目前正在使用 Azure 机器学习服务进行机器学习项目。但是我发现我无法将新的 docker 映像更新到现有的 Web 服务的问题(我希望与运行我们服务的 url 相同)。

我已经阅读了文档,但它并没有真正告诉我如何更新(文档链接:https ://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-and-哪里)。文档说我们必须使用 update() 和 image = new-image。

from azureml.core.webservice import Webservice

service_name = 'aci-mnist-3

# Retrieve existing service
service = Webservice(name = service_name, workspace = ws)

# Update the image used by the service
service.update(image = new-image)

print(service.state)

new-image没有描述它的来源。

有谁知道如何解决这个问题?

谢谢

4

1 回答 1

2

我同意,这部分的文档可能会更清楚一些。这new-image是您应该传递给update()函数的图像对象。如果您刚刚创建了图像,您可能已经在变量中包含了对象,那么只需传递它。如果没有,那么您可以使用从您的工作区获取它

from azureml.core.image.image import Image
new_image = Image(ws, image_name)

wherews是您的工作区对象,并且image_name是带有您要获取的图像名称的字符串。然后你继续update()打电话

from azureml.core.webservice import Webservice

service_name = 'aci-mnist-3'

# Retrieve existing service
service = Webservice(name = service_name, workspace = ws)

# Update the image used by the service
service.update(image = new_image) # Note that dash isn't supported in variable names

print(service.state)

您可以在SDK 文档中找到更多信息

编辑:ImageWebservice上面的类都是抽象父类。

对于该Image对象,您应该真正使用这些类之一,具体取决于您的情况:

  • ContainerImage
  • UnknownImage

(请参阅文档中的图像包)。

对于Webservice对象,您应该使用以下类之一,具体取决于您的情况:

  • AciWebservice
  • AksWebservice
  • UnknownWebservice

(请参阅文档中的Webservice 包)。

于 2018-12-11T11:49:52.767 回答