提交 5de30b68 编写于 作者: M MRXLT 提交者: GitHub

Merge pull request #403 from MRXLT/0.2.0-fix-client-v1

fix py3 client bus error
...@@ -28,71 +28,71 @@ python -m paddle_serving_server.serve --model ./serving_server_model/ --port 929 ...@@ -28,71 +28,71 @@ python -m paddle_serving_server.serve --model ./serving_server_model/ --port 929
### 客户端代码示例 ### 客户端代码示例
```go ``` go
// imdb_client.go // imdb_client.go
package main package main
import ( import (
       "io" "io"
       "fmt" "fmt"
       "strings" "strings"
       "bufio" "bufio"
       "strconv" "strconv"
       "os" "os"
       serving_client "github.com/PaddlePaddle/Serving/go/serving_client" serving_client "github.com/PaddlePaddle/Serving/go/serving_client"
) )
func main () { func main() {
     var config_file_path string var config_file_path string
     config_file_path = os.Args [1] config_file_path = os.Args[1]
     handle: = serving_client.LoadModelConfig (config_file_path) handle := serving_client.LoadModelConfig(config_file_path)
     handle = serving_client.Connect ("127.0.0.1", "9292", handle) handle = serving_client.Connect("127.0.0.1", "9292", handle)
     test_file_path: = os.Args [2] test_file_path := os.Args[2]
     fi, err: = os.Open (test_file_path) fi, err := os.Open(test_file_path)
     if err! = nil { if err != nil {
     fmt.Print (err) fmt.Print(err)
     } }
     defer fi.Close () defer fi.Close()
     br: = bufio.NewReader (fi) br := bufio.NewReader(fi)
     fetch: = [] string {"cost", "acc", "prediction"} fetch := []string{"cost", "acc", "prediction"}
     var result map [string] [] float32 var result map[string][]float32
     for { for {
     line, err: = br.ReadString ('\ n') line, err := br.ReadString('\n')
if err == io.EOF { if err == io.EOF {
break break
} }
line = strings.Trim (line, "\ n") line = strings.Trim(line, "\n")
var words = [] int64 {} var words = []int64{}
s: = strings.Split (line, "") s := strings.Split(line, " ")
value, err: = strconv.Atoi (s [0]) value, err := strconv.Atoi(s[0])
var feed_int_map map [string] [] int64 var feed_int_map map[string][]int64
       
for _, v: = range s [1: value + 1] { for _, v := range s[1:value + 1] {
int_v, _: = strconv.Atoi (v) int_v, _ := strconv.Atoi(v)
words = append (words, int64 (int_v)) words = append(words, int64(int_v))
} }
label, err: = strconv.Atoi (s [len (s) -1]) label, err := strconv.Atoi(s[len(s)-1])
if err! = nil { if err != nil {
panic (err) panic(err)
} }
feed_int_map = map [string] [] int64 {} feed_int_map = map[string][]int64{}
feed_int_map ["words"] = words feed_int_map["words"] = words
feed_int_map ["label"] = [] int64 {int64 (label)} feed_int_map["label"] = []int64{int64(label)}
Ranch
result = serving_client.Predict (handle, feed_int_map, fetch) result = serving_client.Predict(handle, feed_int_map, fetch)
fmt.Println (result ["prediction"] [1], "\ t", int64 (label)) fmt.Println(result["prediction"][1], "\t", int64(label))
    } }
} }
``` ```
......
...@@ -93,7 +93,7 @@ class Client(object): ...@@ -93,7 +93,7 @@ class Client(object):
lib_path = os.path.dirname(paddle_serving_client.__file__) lib_path = os.path.dirname(paddle_serving_client.__file__)
client_path = os.path.join(lib_path, 'serving_client.so') client_path = os.path.join(lib_path, 'serving_client.so')
lib_path = os.path.join(lib_path, 'lib') lib_path = os.path.join(lib_path, 'lib')
os.popen('patchelf --set-rpath {} {}'.format(lib_path, client_path)) os.system('patchelf --set-rpath {} {}'.format(lib_path, client_path))
def load_client_config(self, path): def load_client_config(self, path):
from .serving_client import PredictorClient from .serving_client import PredictorClient
......
...@@ -12,6 +12,6 @@ ...@@ -12,6 +12,6 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
""" Paddle Serving Client version string """ """ Paddle Serving Client version string """
serving_client_version = "0.1.3" serving_client_version = "0.2.0"
serving_server_version = "0.1.3" serving_server_version = "0.2.0"
module_proto_version = "0.1.3" module_proto_version = "0.2.0"
...@@ -12,6 +12,6 @@ ...@@ -12,6 +12,6 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
""" Paddle Serving Client version string """ """ Paddle Serving Client version string """
serving_client_version = "0.1.3" serving_client_version = "0.2.0"
serving_server_version = "0.1.3" serving_server_version = "0.2.0"
module_proto_version = "0.1.3" module_proto_version = "0.2.0"
...@@ -12,6 +12,6 @@ ...@@ -12,6 +12,6 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
""" Paddle Serving Client version string """ """ Paddle Serving Client version string """
serving_client_version = "0.1.3" serving_client_version = "0.2.0"
serving_server_version = "0.1.3" serving_server_version = "0.2.0"
module_proto_version = "0.1.3" module_proto_version = "0.2.0"
...@@ -200,6 +200,7 @@ function python_run_criteo_ctr_with_cube() { ...@@ -200,6 +200,7 @@ function python_run_criteo_ctr_with_cube() {
local TYPE=$1 local TYPE=$1
yum install -y bc >/dev/null yum install -y bc >/dev/null
cd criteo_ctr_with_cube # pwd: /Serving/python/examples/criteo_ctr_with_cube cd criteo_ctr_with_cube # pwd: /Serving/python/examples/criteo_ctr_with_cube
export SERVING_BIN=${SERVING_WORKDIR}/build-server-${TYPE}/core/general-server/serving
case $TYPE in case $TYPE in
CPU) CPU)
check_cmd "wget https://paddle-serving.bj.bcebos.com/unittest/ctr_cube_unittest.tar.gz" check_cmd "wget https://paddle-serving.bj.bcebos.com/unittest/ctr_cube_unittest.tar.gz"
...@@ -214,6 +215,7 @@ function python_run_criteo_ctr_with_cube() { ...@@ -214,6 +215,7 @@ function python_run_criteo_ctr_with_cube() {
sh cube_prepare.sh & sh cube_prepare.sh &
check_cmd "mkdir work_dir1 && cp cube/conf/cube.conf ./work_dir1/" check_cmd "mkdir work_dir1 && cp cube/conf/cube.conf ./work_dir1/"
python test_server.py ctr_serving_model_kv & python test_server.py ctr_serving_model_kv &
sleep 5
check_cmd "python test_client.py ctr_client_conf/serving_client_conf.prototxt ./ut_data >score" check_cmd "python test_client.py ctr_client_conf/serving_client_conf.prototxt ./ut_data >score"
tail -n 2 score | awk 'NR==1' tail -n 2 score | awk 'NR==1'
AUC=$(tail -n 2 score | awk 'NR==1') AUC=$(tail -n 2 score | awk 'NR==1')
...@@ -240,6 +242,7 @@ function python_run_criteo_ctr_with_cube() { ...@@ -240,6 +242,7 @@ function python_run_criteo_ctr_with_cube() {
sh cube_prepare.sh & sh cube_prepare.sh &
check_cmd "mkdir work_dir1 && cp cube/conf/cube.conf ./work_dir1/" check_cmd "mkdir work_dir1 && cp cube/conf/cube.conf ./work_dir1/"
python test_server_gpu.py ctr_serving_model_kv & python test_server_gpu.py ctr_serving_model_kv &
sleep 5
check_cmd "python test_client.py ctr_client_conf/serving_client_conf.prototxt ./ut_data >score" check_cmd "python test_client.py ctr_client_conf/serving_client_conf.prototxt ./ut_data >score"
tail -n 2 score | awk 'NR==1' tail -n 2 score | awk 'NR==1'
AUC=$(tail -n 2 score | awk 'NR==1') AUC=$(tail -n 2 score | awk 'NR==1')
...@@ -258,6 +261,7 @@ function python_run_criteo_ctr_with_cube() { ...@@ -258,6 +261,7 @@ function python_run_criteo_ctr_with_cube() {
exit 1 exit 1
;; ;;
esac esac
unset SERVING_BIN
echo "test criteo_ctr_with_cube $TYPE part finished as expected." echo "test criteo_ctr_with_cube $TYPE part finished as expected."
cd .. # pwd: /Serving/python/examples cd .. # pwd: /Serving/python/examples
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册