diff options
author | Jerry Ge <jerry.ge@arm.com> | 2022-11-09 14:30:59 -0800 |
---|---|---|
committer | Eric Kunze <eric.kunze@arm.com> | 2022-11-19 01:11:04 +0000 |
commit | a633bc61b156f3a4a2cd9f313a738ace459befc1 (patch) | |
tree | bfd65f79d9936f1d5ab442ae434908fe702f7bd4 /reference_model/src/ops/activation_funcs.cc | |
parent | e4b08ffbe457c8932740e3171964cf2e7cd69b4f (diff) | |
download | reference_model-a633bc61b156f3a4a2cd9f313a738ace459befc1.tar.gz |
Fix the floating point precision issue for Sigmoid FP32
The original calculation was auto-promoted to FP64 and causing the
discrepencies between TFL and TOSA. Sigmoid is now calculated with
only single precision floating point values.
Signed-off-by: Jerry Ge <jerry.ge@arm.com>
Change-Id: Ia65b491ccf8af2493cc01ca66c28faff841407c2
Diffstat (limited to 'reference_model/src/ops/activation_funcs.cc')
-rw-r--r-- | reference_model/src/ops/activation_funcs.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/reference_model/src/ops/activation_funcs.cc b/reference_model/src/ops/activation_funcs.cc index 46234e2..09ef6f6 100644 --- a/reference_model/src/ops/activation_funcs.cc +++ b/reference_model/src/ops/activation_funcs.cc @@ -63,7 +63,9 @@ int OpSigmoid<Rank, Dtype>::register_fcn() case DType_FP16: case DType_BF16: case DType_FP32: - this->fcn = [](InEigenType a) -> OutEigenType { return fpTrunc<Dtype>(1.0 / (1.0 + (expf(-1.0 * a)))); }; + this->fcn = [](InEigenType a) -> OutEigenType { + return fpTrunc<Dtype>(1.f / (1.f + (expf(-1.f * a)))); + }; break; default: ERROR_IF(true, "unsupported DType %s", EnumNamesDType()[Dtype]); |