在model_config_file中分配版本标签失败

问题描述 投票:4回答:1

我有一个模型的版本1和2,我正在尝试按照https://www.tensorflow.org/serving/serving_config#assigning_string_labels_to_model_versions_to_simplify_canary_and_rollback上的说明为它们分配标签

我已经分别在/path/to/model/1/path/to/model/2中导出了两个版本,并且我使用以下命令启动服务器:

tensorflow_model_server --rest_api_port=8501 --model_config_file=models.config

以下models.config文件有效,并且仅生成服务版本1(如果省略specific消息,则2版本按预期提供,因为它对应于最高编号):

model_config_list {
    config {
        name: 'm1'
        base_path: '/path/to/model/'
        model_platform: 'tensorflow'
        model_version_policy {
        specific {
            versions: 1
        }
    }
}

我已经验证我可以使用服务器向模型发送请求并按预期执行推断。但是,如果我尝试使用此配置文件添加version_labels

model_config_list {
    config {
        name: 'm1'
        base_path: '/path/to/model/'
        model_platform: 'tensorflow'
        model_version_policy {
        specific {
            versions: 1
        }
        version_labels {
            key: 'current'
            value: 1
        }
    }
}

然后启动服务器失败,并出现以下错误:

Failed to start server. Error: Failed precondition: Request to assign label to version 1 of model m1, which is not currently available for inference

我还注意到将value字段更改为不存在的版本文件夹会产生类似的结果:

Failed to start server. Error: Failed precondition: Request to assign label to version 1234 of model m1, which is not currently available for inference

我正在使用:

TensorFlow ModelServer: 1.12.0-rc0+dev.sha.87470f0
TensorFlow Library: 1.12.0

我找不到关于version_labels主题的任何SO问题,可用的tensorflow文档似乎不完整和过时(例如它没有提到需要在配置文件中传递model_platform: 'tensorflow')。

任何帮助将非常感激!

tensorflow tensorflow-serving
1个回答
0
投票

请参考https://www.tensorflow.org/tfx/serving/serving_config

请注意,标签只能分配给已加载且可供服务的型号版本。一旦模型版本可用,可以动态重新加载模型配置,为其分配标签(可以使用HandleReloadConfigRequest RPC端点实现)。

也许您应该首先删除标签相关部分,然后启动tensorflow服务,最后将标签相关部分动态添加到配置文件中。

© www.soinside.com 2019 - 2024. All rights reserved.