我想将基本训练的R模型部署为AzureML的Web服务.与此处所做的类似:
http://www.r-bloggers.com/deploying-a-car-price-model-using-r-and-azureml/
从那篇文章开始,R AzureML包中的publishWebService函数已经改变,现在要求我将工作空间对象作为第一个参数,因此我的R代码如下所示:
library(MASS)
library(AzureML)
PredictionModel = lm( medv ~ lstat , data = Boston )
PricePredFunktion = function(percent)
{return(predict(PredictionModel, data.frame(lstat =percent)))}
myWsID = "<my Workspace ID>"
myAuth = "<my Authorization code"
ws = workspace(myWsID, myAuth, api_endpoint = "https://studio.azureml.net/", .validate = TRUE)
# publish the R function to AzureML
PricePredService = publishWebService(
ws,
"PricePredFunktion",
"PricePredOnline",
list("lstat" = "float"),
list("mdev" = "float"),
myWsID,
myAuth
)
但是每次执行代码时都会出现以下错误:
Error in publishWebService(ws, "PricePredFunktion", "PricePredOnline", :
Requires external zip utility. Please install zip, ensure it's on your path and try again.
我尝试在我的机器上安装处理zip文件的程序(如7zip)以及调用R中的utils库,它允许R直接与zip文件交互.但我无法摆脱错误.
我还发现了抛出错误的R包代码,它位于此页面的第154行:
https://github.com/RevolutionAnalytics/AzureML/blob/master/R/internal.R
但它并没有帮助我搞清楚要做什么.
在此先感谢您的帮助!
最佳答案 Azure机器学习API需要压缩有效负载,这就是该软件包坚持要安装zip实用程序的原因. (这是一个不幸的情况,希望我们能够在将来找到一种包含拉链的方法.)
你不可能在Linux上遇到这种情况,因为大多数(所有?)Linux发行版都包含一个zip实用程序.
因此,在Windows上,您必须执行以下过程一次:
>安装一个zip实用程序(RTools有一个,这个工作)
>确保拉链在您的路径上
>重新启动R – 这很重要,否则R将无法识别更改的路径
完成后,石蕊试验是否R可以看到你的拉链.为此,请尝试:
Sys.which("zip")
你应该得到一个类似于这样的结果:
zip
"C:\\Rtools\\R-3.1\\bin\\zip.exe"
换句话说,R应该识别安装路径.
在以前的场合,人们告诉我这不起作用,总是因为他们认为他们在路上有拉链,但事实证明他们没有.
最后一条评论:安装7zip可能无法正常工作.原因是7zip包含一个名为7zip的实用程序,但R只会查找名为zip的实用程序.