From ce58df8a6dc7447af23810f9f08a30294f54b899 Mon Sep 17 00:00:00 2001 From: Cyrille Nofficial Date: Fri, 31 Dec 2021 18:47:21 +0100 Subject: [PATCH] refactor: inference result --- pkg/steering/steering.go | 18 ++++++++++-------- pkg/tools/tools.go | 4 ++-- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/pkg/steering/steering.go b/pkg/steering/steering.go index c3e4a34..b107e13 100644 --- a/pkg/steering/steering.go +++ b/pkg/steering/steering.go @@ -211,17 +211,19 @@ func (p *Part) Value(img image.Image) (float32, float32, error) { return 0., 0., fmt.Errorf("invoke failed: %v", status) } - output := p.interpreter.GetOutputTensor(0) + output := p.interpreter.GetOutputTensor(0).Int8s() + zap.L().Debug("raw steering", zap.Int8s("result", output)) - outputSize := output.Dim(output.NumDims() - 1) + //outputSize := output.Dim(output.NumDims() - 1) - b := make([]byte, outputSize) - status = output.CopyToBuffer(&b[0]) - if status != tflite.OK { - return 0., 0., fmt.Errorf("output failed: %v", status) - } + //b := make([]byte, outputSize) + //status = output.CopyToBuffer(&b[0]) + //if status != tflite.OK { + // return 0., 0., fmt.Errorf("output failed: %v", status) + //} - steering, score := tools.LinearBin(b, 15, -1, 2.0) + steering, score := tools.LinearBin(output, 15, -1, 2.0) + //steering, score := tools.LinearBin(b, 15, -1, 2.0) zap.L().Debug("found steering", zap.Float64("steering", steering), zap.Float64("score", score), diff --git a/pkg/tools/tools.go b/pkg/tools/tools.go index ca6697a..9f139c6 100644 --- a/pkg/tools/tools.go +++ b/pkg/tools/tools.go @@ -7,7 +7,7 @@ import ( ) // LinearBin perform inverse linear_bin, taking -func LinearBin(arr []byte, n int, offset int, r float64) (float64, float64) { +func LinearBin(arr []int8, n int, offset int, r float64) (float64, float64) { outputSize := len(arr) type result struct { score float64 @@ -17,7 +17,7 @@ func LinearBin(arr []byte, n int, offset int, r float64) (float64, float64) { var results []result minScore := 0.2 for i := 0; i < outputSize; i++ { - score := float64(arr[i]) / 255.0 + score := float64(int(arr[i])+128) / 255.0 if score < minScore { continue }