0

我有一个正在运行的torchserve服务。根据文档,我可以使用ManagementAPI在端口 8081 注册一个新模型。运行curl -X OPTIONS http://localhost:8081时,输出还说明发布请求的时间/models

    ...
    "post": {
        "description": "Register a new model in TorchServe.",
        "operationId": "registerModel",
        "parameters": [
          {
            "in": "query",
            "name": "url",
            "description": "Model archive download url, support local file or HTTP(s) protocol. For S3, consider use pre-signed url.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
     ...

现在,我确实有一个本地 model.mar 文件,并且想将它与文件协议一起使用。我试过了:

curl -X POST "http://localhost:8081/models?url=file:///path/to/model.mar"

但得到:

{
  "code": 400,
  "type": "DownloadArchiveException",
  "message": "Failed to download archive from: file:///path/to/model.mar"
}

有什么我想念的吗?如何正确注册本地model.mar到正在运行的torchserve服务?

4

1 回答 1

0

我刚刚想通了。我所说的一切都是完全正确的,在正常情况下,所有这些都会奏效。

出现错误是因为我在 docker 容器中运行torchserve实例,并且 curl 命令被发送到该容器,然后在他的本地文件中查找model.mar. 我认为无论出于何种原因,我都可以从运行 docker 容器的机器传递文件路径。
相反,我必须先将文件复制到 docker 容器中(或挂载目录),然后使用model.mardocker 容器内部的文件路径执行注册命令。

于 2022-01-16T14:10:47.197 回答