我最近一直在努力将机器学习模型部署为Web服务。我使用Azure Machine Learning Studio创建自己的工作区ID和授权令牌。然后,我在我的机器本地(使用python 2.7.13)从 sklearn.linear_model 训练了LogisticRegressionCV模型,并使用下面的代码片段,我想将我的模型发布为Web服务:
from azureml import services
@services.publish('workspaceID','authorization_token')
@services.types(var_1= float, var_2= float)
@services.returns(int)
def predicting(var_1, var_2):
input = np.array([var_1, var_2].reshape(1,-1)
return model.predict_proba(input)[0][1]
其中 input 变量是一个包含要评分数据的列表, model 变量包含经过训练的分类器。然后在定义上述函数后,我想对样本输入向量进行预测:
predicting.service(1.21, 1.34)
但是发生以下错误:
RuntimeError: Error 0085: The following error occurred during script
evaluation, please view the output log for more information:
日志中最重要的信息是:
AttributeError: 'module' object has no attribute 'LogisticRegressionCV'
错误对我来说很奇怪,因为当我使用普通的 sklearn.linear_model.LogisticRegression 时,一切都很好。我能够做出预测,将POST请求发送到创建的端点,所以我猜 sklearn 正常工作。 更改为 LogisticRegressionCV 后,它不会。
因此我想在我的工作区更新sklearn。
你有什么想法怎么做吗?或者甚至更一般的问题:如何在azure机器学习工作室上安装任何python模块,以便使用我在本地开发的任何模型的预测函数?
由于
答案 0 :(得分:3)
对于像我那样希望在AzureML笔记本中安装模块的任何人,都遇到了这个问题;看来当前的环境位于计算机上的Conda上,所以它现在像执行一样简单
!conda env list
# conda environments:
#
base * /anaconda
azureml_py36 /anaconda/envs/azureml_py36
!conda -n azureml_py36 -y <packages>
在笔记本环境中进行操作,或者在终端环境中在没有!
的情况下进行相同的操作
答案 1 :(得分:2)
要在Azure ML Studio上安装python模块,有一个Execute Python Script
部分介绍了它。{/ p>
一般步骤如下。
virtualenv
创建一个Python项目并激活它。pip
安装所需的所有软件包,然后Lib\site-packages
下的所有文件和directorys打包为zip文件。Technical Notes
导入Execute Python Script
。有关更多详细信息,您可以参考其他类似的SO线程document,它甚至介绍了如何更新Azure安装的Python包的版本。
希望它有所帮助。
答案 2 :(得分:1)
我遇到了同样的问题:错误0085
我可以使用其库中提供的Azure ML代码示例来解决此问题: 从Python笔记本部署AzureML Web服务
找到我不会在这里复制整个代码,但我完全按原样使用它并且它与Boston数据集一起使用。然后我将它与我的数据集一起使用,我不再有错误0085.我还没有找到错误,但很可能是由于一些行为不端的字符或缩进。希望这会有所帮助。