Enable bool input for CAST (#2401)
BUG=none
diff --git a/tensorflow/lite/micro/kernels/cast.cc b/tensorflow/lite/micro/kernels/cast.cc
index 032817a..0b450d6 100644
--- a/tensorflow/lite/micro/kernels/cast.cc
+++ b/tensorflow/lite/micro/kernels/cast.cc
@@ -101,6 +101,9 @@
case kTfLiteFloat32:
return copyToTensor(context, tflite::micro::GetTensorData<float>(input),
output, num_elements);
+ case kTfLiteBool:
+ return copyToTensor(context, tflite::micro::GetTensorData<bool>(input),
+ output, num_elements);
default:
// Unsupported type.
MicroPrintf("Input type %s (%d) not supported.",
diff --git a/tensorflow/lite/micro/kernels/cast_test.cc b/tensorflow/lite/micro/kernels/cast_test.cc
index fc09806..8625572 100644
--- a/tensorflow/lite/micro/kernels/cast_test.cc
+++ b/tensorflow/lite/micro/kernels/cast_test.cc
@@ -129,4 +129,12 @@
tflite::testing::TestCast(input_dims, input_values, golden, output_data);
}
+TF_LITE_MICRO_TEST(CastBoolToFloat) {
+ float output_data[6];
+ int input_dims[] = {2, 2, 3};
+ const bool input_values[] = {true, true, false, true, false, true};
+ const float golden[] = {1.f, 1.0f, 0.f, 1.0f, 0.0f, 1.0f};
+ tflite::testing::TestCast(input_dims, input_values, golden, output_data);
+}
+
TF_LITE_MICRO_TESTS_END