首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确配置才能在Seldon Core python客户端接收预测结果?

如何正确配置才能在Seldon Core python客户端接收预测结果?
EN

Stack Overflow用户
提问于 2019-05-20 14:11:57
回答 1查看 574关注 0票数 1

我正在Minikube上查看Seldon Core,并且已经成功地在集群上部署了一个模型。我使用以下代码进行了测试:

代码语言:javascript
复制
seldon-core-api-tester ../seldon-core/examples/models/keras_mnist/contract.json     `minikube ip` `kubectl get svc -l app=seldon-apiserver-container-app -o jsonpath='{.items[0].spec.ports[0].nodePort}'`     --oauth-key oauth-key --oauth-secret oauth-secret -p

得到了正确的预测结果,如下所示。

代码语言:javascript
复制
RECEIVED RESPONSE:
meta {
  puid: "gn83vb2ag419k547eqkhfduos2"
  requestPath {
    key: "mnist"
    value: "mnist:0.1"
  }
}
data {
  names: "t:0"
  names: "t:1"
  names: "t:2"
  names: "t:3"
  names: "t:4"
  names: "t:5"
  names: "t:6"
  names: "t:7"
  names: "t:8"
  names: "t:9"
  ndarray {
    values {
      list_value {
        values {
          number_value: 0.00026227490161545575
        }
        values {
          number_value: 0.0007252057548612356
        }
        values {
          number_value: 0.028986405581235886
        }
        values {
          number_value: 0.8030332922935486
        }
        values {
          number_value: 7.914198795333505e-05
        }
        values {
          number_value: 0.14541368186473846
        }
        values {
          number_value: 0.002676495350897312
        }
        values {
          number_value: 0.015001941472291946
        }
        values {
          number_value: 0.0034872409887611866
        }
        values {
          number_value: 0.00033424459979869425
        }
      }
    }
  }
}

但是,当我尝试使用python客户端时,

代码语言:javascript
复制
from seldon_core.seldon_client import SeldonClient
sc = SeldonClient(deployment_name="mnist",namespace="seldon", seldon_rest_endpoint= '127.0.0.1:30790')
r = sc.predict(transport="rest")

我得到了这个错误。

代码语言:javascript
复制
HTTPConnection object at 0xb2bb5a780>: Failed to establish a new connection: [Errno 61] Connection refused'))

有没有人能帮我找出问题所在?

代码语言:javascript
复制
$kubectl get svc
mnist-deployment-mnist   ClusterIP      10.99.10.81      <none>        8000/TCP,5001/TCP               2d22h
kubernetes                           ClusterIP      10.96.0.1        <none>        443/TCP                         4d22h
seldon-core-redis-master             ClusterIP      10.107.217.176   <none>        6379/TCP                        2d22h
seldon-core-seldon-apiserver         NodePort       10.106.34.6      <none>        8080:30790/TCP,5000:31866/TCP   2d22h
seldon-mnist-0-1-4249605       ClusterIP      10.101.205.227   <none>        9000/TCP                        2d22h
EN

回答 1

Stack Overflow用户

发布于 2019-08-01 16:32:51

运行seldon-core-api-tester脚本时,需要提供minikube ip作为参数(以及大使端口)。在初始化客户端而不是127.0.0.1时,您将需要端点的这个地址。所以首先在你的shell中运行

代码语言:javascript
复制
minikube ip

记下ip地址,然后找到大使端口

代码语言:javascript
复制
kubectl get svc ambassador -o jsonpath='{.spec.ports[0].nodePort}'

那么你的客户和电话看起来就像这样

代码语言:javascript
复制
from seldon_core.seldon_client import SeldonClient
import numpy as np

# this is the ip from `minikube ip` and port from `kubectl get svc ambassador -o jsonpath='{.spec.ports[0].nodePort}'`
minikube_ambassador_endpoint = "192.168.99.108:32667"

deployment_name = "mnist"
namespace = "default"

sc = SeldonClient(
    gateway="ambassador",
    gateway_endpoint=minikube_ambassador_endpoint,
    transport="rest",
    deployment_name=deployment_name,
    namespace=namespace
)

response = sc.predict(
    data=np.ones((5,)), 
    deployment_name=deployment_name, 
    payload_type="ndarray"
)
print(response)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56215192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档