r - 从 R 发布 AzureML Web 服务需要外部 zip 实用程序

标签 r web-services zip cortana-intelligence azure-machine-learning-studio

我想将经过训练的基本 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 上,您必须执行以下过程一次:

  • 安装一个 zip 实用程序(RTools 有一个并且可以使用)
  • 确保 zip 在您的路径上
  • 重启 R——这很重要,否则 R 将无法识别更改后的路径

  • 完成后,试金石是测试 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/

    相关文章:

    r - 如何在不丢失行的情况下连接数据框

    swift - 反向压缩一个集合

    用于同时处理多个请求的 SOAP 服务器的 Python 库?

    c# - ICerfiticatePolicy 和 ServicePoint

    javascript - JQuery JSON 调用 PHP WebService 总是运行 "Error"回调

    java - 使用 Java SE6 读取包含特殊字符的 ZipEntry

    android - 将 Zip 提取到 SD 卡非常慢。我如何优化性能?

    memory - R 的 GC 和内存限制问题

    r - 如何将 GAM 模型拟合到多对 (x,y) 变量

    即使 NA 是允许的,R 函数 prcomp 也会因 NA 的值而失败