Python ML部署在Azure容器实例上失败

时间:2019-11-20 05:22:46

标签: python docker azure-container-instances azure-machine-learning-service

我和

有同样的问题

Why does my ML model deployment in Azure Container Instance still fail?

但是上述解决方案对我不起作用。此外,我还会遇到其他错误,例如belos

code": "AciDeploymentFailed",
"message": "Aci Deployment failed with exception: Your container application 
crashed. This may be caused by errors in your scoring file's init() 
function.\nPlease check the logs for your container instance: anomaly-detection-2. 
From the AML SDK, you can run print(service.get_logs()) if you have service object 
to fetch the logs. \nYou can also try to run image 
mlad046a4688.azurecr.io/anomaly-detection- 
2@sha256:fcbba67cf683626291c1bd084f31438fcd641ddaf80f9bdf8cea274d22d1fcb5 locally. 
Please refer to http://aka.ms/debugimage#service-launch-fails for more 
information.",
"details": [
{
  "code": "CrashLoopBackOff",
  "message": "Your container application crashed. This may be caused by errors in 
your scoring file's init() function.\nPlease check the logs for your container 
instance: anomaly-detection-2. From the AML SDK, you can run 
print(service.get_logs()) if you have service object to fetch the logs. \nYou can 
also try to run image mlad046a4688.azurecr.io/anomaly-detection- 
2@sha256:fcbba67cf683626291c1bd084f31438fcd641ddaf80f9bdf8cea274d22d1fcb5 locally. 
Please refer to http://aka.ms/debugimage#service-launch-fails for more 
information."
}
]
}

它一直指向得分文件,但不确定这里出了什么问题

import numpy as np
import os
import pickle
import joblib
#from sklearn.externals import joblib
from sklearn.linear_model import LogisticRegression
from azureml.core.authentication import AzureCliAuthentication
from azureml.core import Model,Workspace
import logging

logging.basicConfig(level=logging.DEBUG)

    def init():
    global model
    from sklearn.externals import joblib
    # retrieve the path to the model file using the model name
    model_path = Model.get_model_path(model_name='admlpkl')
    print(model_path)
    model = joblib.load(model_path)
    #ws = Workspace.from_config(auth=cli_auth)
    #logging.basicConfig(level=logging.DEBUG)
    #modeld = ws.models['admlpkl']
    #model=Model.deserialize(ws, modeld)

def run(raw_data):
    # data = np.array(json.loads(raw_data)['data'])
    # make prediction
    data = json.loads(raw_data)
    y_hat = model.predict(data)
    #r = json.dumps(y_hat.tolist())
    r = json.dumps(y_hat)
    return r

该模型与我在

中添加的其他文件有关
image_config = ContainerImage.image_configuration(execution_script="score.py", 
                                              runtime="python", 
                                              conda_file='conda_dependencies.yml',
                                              dependencies=['modeling.py']

日志太抽象了,确实对调试没有帮助。我能够创建映像,但预配服务失败

任何输入将不胜感激

1 个答案:

答案 0 :(得分:0)

您是否已使用模型对象上的register()函数在工作空间中注册了模型'admlpkl'?否则,将没有模型路径,并且可能导致失败。

请参阅本节中的模型注册:https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-and-where#registermodel

请按照以下说明注册该模型并将其部署到ACI。 enter image description here enter image description here