【发布时间】:2019-11-27 05:46:58
【问题描述】:
我正在通过 TF Serving 为 TF 模型提供服务,并在 K8S 集群中进行了专门部署。我正在使用部署在与 TF Serving 相同的命名空间中的 MinIO 实例。
我使用以下环境变量配置它,以便让 TF Serving 访问 S3 并同步正确的文件
- name: MODEL_NAME
value: model-name
- name: S3_ENDPOINT
value: minio:9000
- name: S3_USE_HTTPS
value: '0'
- name: S3_VERIFY_SSL
value: '0'
- name: AWS_REGION
value: 'us-west-1'
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
key: AWS_ACCESS_KEY_ID
name: minio-secret
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
key: AWS_SECRET_ACCESS_KEY
name: minio-secret
- name: MODEL_BASE_PATH
value: s3://ROOT-BUCKET
- name: TF_CPP_MIN_LOG_LEVEL
value: '2'
一切顺利,我已经能够查询服务器并正确预测,但是当我加载新版本时,我总是收到以下错误:
'{ "error": "Failed to process element: 0 key: decoder_state_input_h:0 of \\\'instances\\\' list. Error: Invalid argument: JSON object: does not have named input: decoder_state_input_h:0" }'
杀死 POD(也就是重新启动 TF 服务)会导致新版本正确恢复。 此问题似乎是由于 TF 服务甚至在 S3 同步完成之前就开始加载可服务的同步问题造成的。
有什么线索吗? 谢谢!
【问题讨论】:
-
关于您的问题的任何新信息?
标签: tensorflow kubernetes tensorflow-serving