我在python中有一个ML模型(在本地培训)。以前,该模型已经部署到Windows IIS服务器上,并且运行良好。
现在,我正在尝试将其部署为具有1核心和1 GB内存的Azure容器实例(ACI)上的服务。我从一和二微软文档中获得了参考资料。docs在所有步骤中都使用SDK,但是我正在使用来自Azure门户的GUI特性。
注册模型后,我创建了一个条目脚本和一个conda环境YAML文件(见下文),并将它们上传到“自定义部署资产”(在deployment区域)。
不幸的是,在命中部署之后,部署状态被困在过渡状态。即使在4个小时后,状态仍然保持不变,也没有部署日志,所以我无法找到我在这里做错了什么。
注意:下面只是条目脚本的摘录。
import pandas as pd
import pickle
import re, json
import numpy as np
import sklearn
def init():
global model
global classes
model_path = os.path.join(os.getenv('AZUREML_MODEL_DIR'), 'randomForest50.pkl')
model = pickle.load(open(model_path, "rb"))
classes = lambda x : ["F", "M"][x]
def run(data):
try:
namesList = json.loads(data)["data"]["names"]
pred = list(map(classes, model.predict(preprocessing(namesList))))
return str(pred[0])
except Exception as e:
error = str(e)
return errorname: gender_prediction
dependencies:
- python
- numpy
- scikit-learn
- pip:
- pandas
- pickle
- re
- json发布于 2021-02-05 02:26:04
问题在YAML文件中。 YAML中的依赖项/库应该按照conda环境。因此,我相应地改变了每件事,并且起了作用。
修改后的YAML文件:
name: gender_prediction
dependencies:
- python=3.7
- numpy
- scikit-learn
- pip:
- azureml-defaults
- pandas
- pickle4
- regex
- inference-schema[numpy-support] https://stackoverflow.com/questions/65795579
复制相似问题