首页 > 编程学习 > tf serving 从S3 minio 加载模型

tf serving 从S3 minio 加载模型

发布时间:2022/11/7 23:39:34

下载tfserving的最新镜像后按照网上的文章配置后报错,翻了issue发现是最新版本已经不支持s3了,所以回退到2.2.0版本,配置成支持多个模型,具体步骤如下

docker pull tensorflow/serving:2.2.0

#下载git工程

git clone https://github.com/tensorflow/serving

把工程里的其中两个模型上传到S3用来测试,上传这两个模型

serving/tensorflow_serving/servables/tensorflow/testdata/saved_model_half_plus_two_cpu

serving/tensorflow_serving/servables/tensorflow/testdata/saved_model_half_plus_two_2_versions

对应在minio中的bucket地址为models/multiModel/model1,models/multiModel/model2

#增加模型配置文件/root/tfserving_docker/serving/tensorflow_serving/servables/tensorflow/testdata/models.config
model_config_list:{
    config:{
      name:"model1",
      base_path:"s3://models/multiModel/model1",
      model_platform:"tensorflow"
    },
    config:{
      name:"model2",
      base_path:"s3://models/multiModel/model2",
      model_platform:"tensorflow"
    }
}

#启动docker

 docker run -p 8501:8501 -e AWS_ACCESS_KEY_ID={id} -e AWS_SECRET_ACCESS_KEY={access_key} -e S3_ENDPOINT=http://{ip}:{port} -e AWS_REGION=us-east-1 --mount type=bind,source=/root/tfserving_docker/serving/tensorflow_serving/servables/tensorflow/testdata/,target=/root/tfserving_docker/serving/tensorflow_serving/servables/tensorflow/testdata/ \
 -t tensorflow/serving:2.2.0 --model_config_file=/root/tfserving_docker/serving/tensorflow_serving/servables/tensorflow/testdata/models.config

测试一下

curl -d '{"instances": [1.0, 2.0, 5.0]}'     -X POST http://localhost:8501/v1/models/model1:predict

会返回

{
    "predictions": [2.5, 3.0, 4.5
    ]
}

完成啦

另外如果服务器不能直接pull镜像的话可以从外面的服务器先拉镜像到本地,再上传到对应服务器,步骤如下:

#先从可以连外网的服务器上拉取镜像

docker pull tensorflow/serving:2.2.0
docker save 25820e475139 > tfserving_docker_old.tar
#下载到本地,上传到目标服务器
cd /root/tfserving_docker
docker load < tfserving_docker_old.tar
docker tag 25820e475139 tensorflow/serving:2.2.0

Copyright © 2010-2022 dgrt.cn 版权所有 |关于我们| 联系方式