From 1bc0967632c57b838e7be1f4ce667c652c012e48 Mon Sep 17 00:00:00 2001 From: Zhang Zhimin Date: Thu, 15 Oct 2020 09:39:09 +0800 Subject: [PATCH] Fix micro matmul bias access bug --- micro/ops/matmul.cc | 8 +++++++- micro/ops/utils/gemv.cc | 8 ++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/micro/ops/matmul.cc b/micro/ops/matmul.cc index 09caeff3..1888d1e9 100644 --- a/micro/ops/matmul.cc +++ b/micro/ops/matmul.cc @@ -27,9 +27,15 @@ MaceStatus MatMulOp::OnInit() { transpose_b_ = GetArgByName("transpose_b", false); input_a_ = GetInputData(INPUT_A); input_b_ = GetInputData(INPUT_B); - bias_ = GetInputSize() > 3 ? GetInputData(BIAS) : NULL; output_ = GetOutputData(OUTPUT); + bias_ = NULL; + if (GetInputSize() >= 3) { + bias_ = GetInputData(BIAS); + bias_dim_size_ = GetInputShapeDimSize(BIAS); + bias_dims_ = GetInputShapeDims(BIAS); + } + input_a_dim_size_ = GetInputShapeDimSize(INPUT_A); input_b_dim_size_ = GetInputShapeDimSize(INPUT_B); diff --git a/micro/ops/utils/gemv.cc b/micro/ops/utils/gemv.cc index 1fc81c47..d09bf845 100644 --- a/micro/ops/utils/gemv.cc +++ b/micro/ops/utils/gemv.cc @@ -98,10 +98,10 @@ MaceStatus Gemv::Compute(const mifloat *lhs_data, float sum2 = 0; float sum3 = 0; if (bias_data != NULL) { - sum0 = bias_data[0]; - sum1 = bias_data[1]; - sum2 = bias_data[2]; - sum3 = bias_data[3]; + sum0 = bias_data[h + 0]; + sum1 = bias_data[h + 1]; + sum2 = bias_data[h + 2]; + sum3 = bias_data[h + 3]; } const int32_t lhs_h_base0 = (lhs_b_base + h) * lhs_width; const int32_t lhs_h_base1 = lhs_h_base0 + lhs_width; -- GitLab