azuremlstudio环境中的Python自定义模型Error 0085,在本地环境中工作正常

2021-04-12 00:15:18 发布

您现在位置:Python中文网/ 问答频道 /正文

azuremlstudio环境在使用来自自定义python模型的pickle文件时抛出以下错误。python本地模型pickle文件可以很好地与本地环境一起工作,但在azuremlstudio环境中则不行

错误0085:脚本求值期间发生以下错误,有关详细信息,请查看输出日志: ----------从Python解释器开始错误消息---------- 执行函数时捕获到异常:回溯(最近的调用最后一次): 文件“C:\服务器\调用py.py“,第199行,成批处理 odfs=mod.Azurem_主管道(*国际设计公司) 文件“C:\temp\b1cb10c870d842b9afcf8bb8037155a1.py”,第49行,位于azureml_main中 返回数据,模型预测(数据) 文件“C:\pyhome\lib\site packages\sklearn\enclose\森林.py“,第540行,在predict_proba中 n_jobs,u,u=_分区_估计量(self.n_估计量,self.n_作业) 文件“C:\pyhome\lib\site packages\sklearn\enclose\基准.py“,第101行,in_分区_估计量 n_jobs=min(_get_n_jobs(n_jobs),n_估计器) 文件“C:\pyhome\lib\site packages\sklearn\utils_uinit_u.py”,第456行,在“获取”作业中 如果没有作业<;0: 类型错误:无序类型:NoneType()<;int() 进程返回非零退出代码1 ----------来自Python解释器的错误消息结束--------

有什么遗漏吗?在

Python Pickle文件可以很好地与本地环境配合使用。在

# The script MUST contain a function named azureml_main
# which is the entry point for this module.

# imports up here can be used to
import pandas as pd
import sys
import pickle
from sklearn.ensemble import RandomForestClassifier
from sklearn.preprocessing import LabelEncoder
import numpy as np
import pickle
import os

def azureml_main(DATA = None, dataframe2 = None):

# Execution logic goes here
# print('Input pandas.DataFrame #1:\r\n\r\n{0}'.format(DATA))

# If a zip file is connected to the third input port is connected,
# it is unzipped under ".\Script Bundle". This directory is added
# to sys.path. Therefore, if your zip file contains a Python file
# mymodule.py you can import it using:
# import mymodule

sys.path.append('.\\Script Bundle\\MyLocalModel.zip')
sys.path.insert(0,".\Script Bundle")
model = pickle.load(open(".\Script Bundle\MyLocalModel.pkl", 'rb'))

#result = pd.DataFrame(model.predict_proba(dataframe1), columns=['p0','p1'])

# Return value must be of a sequence of pandas.DataFrame
return DATA, model.predict_proba(DATA)

python定制模型需要在azuremlstudio中使用,以部署为web服务,并具有与本地模型相同的输出

4月17日更新1:

Python版本2.7.11在local和Azure ML Studio中是相同的,但是发现sklearn版本在local[0.18.x]和Azure ML Studio[0.15.x]中是不同的,其中train_test_分割不同如下代码:

^{pr2}$

1)现在,如何在Azure ML Studio中将sklearn包更新到最新版本? 或者另一种方法是降低我本地的学习能力,去尝试,将这个实验出来。在

2)另一个练习是使用MDF[MulticlassDecisionForest]算法在azuremlstudio中创建模型。 而局部使用的是RFC[RandomForestClassifier]算法,但两者的输出完全不同,不匹配吗?在

以下是使用RFC算法的sklearn 0.18.x版本地环境中的代码: ##在skx.0.0本地环境中随机学习分类器 从sklearn.Ensement公司导入RandomForestClassifier

## Random Forest Classifier
rfc = RandomForestClassifier(n_estimators = 550,max_depth = 6,max_features = 30,random_state = 0) 
rfc.fit(X_train,y_train)
print (rfc)

## Accuracy test
accuracy = rfc.score(X_test1,y_test1)
print ("Accuracy is {}".format(accuracy))

3)在sklearn 0.15.x的较低版本下,用azureml Studio执行python脚本复制了本地python代码 这导致了相同的本地输出,除了很少的测试数据集行。 现在,如何将Python脚本中的模型训练为未经训练的模型输入,以训练模型组件? 或者在数据集中写入pickle文件,并作为定制模型使用?在

非常感谢您的宝贵意见。在