imdb_client.go 1.7 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
#   Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

package main

import (
       "os"
       "serving_client"       
       "path"
       "path/filepath"
)

func main() {
     config_file_path string = os.Args[1]
     handle = serving_client.LoadModelConfig(config_file_path)
     serving_client.Connect("127.0.0.1", 9292, handle)

     test_file_path string = os.Args[2]
     fi, err := os.Open(test_file_path)
     if err != nil {
     	fmt.Print(err)
     }

     defer fi.Close()
     br := bufio.NewReader(fi)

     fetch []int = {"cost", "acc", "prediction"}     

     result Map(string)[]float

     for {
     	 line, err := br.ReadString('\n')
	 if err == io.EOF {
	    break
	 }

	 var words = []int{}
	 var label = []int{}

	 s := strings.Split(line, " ")
	 value, err := strconv.Atoi(s[0])
	 feed_int_map Map(string)[]int
	 feed_float_map Map(string)[]float

	 for _, v := range s[1:value + 1] {
	     int_v := strconv.Atoi(v)
	     words = append(words, int_v)
	 }

	 label = append(label, strconv.Atoi(s[len(s)-1]))

	 feed_int_map["words"] = words
	 feed_int_map["label"] = label
	 
	 result = serving_client.Predict(
	 	 feed_int_map, feed_float_map, fetch, handle)
     }
}