4

我想将经过训练的基本 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

但这并没有帮助我弄清楚该怎么做。

提前感谢您的帮助!

4

4 回答 4

1

我之前看到了这个链接,但是使我的代码不起作用的额外说明是 1. Rtools 的地址和路径没有那么直接 2. 你需要重新启动 R

关于地址 - 始终查看它的安装位置。我还使用此代码设置路径并在最后始终添加 ZIP

##Rtools.bin="C:\\Users\\User_2\\R-Portable\\Rtools\\bin"
Rtools.bin="C:\\Rtools\\bin\\zip"
sys.path = Sys.getenv("PATH")
if (Sys.which("zip") == "" ) {
  system(paste("setx PATH \"", Rtools.bin, ";", sys.path, "\"", sep = ""))
}

Sys.which("zip")

you should get a return of

" C:\\RTools|\bin\zip" 
于 2016-04-04T14:09:05.797 回答
1

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 应该识别安装路径。

以前人们告诉我这不起作用时,总是因为他们认为他们在路上有一个拉链,但事实证明他们没有。


最后一条评论:安装 7zip 可能不起作用。原因是 7zip 包含一个名为 7zip 的实用程序,但 R 只会寻找一个名为 zip 的实用程序。

于 2016-04-04T05:58:57.997 回答
0

尝试以下 - 下载通常包含 zip 实用程序的 Rtools 文件。-复制“Rtools”的“bin”文件夹中的所有文件 -将它们粘贴到“~/RStudio/bin/x64”文件夹中

于 2018-06-08T19:42:38.200 回答
0

从这里查看 Andrie 的评论:https ://github.com/RevolutionAnalytics/AzureML/commit/9cf2c5c59f1f82b874dc7fdb1f9439b11ab60f40

意味着我们可以下载 RTools 并完成它。

  1. 从以下网址下载 RTools: https ://cran.r-project.org/bin/windows/Rtools/

  2. 在安装期间选中复选框以修改 PATH

起初它没有用。然后我尝试了 R32bit,这似乎有效。然后 R64 位再次开始工作。老实说,不确定我是否在中间做了一些事情来让它发挥作用。只需几分钟,值得一试。

于 2016-02-05T21:02:29.357 回答