Add test for FloatToSymmetricQuantizedInt8 and fix implementation.

PiperOrigin-RevId: 280204674
Change-Id: Idb551efdde6aa51c2fcfd6fe6e82d175bdcc9bb0
This commit is contained in:
A. Unique TensorFlower 2019-11-13 08:36:58 -08:00 committed by TensorFlower Gardener
parent b95598fac0
commit ffe860458e
2 changed files with 19 additions and 1 deletions

View File

@ -75,7 +75,7 @@ int8_t FloatToAsymmetricQuantizedInt8(const float value, const float scale,
}
int8_t FloatToSymmetricQuantizedInt8(const float value, const float scale) {
return FloatToSymmetricQuantizedUInt8(value, scale) + kAsymmetricInt8Min;
return FloatToAsymmetricQuantizedInt8(value, scale, 0.0f);
}
int32_t FloatToSymmetricQuantizedInt32(const float value, const float scale) {

View File

@ -52,6 +52,24 @@ TF_LITE_MICRO_TEST(FloatToAsymmetricQuantizedInt8Test) {
TF_LITE_MICRO_EXPECT_EQ(-128, FloatToAsymmetricQuantizedInt8(-127, 1.0, -1));
}
TF_LITE_MICRO_TEST(FloatToSymmetricQuantizedInt8Test) {
using tflite::FloatToSymmetricQuantizedInt8;
// [-64, 63.5] -> zero_point=0, scale=0.5
TF_LITE_MICRO_EXPECT_EQ(2, FloatToSymmetricQuantizedInt8(1, 0.5));
TF_LITE_MICRO_EXPECT_EQ(4, FloatToSymmetricQuantizedInt8(2, 0.5));
TF_LITE_MICRO_EXPECT_EQ(6, FloatToSymmetricQuantizedInt8(3, 0.5));
TF_LITE_MICRO_EXPECT_EQ(-10, FloatToSymmetricQuantizedInt8(-5, 0.5));
TF_LITE_MICRO_EXPECT_EQ(-128, FloatToSymmetricQuantizedInt8(-64, 0.5));
TF_LITE_MICRO_EXPECT_EQ(127, FloatToSymmetricQuantizedInt8(63.5, 0.5));
// [-127, 128] -> zero_point=-1, scale=1.0
TF_LITE_MICRO_EXPECT_EQ(1, FloatToSymmetricQuantizedInt8(1, 1.0));
TF_LITE_MICRO_EXPECT_EQ(0, FloatToSymmetricQuantizedInt8(0, 1.0));
TF_LITE_MICRO_EXPECT_EQ(127, FloatToSymmetricQuantizedInt8(127, 1.0));
TF_LITE_MICRO_EXPECT_EQ(127, FloatToSymmetricQuantizedInt8(128, 1.0));
TF_LITE_MICRO_EXPECT_EQ(-126, FloatToSymmetricQuantizedInt8(-126, 1.0));
TF_LITE_MICRO_EXPECT_EQ(-127, FloatToSymmetricQuantizedInt8(-127, 1.0));
}
TF_LITE_MICRO_TEST(FloatToAsymmetricQuantizedInt32Test) {
using tflite::FloatToSymmetricQuantizedInt32;
TF_LITE_MICRO_EXPECT_EQ(0, FloatToSymmetricQuantizedInt32(0, 0.5));