我想将经过训练的基本 R 模型作为 Web 服务部署到 AzureML。类似于这里所做的:
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)的程序以及调用
utils
R 中的库,它允许 R 直接与 zip 文件交互。但我无法摆脱错误。我还发现了抛出错误的 R 包代码,它在本页的第 154 行:
https://github.com/RevolutionAnalytics/AzureML/blob/master/R/internal.R
但这并没有帮助我弄清楚该怎么做。
在此先感谢您的帮助!
最佳答案
Azure 机器学习 API 要求压缩有效负载,这就是该包坚持安装 zip 实用程序的原因。 (这是一个不幸的情况,希望我们将来能找到一种方法来在包中包含一个 zip。)
您不太可能在 Linux 上遇到这种情况,因为大多数(所有?)Linux 发行版都包含一个 zip 实用程序。
因此,在 Windows 上,您必须执行以下过程一次:
完成后,试金石是测试 R 是否可以看到您的 zip。为此,请尝试:
Sys.which("zip")
你应该得到类似这样的结果:
zip
"C:\\Rtools\\R-3.1\\bin\\zip.exe"
换句话说,R 应该识别安装路径。
以前人们告诉我这不起作用时,它是 总是 因为他们认为他们的路径上有 zipper ,但事实证明他们没有。
最后一条评论:安装 7zip 可能不起作用。原因是 7zip 包含一个名为 7zip 的实用程序,但 R 只会寻找一个名为 zip 的实用程序。
关于r - 从 R 发布 AzureML Web 服务需要外部 zip 实用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35178688/