- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用OpenFaaS服务Tensorfow模型。基本上,我想以tensorflow serving
公开我的模型的方式调用“serve”函数。
OpenFaaS在Kubernetes上正常运行,我可以通过curl
或从UI
调用函数。
我以the incubator-flask为例,但我一直都在接收502 Bad Gateway
。
OpenFaaS项目如下所示
serve/
- Dockerfile
stack.yaml
Dockerfile
是下面的
FROM tensorflow/serving
RUN mkdir -p /home/app
RUN apt-get update \
&& apt-get install curl -yy
RUN echo "Pulling watchdog binary from Github." \
&& curl -sSLf https://github.com/openfaas-incubator/of-watchdog/releases/download/0.4.6/of-watchdog > /usr/bin/fwatchdog \
&& chmod +x /usr/bin/fwatchdog
WORKDIR /root/
# remove unecessery logs from S3
ENV TF_CPP_MIN_LOG_LEVEL=3
ENV AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
ENV AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
ENV AWS_REGION=${AWS_REGION}
ENV S3_ENDPOINT=${S3_ENDPOINT}
ENV fprocess="tensorflow_model_server --rest_api_port=8501 \
--model_name=${MODEL_NAME} \
--model_base_path=${MODEL_BASE_PATH}"
# Set to true to see request in function logs
ENV write_debug="true"
ENV cgi_headers="true"
ENV mode="http"
ENV upstream_url="http://127.0.0.1:8501"
# gRPC tensorflow serving
# EXPOSE 8500
# REST tensorflow serving
# EXPOSE 8501
RUN touch /tmp/.lock
HEALTHCHECK --interval=5s CMD [ -e /tmp/.lock ] || exit 1
CMD [ "fwatchdog" ]
stack.yaml
文件如下所示
provider:
name: faas
gateway: https://gateway-url:8080
functions:
serve:
lang: dockerfile
handler: ./serve
image: repo/serve-model:latest
imagePullPolicy: always
faas-cli build -f stack.yaml
构建镜像,然后使用
faas-cli push -f stack.yaml
将其推送到我的docker注册表中。
faas-cli deploy -f stack.yaml -e AWS_ACCESS_KEY_ID=...
时,我得到
Accepted 202
,它在我的函数中正确显示。现在,我想在
tensorflow serving
中指定的模型上调用
ENV
。
curl
curl -d '{"inputs": ["1.0", "2.0", "5.0"]}' -X POST https://gateway-url:8080/function/deploy-model/v1/models/mnist:predict
502 Bad Gateway
。
tensorflow serving
的情况下运行
of-watchdog
(基本上没有openfaas东西),则该模型可以正确使用。
最佳答案
详细说明@viveksyngh提到的链接。
tensorflow-serving-openfaas:
打包TensorFlow与OpenFaaS一起使用的示例,可通过OpenFaaS部署和管理,并具有Kubernetes的自动缩放,从零缩放和合理配置。
该示例改编自:https://www.tensorflow.org/serving
先决条件:
OpenFaaS
OpenFaaS CLI
docker
说明:
克隆仓库
$ mkdir -p ~/dev/
$ cd ~/dev/
$ git clone https://github.com/alexellis/tensorflow-serving-openfaas
$ cd ~/dev/tensorflow-serving-openfaas
$ git clone https://github.com/tensorflow/serving
$ cp -r serving/tensorflow_serving/servables/tensorflow/testdata/saved_model_half_plus_two_cpu ./ts-serve/saved_model_half_plus_two_cpu
$ faas-cli build
$ docker run -p 8081:8080 -ti alexellis2/ts-serve:latest
$ curl -d '{"instances": [1.0, 2.0, 5.0]}' \
-X POST http://127.0.0.1:8081/v1/models/half_plus_two:predict
{
"predictions": [2.5, 3.0, 4.5
]
}
From here you can run faas-cli up and then invoke your function from the OpenFaaS UI, CLI or REST API.
$ export OPENFAAS_URL=http://127.0.0.1:8080
$ curl -d '{"instances": [1.0, 2.0, 5.0]}' $OPENFAAS_URL/function/ts-serve/v1/models/half_plus_two:predict
{
"predictions": [2.5, 3.0, 4.5
]
}
关于docker - 使用Tensorflow服务的OpenFaaS服务模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54750562/
我已经使用以下命令通过 helm 部署了 openfaas helm upgrade openfaas --install openfaas/opehelmnfaas --namespace defa
部署在 openfaas 中的函数如何向调用者返回不同的 HTTP 状态码?像 4xx 代码。 根据文档,看门狗将处理 stdout或 stderr对于 http 状态 200 或 5xx。 有没有办
我有一个用 FastAPI 构建的大型应用程序 (有许多路由器),在 AWS Lambda 中运行。我想将它迁移到 Kubernetes 内的容器中。根据我的研究, OpenFaaS 是一个很好的解决
以下是我编写的部分代码: S3Object obj1 = null; obj1 = s3client.getObject("bucketname", "file.yml"); S3ObjectInpu
我正在尝试将本地编写的 OpenFaaS 函数部署到 Minishift。我的 YAML 文件是: provider: name: faas gateway: http://gateway-o
我正在尝试使用 OpenFaas project 部署一个函数以及在 2 个 Raspberry Pi 3B+ 上运行的 kubernetes 集群。不幸的是,应该处理该函数的 pod 将进入 Ima
我是一名优秀的程序员,十分优秀!