我一直在想,是否可以对score.py中的传入数据应用“数据准备”(.dprep)文件,类似于如何应用管道对象。这对于模型部署非常有用。为了找出答案,我在MSDN论坛上提出了这个问题,并收到response确认这是可能的,但很少说明如何实际执行。答复是:
在您的score.py文件中,您可以从Python调用dprep包 SDK会将相同的转换应用于传入的评分数据。 确保将.dprep文件捆绑在正在构建的映像中。
所以我的问题是:
我应使用什么函数来调用此dprep软件包?
run_on_data(user_config, package_path, dataflow_idx=0, secrets=None, spark=None)
吗?从CLI创建Web服务时,如何将其捆绑到映像中?
-f
?我已经浏览了整个documentation和Workbench Repo,但似乎找不到任何示例。
任何建议将不胜感激!
谢谢!
编辑:
场景:
我从实时数据库中导入数据,假设此数据集有10列。
然后我使用工作台对这个(.dsource)数据集进行特征工程师设计,生成一个可能有13列的.dprep文件。
然后将此.dprep数据集作为pandas DataFrame导入,并用于训练和测试我的模型。
现在我有一个可供部署的模型。
该模型通过模型管理部署到容器服务,并将从实时数据库中馈送数据,该数据库将再次具有原始格式(10列)。
显然,此模型已经过转换数据(13列)的训练,将无法对10列数据集进行预测。
我可以在'score.py'文件中使用什么功能来应用在工作台中创建的相同转换?
答案 0 :(得分:0)
我相信我可能已经找到了您需要的东西。
您将从azureml.dataprep
包中导入this documentation。
那里没有任何示例,但是在GitHub上搜索时,我发现this file具有以下运行数据准备的功能。
from azureml.dataprep import package
df = package.run('Data analysis.dprep', dataflow_idx=0)
希望有帮助!
答案 1 :(得分:0)
在我看来,这可以通过使用run_on_data(user_config, package_path, dataflow_idx=0, secrets=None, spark=None)
模块中的azureml.dataprep.package
方法来实现。
run_on_data(user_config, package_path, dataflow_idx=0, secrets=None, spark=None)
基于内存数据源运行指定的数据流,并将结果作为数据帧返回。user_config
参数是一个字典,它将数据源(.dsource文件)的绝对路径映射到表示为列表列表的内存中数据源。