Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Azure MachineLearning Web服务未使用已传递的.ilearner模型_C#_Azure_Web Services_Azure Webjobs_Azure Machine Learning Studio - Fatal编程技术网

C# Azure MachineLearning Web服务未使用已传递的.ilearner模型

C# Azure MachineLearning Web服务未使用已传递的.ilearner模型,c#,azure,web-services,azure-webjobs,azure-machine-learning-studio,C#,Azure,Web Services,Azure Webjobs,Azure Machine Learning Studio,我们目前正在进行Azure MachineLearning Studio实验 我们最近的迭代有一个webjob,它接受队列消息,获取一些数据来训练模型,并使用ML实验webservice将经过训练的模型放在blob位置 第二个webjob接受队列消息,提取用于预测实验的数据,获取经过训练的.ilearner模型的位置路径,然后使用该ML实验webservice 用于进行预测的数据作为输入参数传入,存储帐户名、密钥和.ilearner路径都作为全局参数传入——字典对象根据数据科学家提供的定义 一切

我们目前正在进行Azure MachineLearning Studio实验

我们最近的迭代有一个webjob,它接受队列消息,获取一些数据来训练模型,并使用ML实验webservice将经过训练的模型放在blob位置

第二个webjob接受队列消息,提取用于预测实验的数据,获取经过训练的.ilearner模型的位置路径,然后使用该ML实验webservice

用于进行预测的数据作为输入参数传入,存储帐户名、密钥和.ilearner路径都作为全局参数传入——字典对象根据数据科学家提供的定义

一切似乎都正常工作——除了在某些情况下,预测实验失败,错误消息表明使用了错误的.ilearner文件

当一个不存在的blob路径被传递到实验webservice时,错误消息反映没有这样的blob,因此很明显webservice至少在验证.ilearner的存在

数据科学家可以在本地运行它,但当他通过PowerShell在本地导出.ilearner文件时,必须更改其名称。确保每个经过培训的模型具有唯一的文件名并不能解决此问题


当我在Azure存储资源管理器中查看所有文件时,它们似乎都在根据上次修改的日期按预期进行更新。这几乎就像是在某个地方有一个.ilearner的缓存版本没有被正确覆盖。

在排除了所有传入错误文件的可能性后,我们的数据科学家对实验本身进行了更仔细的研究。他发现它默认为一个硬编码的ilearner路径,这是他在开发中使用的路径

在某个时候,他创建了webservice参数来覆盖这个值(因此我在webservice调用中定义了这些参数),但在重新设计实验的过程中,这些参数被删除了,所有人都注意到了,因为webservice显然会接受多余的参数

Web服务接受了我的全局参数,显然甚至验证了它们。但是由于他们没有连接到实验内部的任何东西,因此通过的.ilearner文件信息从未应用到任何东西上——硬编码的.ilearner无论在什么情况下都被应用

我们都非常惊讶,在向webservice传递未实际定义的参数时没有引发异常。如果发生这种情况,我们会更快地找到问题的根源

tl/dr:实验没有正确配置为接受.ilearner文件路径(或帐户名或帐户密钥)作为参数,Web服务很高兴地接受并忽略参数参数,而没有发出任何警报,因为它有硬编码的值来运行