我是Azure ML Studio的新手,并尝试弄清楚如何使用Azure SQL Server作为训练输入参数。 到目前为止,我可以将本地数据同步到Azure SQL数据库并训练数据并在Azure ML Studio上获取输出。 我也部署了预测网络服务。 我需要触发培训服务以从Azure SQL服务器读取数据,但所有示例都将Azure blob存储显示为培训服务输入。
答案 0 :(得分:0)
关于培训,您将需要使用导入数据模块。在那里,您可以指定如何连接到Azure SQL数据库。
本文可能会为您提供一个好的pointer,它展示了如何使用Azure数据工厂来同步实验的再培训。
答案 1 :(得分:0)
我发现在文档中很难找到,但发现这个链接我能够成功运行批处理执行而不上传blob。 https://docs.microsoft.com/en-us/azure/machine-learning/studio/web-services-that-use-import-export-modules
关键部分是:
将C#示例代码复制并粘贴到Program.cs文件中,和 删除对blob存储的所有引用
找到请求声明并更新Web Service的值
传递给导入数据和导出数据的参数
模块。在这种情况下,您使用原始查询,但定义新的
表名。
为导入查询和目标表配置Web服务参数:
在“导入数据”模块的属性窗格中,单击“数据库查询”字段右上角的图标,然后选择“设置为Web服务参数”。 在“导出数据”模块的属性窗格中,单击“数据表名称”字段右上角的图标,然后选择“设置为Web服务参数”。 在“导出数据”模块属性窗格的底部,在“Web服务参数”部分中,单击“数据库查询”并将其重命名为“查询”。 单击“数据表名称”并将其重命名为“表”。
var request = new BatchExecutionRequest()
{
GlobalParameters = new Dictionary<string, string>() {
{ "Query", @"select [age], [workclass], [fnlwgt], [education], [education-num], [marital-status], [occupation], [relationship], [race], [sex], [capital-gain], [capital-loss], [hours-per-week], [native-country], [income] from dbo.censusdata" },
{ "Table", "dbo.ScoredTable2" },
}
};
将数据库作为加载数据模块源后,您无需在培训模块上输入Web服务。您还可以将数据库查询设置为Web参数。一旦运行批处理执行作业以重新训练模型,就可以将它们存储在Azure blob存储中,并让您的预测模型在运行时使用“加载训练模型”模块而不是经过训练的模型模块从那里加载它们。请参阅此链接以了解该程序:
简而言之:
使用SQL数据库作为导入数据模块的源
运行批处理执行过程,以您想要的任何间隔重新训练模型
将重新训练的模型(ilearner文件)保存到blob存储区,或者保存在可访问的http地址
在预测实验中使用负载训练模型模块,而不是训练模型。
将您的blob或url的路径放入已加载训练的模型模块的参数中。
使用动态加载的模型运行,发布和测试预测性实验
注意,如果您的实验中有多个模型,则可以使用此方法。