提交 109fa2b4 编写于 作者: G guru4elephant

fix python client

上级 a4b2820d
...@@ -77,6 +77,7 @@ class PredictorClient { ...@@ -77,6 +77,7 @@ class PredictorClient {
std::map<std::string, int> _fetch_name_to_idx; std::map<std::string, int> _fetch_name_to_idx;
std::map<std::string, std::string> _fetch_name_to_var_name; std::map<std::string, std::string> _fetch_name_to_var_name;
std::vector<std::vector<int> > _shape; std::vector<std::vector<int> > _shape;
std::vector<int> _type;
}; };
} // namespace general_model } // namespace general_model
......
...@@ -45,6 +45,7 @@ void PredictorClient::init(const std::string & conf_file) { ...@@ -45,6 +45,7 @@ void PredictorClient::init(const std::string & conf_file) {
std::string fetch_var_name; std::string fetch_var_name;
int shape_num = 0; int shape_num = 0;
int dim = 0; int dim = 0;
int type_value = 0;
for (int i = 0; i < feed_var_num; ++i) { for (int i = 0; i < feed_var_num; ++i) {
fin >> name; fin >> name;
_feed_name_to_idx[name] = i; _feed_name_to_idx[name] = i;
...@@ -54,6 +55,8 @@ void PredictorClient::init(const std::string & conf_file) { ...@@ -54,6 +55,8 @@ void PredictorClient::init(const std::string & conf_file) {
fin >> dim; fin >> dim;
tmp_feed_shape.push_back(dim); tmp_feed_shape.push_back(dim);
} }
fin >> type_value;
_type.push_back(type_value);
_shape.push_back(tmp_feed_shape); _shape.push_back(tmp_feed_shape);
} }
......
...@@ -22041,4 +22041,58 @@ AddFile(L0 Files): cumulative 0, interval 0 ...@@ -22041,4 +22041,58 @@ AddFile(L0 Files): cumulative 0, interval 0
AddFile(Keys): cumulative 0, interval 0 AddFile(Keys): cumulative 0, interval 0
Cumulative compaction: 0.00 GB write, 0.00 MB/s write, 0.00 GB read, 0.00 MB/s read, 0.0 seconds Cumulative compaction: 0.00 GB write, 0.00 MB/s write, 0.00 GB read, 0.00 MB/s read, 0.0 seconds
Interval compaction: 0.00 GB write, 0.00 MB/s write, 0.00 GB read, 0.00 MB/s read, 0.0 seconds Interval compaction: 0.00 GB write, 0.00 MB/s write, 0.00 GB read, 0.00 MB/s read, 0.0 seconds
Stalls(count): 0 level0_slowdown, 0 level0_ Stalls(count): 0 level0_slowdown, 0 level0_slowdown_with_compaction, 0 level0_numfiles, 0 level0_numfiles_with_compaction, 0 stop for pending_compaction_bytes, 0 slowdown for pending_compaction_bytes, 0 memtable_compaction, 0 memtable_slowdown, interval 0 total count
\ No newline at end of file
** File Read Latency Histogram By Level [default] **
2020/01/14-10:37:24.283818 7fcc9bdf2700 [/db_impl.cc:779] ------- DUMPING STATS -------
2020/01/14-10:37:24.283872 7fcc9bdf2700 [/db_impl.cc:780]
** DB Stats **
Uptime(secs): 252000.1 total, 600.0 interval
Cumulative writes: 0 writes, 0 keys, 0 commit groups, 0.0 writes per commit group, ingest: 0.00 GB, 0.00 MB/s
Cumulative WAL: 0 writes, 0 syncs, 0.00 writes per sync, written: 0.00 GB, 0.00 MB/s
Cumulative stall: 00:00:0.000 H:M:S, 0.0 percent
Interval writes: 0 writes, 0 keys, 0 commit groups, 0.0 writes per commit group, ingest: 0.00 MB, 0.00 MB/s
Interval WAL: 0 writes, 0 syncs, 0.00 writes per sync, written: 0.00 MB, 0.00 MB/s
Interval stall: 00:00:0.000 H:M:S, 0.0 percent
** Compaction Stats [default] **
Level Files Size Score Read(GB) Rn(GB) Rnp1(GB) Write(GB) Wnew(GB) Moved(GB) W-Amp Rd(MB/s) Wr(MB/s) Comp(sec) CompMergeCPU(sec) Comp(cnt) Avg(sec) KeyIn KeyDrop
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sum 0/0 0.00 KB 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.00 0.00 0 0.000 0 0
Int 0/0 0.00 KB 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.00 0.00 0 0.000 0 0
** Compaction Stats [default] **
Priority Files Size Score Read(GB) Rn(GB) Rnp1(GB) Write(GB) Wnew(GB) Moved(GB) W-Amp Rd(MB/s) Wr(MB/s) Comp(sec) CompMergeCPU(sec) Comp(cnt) Avg(sec) KeyIn KeyDrop
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Uptime(secs): 252000.1 total, 600.0 interval
Flush(GB): cumulative 0.000, interval 0.000
AddFile(GB): cumulative 0.000, interval 0.000
AddFile(Total Files): cumulative 0, interval 0
AddFile(L0 Files): cumulative 0, interval 0
AddFile(Keys): cumulative 0, interval 0
Cumulative compaction: 0.00 GB write, 0.00 MB/s write, 0.00 GB read, 0.00 MB/s read, 0.0 seconds
Interval compaction: 0.00 GB write, 0.00 MB/s write, 0.00 GB read, 0.00 MB/s read, 0.0 seconds
Stalls(count): 0 level0_slowdown, 0 level0_slowdown_with_compaction, 0 level0_numfiles, 0 level0_numfiles_with_compaction, 0 stop for pending_compaction_bytes, 0 slowdown for pending_compaction_bytes, 0 memtable_compaction, 0 memtable_slowdown, interval 0 total count
** File Read Latency Histogram By Level [default] **
** Compaction Stats [default] **
Level Files Size Score Read(GB) Rn(GB) Rnp1(GB) Write(GB) Wnew(GB) Moved(GB) W-Amp Rd(MB/s) Wr(MB/s) Comp(sec) CompMergeCPU(sec) Comp(cnt) Avg(sec) KeyIn KeyDrop
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sum 0/0 0.00 KB 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.00 0.00 0 0.000 0 0
Int 0/0 0.00 KB 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.00 0.00 0 0.000 0 0
** Compaction Stats [default] **
Priority Files Size Score Read(GB) Rn(GB) Rnp1(GB) Write(GB) Wnew(GB) Moved(GB) W-Amp Rd(MB/s) Wr(MB/s) Comp(sec) CompMergeCPU(sec) Comp(cnt) Avg(sec) KeyIn KeyDrop
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Uptime(secs): 252000.1 total, 0.0 interval
Flush(GB): cumulative 0.000, interval 0.000
AddFile(GB): cumulative 0.000, interval 0.000
AddFile(Total Files): cumulative 0, interval 0
AddFile(L0 Files): cumulative 0, interval 0
AddFile(Keys): cumulative 0, interval 0
Cumulative compaction: 0.00 GB write, 0.00 MB/s write, 0.00 GB read, 0.00 MB/s read, 0.0 seconds
Interval compaction: 0.00 GB write, 0.00 MB/s write, 0.00 GB read, 0.00 MB/s read, 0.0 seconds
Stalls(count): 0 level0_slowdown, 0 level0_slowdown_with_compaction, 0 level0_numfiles, 0 level0_numfiles_with_compaction, 0 stop for pending_compaction_bytes, 0 slowdown for pending_compaction_bytes, 0 memtable_compaction, 0 memtable_slowdown, interval 0 total count
** File Read Latency Histogram By Level [default] **
2 3
words 1 -1 0
label 1 1 0
cost mean_0.tmp_0
acc accuracy_0.tmp_0
prediction fc_1.tmp_2
from paddle_serving import Client
import sys
client = Client()
client.load_client_config(sys.argv[1])
client.connect(["127.0.0.1:9292"])
for line in sys.stdin:
group = line.strip().split()
words = [int(x) for x in group[1:int(group[0])]]
label = [int(group[-1])]
feed = {"words": words, "label": label}
fetch = ["acc", "cost", "prediction"]
fetch_map = client.predict(feed=feed, fetch=fetch)
print("{} {}".format(fetch_map["prediction"][1], label[0]))
import sys
import os
total = 0
acc = 0
for line in sys.stdin:
line = line.strip()
group = line.split()
if (float(group[0]) - 0.5) * (float(group[1]) - 0.5) > 0:
acc += 1
total += 1
print(float(acc) / float(total))
...@@ -16,6 +16,9 @@ from .serving_client import PredictorClient ...@@ -16,6 +16,9 @@ from .serving_client import PredictorClient
from ..proto import sdk_configure_pb2 as sdk from ..proto import sdk_configure_pb2 as sdk
import time import time
int_type = 0
float_type = 1
class SDKConfig(object): class SDKConfig(object):
def __init__(self): def __init__(self):
self.sdk_desc = sdk.SDKConf() self.sdk_desc = sdk.SDKConf()
...@@ -65,7 +68,7 @@ class Client(object): ...@@ -65,7 +68,7 @@ class Client(object):
self.fetch_names_ = [] self.fetch_names_ = []
self.client_handle_ = None self.client_handle_ = None
self.feed_shapes_ = [] self.feed_shapes_ = []
self.feed_types_ = [] self.feed_types_ = {}
self.feed_names_to_idx_ = {} self.feed_names_to_idx_ = {}
def load_client_config(self, path): def load_client_config(self, path):
...@@ -75,6 +78,28 @@ class Client(object): ...@@ -75,6 +78,28 @@ class Client(object):
# map feed names to index # map feed names to index
self.client_handle_ = PredictorClient() self.client_handle_ = PredictorClient()
self.client_handle_.init(path) self.client_handle_.init(path)
self.feed_names_ = []
self.fetch_names_ = []
self.feed_shapes_ = []
self.feed_types_ = {}
self.feed_names_to_idx_ = {}
with open(path) as fin:
group = fin.readline().strip().split()
feed_num = int(group[0])
fetch_num = int(group[1])
for i in range(feed_num):
group = fin.readline().strip().split()
self.feed_names_.append(group[0])
tmp_shape = []
for s in group[2:-1]:
tmp_shape.append(int(s))
self.feed_shapes_.append(tmp_shape)
self.feed_types_[group[0]] = int(group[-1])
self.feed_names_to_idx_[group[0]] = i
for i in range(fetch_num):
group = fin.readline().strip().split()
self.fetch_names_.append(group[0])
return return
def connect(self, endpoints): def connect(self, endpoints):
...@@ -84,7 +109,6 @@ class Client(object): ...@@ -84,7 +109,6 @@ class Client(object):
predictor_sdk = SDKConfig() predictor_sdk = SDKConfig()
predictor_sdk.set_server_endpoints(endpoints) predictor_sdk.set_server_endpoints(endpoints)
sdk_desc = predictor_sdk.gen_desc() sdk_desc = predictor_sdk.gen_desc()
print(sdk_desc)
timestamp = time.asctime(time.localtime(time.time())) timestamp = time.asctime(time.localtime(time.time()))
predictor_path = "/tmp/" predictor_path = "/tmp/"
predictor_file = "%s_predictor.conf" % timestamp predictor_file = "%s_predictor.conf" % timestamp
...@@ -100,7 +124,7 @@ class Client(object): ...@@ -100,7 +124,7 @@ class Client(object):
def get_fetch_names(self): def get_fetch_names(self):
return self.fetch_names_ return self.fetch_names_
def predict(self, feed={}, fetch={}): def predict(self, feed={}, fetch=[]):
int_slot = [] int_slot = []
float_slot = [] float_slot = []
int_feed_names = [] int_feed_names = []
...@@ -111,10 +135,10 @@ class Client(object): ...@@ -111,10 +135,10 @@ class Client(object):
continue continue
if self.feed_types_[key] == int_type: if self.feed_types_[key] == int_type:
int_feed_names.append(key) int_feed_names.append(key)
int_slot.append(feed_map[key]) int_slot.append(feed[key])
elif self.feed_types_[key] == float_type: elif self.feed_types_[key] == float_type:
float_feed_names.append(key) float_feed_names.append(key)
float_slot.append(feed_map[key]) float_slot.append(feed[key])
for key in fetch: for key in fetch:
if key in self.fetch_names_: if key in self.fetch_names_:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册