如何访问azureml上Python脚本中从web服务发送的全局参数(“GlobalParameters”)?在
我试过了:
if 'GlobalParameters' in globals():
myparam = GlobalParameters['myparam']
但是没有成功。在
在我的例子中,我通过web服务发送一个声音文件(作为示例列表)。我还想发送一个采样率和每个样本的位数。我已经成功地配置了web服务(我想)以获取这些参数,因此GlobalParameters现在看起来像:
^{pr2}$但是,我不能从Python脚本访问这些变量,既不能作为GlobalParameters["sampleRate"]
也不能作为sampleRate
访问。有可能吗?它们存放在哪里?在
Python脚本中不能使用GlobalParameters参数。它用于覆盖其他模块中的某些参数。在
例如,如果您使用“拆分数据”模块,您将找到一个选项,可以将参数转换为web服务参数:
单击该按钮后,将出现一个名为“Web服务参数”的新部分。在这里,您可以将默认参数名称更改为您选择的名称之一。在
如果将项目部署为web服务,则可以通过将其放在GlobalParameters参数中来重写该参数:
我希望这能把事情弄清楚一点。在
根据我们对您问题的理解,这里可能有一个误解,即azureml参数不是“全局参数”,事实上,它们只是绑定到特定模块的参数替换。所以在effect中,没有全局参数可以在你提到的整个实验中访问。在这种情况下,我们认为下面的实验实现了您的要求:
请将“输入数据”模块添加到实验中,并以csv格式添加数据。然后对于数据,单击该参数以创建web服务参数。添加将从客户端应用程序传递的数据中替换的CSV数据。即。
请添加一个“executepython”模块并将“enterdata”输出连接到“executepython”input1。添加python代码以获取dataframe1并将其添加到python列表中。你可以在python代码的任何地方使用它。
Python代码片段
def azureml_main(数据帧1=无,数据帧2=无):
发布实验后,您可以在下面的“数据”:“部分中添加新值,并使用实验中“Enter Data”值替换的新值。在
^{pr2}$请随时告诉我们这是否合理。在
尽管在Python脚本中不可能使用GlobalParameters(请参见my previous answer),但是您可以修改/滥用Python脚本的第二个输入来传入其他参数。在我的示例中,我将它们称为元数据参数。在
首先,我补充道:
按如下方式连接模块:
如您所见,我还添加了一个真实的数据集(餐馆评级)和一个虚拟元数据csv(手动输入数据)模块。在
在本手册数据中,您必须预定义元数据参数,就好像它们是一个带有标题且只有一行来保存数据的csv:
在该示例中,sampleRate和bitsPerSample都设置为0。在
然后,我的Python脚本将这个伪csv作为元数据,对它进行一些虚拟计算,并将其作为列名返回:
然后我将其作为一个web服务发布,并使用节点.js像这样:
^{pr2}$产出如预期:
祝你好运!在
相关问题 更多 >
编程相关推荐