
radaisystems/tfs-fastapi本Docker镜像整合了TensorFlow Serving与FastAPI框架,提供一站式机器学习模型部署解决方案。TensorFlow Serving负责高效加载和运行TensorFlow训练模型,提供底层推理能力;FastAPI则构建高性能RESTful API接口,实现模型服务的便捷调用。两者结合消除了模型部署中的服务配置复杂性,帮助开发者快速将训练好的TensorFlow模型转化为生产级API服务。
saved_model.pb及variables/目录)| 环境变量名 | 描述 | 默认值 |
|---|---|---|
MODEL_NAME | 模型名称(用于API路径标识) | "model" |
MODEL_PATH | 容器内模型存储路径 | "/models" |
API_PORT | FastAPI服务监听端口 | 8000 |
SERVING_PORT | TensorFlow Serving内部端口 | 8500 |
BATCH_SIZE | 推理请求批处理大小(可选) | 1 |
1. 基础Docker Run命令
bashdocker run -d \ --name tf-serving-api \ -p 8000:8000 \ -v /local/model/path:/models/model \ # 挂载本地SavedModel目录 -e MODEL_NAME="image_classifier" \ # 设置模型名称 -e API_PORT=8000 \ # 设置API服务端口 tensorflow-serving-fastapi:latest
注意:本地模型目录
/local/model/path需包含完整SavedModel结构,例如:/local/model/path/ ├── saved_model.pb └── variables/ ├── variables.data-00000-of-00001 └── variables.index
2. Docker Compose配置
创建docker-compose.yml:
yamlversion: '3.8' services: model-service: image: tensorflow-serving-fastapi:latest container_name: tf-model-service ports: - "8000:8000" volumes: - ./models/classifier:/models/model # 本地模型目录相对路径 environment: - MODEL_NAME=classifier - MODEL_PATH=/models/model - API_PORT=8000 restart: unless-stopped
启动服务:
bashdocker-compose up -d
服务启动后,可通过以下方式访问:
1. 访问API文档
http://localhost:8000/docshttp://localhost:8000/redoc2. 推理请求示例(curl)
假设模型接收形状为[1, 224, 224, 3]的图像数据:
bashcurl -X POST "http://localhost:8000/predict" \ -H "Content-Type: application/json" \ -d '{ "inputs": [[[[0.1, 0.2, 0.3], [0.4, 0.5, 0.6], ...]]] # 224x224x3图像数据 }'
响应示例:
json{ "predictions": [0.92, 0.05, 0.03], # 模型推理结果(示例) "model_name": "image_classifier", "timestamp": "2023-11-01T12:34:56Z" }
通过修改启动脚本支持多模型部署(需自定义配置):
/models/model1、/models/model2)MODEL_NAME为模型列表(如"model1,model2")/predict/model1、/predict/model2BATCH_SIZE参数,或通过docker run --cpus限制CPU资源。docker logs tf-serving-api查看服务运行日志,排查模型加载或请求错误。




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务