Deprecate and remove testing/test_utils.h from TF Micro.
PiperOrigin-RevId: 335957483 Change-Id: I878ba86a6eaa01f331097240c019c57bb53688e8
This commit is contained in:
parent
e9947ca30a
commit
d39ff65920
@ -328,6 +328,7 @@ tflite_micro_cc_test(
|
||||
],
|
||||
deps = [
|
||||
":micro_framework",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
|
@ -16,7 +16,6 @@ limitations under the License.
|
||||
#include "tensorflow/lite/micro/examples/hello_world/output_handler.h"
|
||||
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
TF_LITE_MICRO_TESTS_BEGIN
|
||||
|
||||
|
@ -16,7 +16,6 @@ limitations under the License.
|
||||
#include "tensorflow/lite/micro/examples/magic_wand/output_handler.h"
|
||||
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
TF_LITE_MICRO_TESTS_BEGIN
|
||||
|
||||
|
@ -316,6 +316,7 @@ tflite_micro_cc_test(
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:micro_error_reporter",
|
||||
"//tensorflow/lite/micro:micro_framework",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
|
@ -16,7 +16,6 @@ limitations under the License.
|
||||
#include "tensorflow/lite/micro/examples/micro_speech/command_responder.h"
|
||||
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
TF_LITE_MICRO_TESTS_BEGIN
|
||||
|
||||
|
@ -15,8 +15,8 @@ limitations under the License.
|
||||
|
||||
#include "tensorflow/lite/micro/examples/micro_speech/recognize_commands.h"
|
||||
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
TF_LITE_MICRO_TESTS_BEGIN
|
||||
|
||||
|
@ -21,7 +21,6 @@ limitations under the License.
|
||||
#include "tensorflow/lite/micro/micro_interpreter.h"
|
||||
#include "tensorflow/lite/micro/micro_utils.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
#include "tensorflow/lite/schema/schema_generated.h"
|
||||
#include "tensorflow/lite/version.h"
|
||||
|
||||
|
@ -16,7 +16,6 @@ limitations under the License.
|
||||
#include "tensorflow/lite/micro/examples/person_detection/detection_responder.h"
|
||||
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
TF_LITE_MICRO_TESTS_BEGIN
|
||||
|
||||
|
@ -16,7 +16,6 @@ limitations under the License.
|
||||
#include "tensorflow/lite/micro/examples/person_detection_experimental/detection_responder.h"
|
||||
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
TF_LITE_MICRO_TESTS_BEGIN
|
||||
|
||||
|
@ -136,6 +136,7 @@ tflite_micro_cc_test(
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:debug_log",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -149,6 +150,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -163,6 +165,7 @@ tflite_micro_cc_test(
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/kernels/internal:tensor",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -207,6 +210,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -235,6 +239,7 @@ tflite_micro_cc_test(
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:micro_utils",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -248,6 +253,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -261,6 +267,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -274,6 +281,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -287,6 +295,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -300,6 +309,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -313,6 +323,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -326,6 +337,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -339,6 +351,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -352,6 +365,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -365,6 +379,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -378,6 +393,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -391,6 +407,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -405,6 +422,7 @@ tflite_micro_cc_test(
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:debug_log",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -419,6 +437,7 @@ tflite_micro_cc_test(
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:debug_log",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -433,6 +452,22 @@ tflite_micro_cc_test(
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:debug_log",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
|
||||
tflite_micro_cc_test(
|
||||
name = "split_v_test",
|
||||
srcs = [
|
||||
"split_v_test.cc",
|
||||
],
|
||||
deps = [
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:debug_log",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -446,6 +481,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -558,6 +594,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -571,6 +608,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -599,6 +637,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -613,6 +652,7 @@ tflite_micro_cc_test(
|
||||
":micro_ops",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -626,6 +666,7 @@ tflite_micro_cc_test(
|
||||
":kernel_runner",
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -652,6 +693,7 @@ tflite_micro_cc_test(
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:micro_framework",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
@ -664,6 +706,7 @@ tflite_micro_cc_test(
|
||||
"//tensorflow/lite/c:common",
|
||||
"//tensorflow/lite/micro:micro_framework",
|
||||
"//tensorflow/lite/micro:op_resolvers",
|
||||
"//tensorflow/lite/micro:test_helpers",
|
||||
"//tensorflow/lite/micro/testing:micro_test",
|
||||
],
|
||||
)
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -19,8 +19,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -18,8 +18,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/kernels/micro_ops.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -18,8 +18,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/builtin_op_data.h"
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/builtin_op_data.h"
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/micro_utils.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/kernels/internal/tensor_ctypes.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -18,7 +18,6 @@ limitations under the License.
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/debug_log.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -24,7 +24,6 @@ limitations under the License.
|
||||
#include "tensorflow/lite/micro/micro_utils.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -19,8 +19,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -19,7 +19,6 @@ limitations under the License.
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
@ -104,14 +104,11 @@ void TestMaxMinQuantized(const TfLiteRegistration& registration,
|
||||
}
|
||||
}
|
||||
|
||||
void TestMaxMinQuantizedInt32(const TfLiteRegistration& registration,
|
||||
const int* input1_dims_data,
|
||||
const int32_t* input1_data, float input1_scale,
|
||||
const int* input2_dims_data,
|
||||
const int32_t* input2_data, float input2_scale,
|
||||
const int32_t* expected_output_data,
|
||||
float output_scale, const int* output_dims_data,
|
||||
int32_t* output_data) {
|
||||
void TestMaxMinQuantizedInt32(
|
||||
const TfLiteRegistration& registration, const int* input1_dims_data,
|
||||
const int32_t* input1_data, const int* input2_dims_data,
|
||||
const int32_t* input2_data, const int32_t* expected_output_data,
|
||||
const int* output_dims_data, int32_t* output_data) {
|
||||
TfLiteIntArray* input1_dims = IntArrayFromInts(input1_dims_data);
|
||||
TfLiteIntArray* input2_dims = IntArrayFromInts(input2_dims_data);
|
||||
TfLiteIntArray* output_dims = IntArrayFromInts(output_dims_data);
|
||||
@ -121,9 +118,9 @@ void TestMaxMinQuantizedInt32(const TfLiteRegistration& registration,
|
||||
constexpr int outputs_size = 1;
|
||||
constexpr int tensors_size = inputs_size + outputs_size;
|
||||
TfLiteTensor tensors[tensors_size] = {
|
||||
CreateQuantized32Tensor(input1_data, input1_dims, input1_scale),
|
||||
CreateQuantized32Tensor(input2_data, input2_dims, input2_scale),
|
||||
CreateQuantized32Tensor(output_data, output_dims, output_scale),
|
||||
CreateInt32Tensor(input1_data, input1_dims),
|
||||
CreateInt32Tensor(input2_data, input2_dims),
|
||||
CreateInt32Tensor(output_data, output_dims),
|
||||
};
|
||||
|
||||
int inputs_array_data[] = {2, 0, 1};
|
||||
@ -210,9 +207,6 @@ TF_LITE_MICRO_TEST(FloatWithBroadcastTest) {
|
||||
}
|
||||
|
||||
TF_LITE_MICRO_TEST(Int32WithBroadcastTest) {
|
||||
const float input1_scale = 0.5;
|
||||
const float input2_scale = 0.5;
|
||||
const float output_scale = 0.5;
|
||||
const int dims[] = {3, 3, 1, 2};
|
||||
const int dims_scalar[] = {1, 1};
|
||||
const int32_t data1[] = {1, 0, -1, -2, 3, 11};
|
||||
@ -222,14 +216,12 @@ TF_LITE_MICRO_TEST(Int32WithBroadcastTest) {
|
||||
int32_t output_data[6];
|
||||
|
||||
tflite::testing::TestMaxMinQuantizedInt32(
|
||||
tflite::ops::micro::Register_MAXIMUM(), dims, data1, input1_scale,
|
||||
dims_scalar, data2, input2_scale, golden_max, output_scale, dims,
|
||||
output_data);
|
||||
tflite::ops::micro::Register_MAXIMUM(), dims, data1, dims_scalar, data2,
|
||||
golden_max, dims, output_data);
|
||||
|
||||
tflite::testing::TestMaxMinQuantizedInt32(
|
||||
tflite::ops::micro::Register_MINIMUM(), dims, data1, input1_scale,
|
||||
dims_scalar, data2, input2_scale, golden_min, output_scale, dims,
|
||||
output_data);
|
||||
tflite::ops::micro::Register_MINIMUM(), dims, data1, dims_scalar, data2,
|
||||
golden_min, dims, output_data);
|
||||
}
|
||||
|
||||
TF_LITE_MICRO_TESTS_END
|
||||
|
@ -16,8 +16,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/builtin_op_data.h"
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/debug_log.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
@ -168,9 +168,9 @@ void TestPackTwoInputsQuantized32(const int* input1_dims_data,
|
||||
constexpr int output_size = 1;
|
||||
constexpr int tensors_size = input_size + output_size;
|
||||
TfLiteTensor tensors[tensors_size] = {
|
||||
CreateQuantized32Tensor(input1_data, input1_dims, 1.0),
|
||||
CreateQuantized32Tensor(input2_data, input2_dims, 1.0),
|
||||
CreateQuantized32Tensor(output_data, output_dims, 1.0)};
|
||||
CreateInt32Tensor(input1_data, input1_dims),
|
||||
CreateInt32Tensor(input2_data, input2_dims),
|
||||
CreateInt32Tensor(output_data, output_dims)};
|
||||
|
||||
TfLitePackParams builtin_data = {
|
||||
.values_count = 2,
|
||||
|
@ -19,7 +19,6 @@ limitations under the License.
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -18,8 +18,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/builtin_op_data.h"
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -16,8 +16,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/builtin_op_data.h"
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -18,7 +18,6 @@ limitations under the License.
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -16,8 +16,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/builtin_op_data.h"
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -18,8 +18,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/debug_log.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
@ -42,7 +42,7 @@ void TestSplitTwoOutputsFloat(
|
||||
constexpr int axis_size = 1;
|
||||
constexpr int tensors_size = input_size + output_size + axis_size;
|
||||
TfLiteTensor tensors[tensors_size] = {
|
||||
CreateQuantized32Tensor(axis_data, axis_dims, 1.0),
|
||||
CreateInt32Tensor(axis_data, axis_dims),
|
||||
CreateFloatTensor(input_data, input_dims),
|
||||
CreateFloatTensor(output1_data, output1_dims),
|
||||
CreateFloatTensor(output2_data, output2_dims)};
|
||||
@ -104,7 +104,7 @@ void TestSplitFourOutputsFloat(
|
||||
constexpr int axis_size = 1;
|
||||
constexpr int tensors_size = input_size + output_size + axis_size;
|
||||
TfLiteTensor tensors[tensors_size] = {
|
||||
CreateQuantized32Tensor(axis_data, axis_dims, 1.0),
|
||||
CreateInt32Tensor(axis_data, axis_dims),
|
||||
CreateFloatTensor(input_data, input_dims),
|
||||
CreateFloatTensor(output1_data, output1_dims),
|
||||
CreateFloatTensor(output2_data, output2_dims),
|
||||
@ -171,7 +171,7 @@ void TestSplitTwoOutputsQuantized(
|
||||
constexpr int axis_size = 1;
|
||||
constexpr int tensors_size = input_size + output_size + axis_size;
|
||||
TfLiteTensor tensors[tensors_size] = {
|
||||
CreateQuantized32Tensor(axis_data, axis_dims, 1.0),
|
||||
CreateInt32Tensor(axis_data, axis_dims),
|
||||
CreateQuantizedTensor(input_data, input_dims, 0, 10),
|
||||
CreateQuantizedTensor(output1_data, output1_dims, 0, 10),
|
||||
CreateQuantizedTensor(output2_data, output2_dims, 0, 10)};
|
||||
@ -227,10 +227,10 @@ void TestSplitTwoOutputsQuantized32(
|
||||
constexpr int axis_size = 1;
|
||||
constexpr int tensors_size = input_size + output_size + axis_size;
|
||||
TfLiteTensor tensors[tensors_size] = {
|
||||
CreateQuantized32Tensor(axis_data, axis_dims, 1.0),
|
||||
CreateQuantized32Tensor(input_data, input_dims, 1.0),
|
||||
CreateQuantized32Tensor(output1_data, output1_dims, 1.0),
|
||||
CreateQuantized32Tensor(output2_data, output2_dims, 1.0)};
|
||||
CreateInt32Tensor(axis_data, axis_dims),
|
||||
CreateInt32Tensor(input_data, input_dims),
|
||||
CreateInt32Tensor(output1_data, output1_dims),
|
||||
CreateInt32Tensor(output2_data, output2_dims)};
|
||||
|
||||
// Currently only support constant axis tensor.
|
||||
tensors[0].allocation_type = kTfLiteMmapRo;
|
||||
|
@ -18,8 +18,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/debug_log.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
@ -64,8 +64,8 @@ void TestSplitVFloat(const int* input_dims_data, const float* input_data,
|
||||
|
||||
TfLiteTensor tensors[tensors_size];
|
||||
tensors[0] = CreateFloatTensor(input_data, input_dims);
|
||||
tensors[1] = CreateQuantized32Tensor(split_data, split_dims, 1.0);
|
||||
tensors[2] = CreateQuantized32Tensor(axis_data, axis_dims, 1.0);
|
||||
tensors[1] = CreateInt32Tensor(split_data, split_dims);
|
||||
tensors[2] = CreateInt32Tensor(axis_data, axis_dims);
|
||||
|
||||
// add output tensors
|
||||
for (int i = 0; i < N; i++)
|
||||
|
@ -18,8 +18,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/all_ops_resolver.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
@ -75,9 +75,9 @@ void TestStridedSliceFloat(const int* input_shape, const int* begin_shape,
|
||||
constexpr int tensors_size = inputs_size + outputs_size;
|
||||
TfLiteTensor tensors[tensors_size] = {
|
||||
CreateFloatTensor(input_data, input_dims),
|
||||
CreateQuantized32Tensor(begin_data, begin_dims, 1.0),
|
||||
CreateQuantized32Tensor(end_data, end_dims, 1.0),
|
||||
CreateQuantized32Tensor(strides_data, strides_dims, 1.0),
|
||||
CreateInt32Tensor(begin_data, begin_dims),
|
||||
CreateInt32Tensor(end_data, end_dims),
|
||||
CreateInt32Tensor(strides_data, strides_dims),
|
||||
CreateFloatTensor(output_data, output_dims),
|
||||
};
|
||||
|
||||
@ -106,9 +106,9 @@ void TestStridedSliceQuantized(
|
||||
std::numeric_limits<T>::max() + std::numeric_limits<T>::min() / 2;
|
||||
TfLiteTensor tensors[tensors_size] = {
|
||||
CreateQuantizedTensor(input_data, input_dims, 1.0, zero_point),
|
||||
CreateQuantized32Tensor(begin_data, begin_dims, 1.0),
|
||||
CreateQuantized32Tensor(end_data, end_dims, 1.0),
|
||||
CreateQuantized32Tensor(strides_data, strides_dims, 1.0),
|
||||
CreateInt32Tensor(begin_data, begin_dims),
|
||||
CreateInt32Tensor(end_data, end_dims),
|
||||
CreateInt32Tensor(strides_data, strides_dims),
|
||||
CreateQuantizedTensor(output_data, output_dims, 1.0, zero_point),
|
||||
};
|
||||
|
||||
|
@ -18,8 +18,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/builtin_op_data.h"
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -16,8 +16,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/builtin_op_data.h"
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/micro/debug_log.h"
|
||||
#include "tensorflow/lite/micro/kernels/kernel_runner.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
@ -222,10 +222,10 @@ void TestUnpackThreeOutputsQuantized32(
|
||||
constexpr int output_size = 3;
|
||||
constexpr int tensors_size = input_size + output_size;
|
||||
TfLiteTensor tensors[tensors_size] = {
|
||||
CreateQuantized32Tensor(input_data, input_dims, 1.0),
|
||||
CreateQuantized32Tensor(output1_data, output1_dims, 1.0),
|
||||
CreateQuantized32Tensor(output2_data, output2_dims, 1.0),
|
||||
CreateQuantized32Tensor(output3_data, output3_dims, 1.0)};
|
||||
CreateInt32Tensor(input_data, input_dims),
|
||||
CreateInt32Tensor(output1_data, output1_dims),
|
||||
CreateInt32Tensor(output2_data, output2_dims),
|
||||
CreateInt32Tensor(output3_data, output3_dims)};
|
||||
|
||||
// Place a unique value in the uninitialized output buffer.
|
||||
for (int i = 0; i < output1_dims_count; ++i) {
|
||||
|
@ -19,6 +19,7 @@ limitations under the License.
|
||||
// Useful functions for writing tests.
|
||||
|
||||
#include <cstdint>
|
||||
#include <limits>
|
||||
|
||||
#include "flatbuffers/flatbuffers.h" // from @flatbuffers
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
@ -192,6 +193,21 @@ TfLiteTensor CreateSymmetricPerChannelQuantizedTensor(
|
||||
// Returns the number of tensors in the default subgraph for a tflite::Model.
|
||||
size_t GetModelTensorCount(const Model* model);
|
||||
|
||||
// Derives the quantization scaling factor from a min and max range.
|
||||
template <typename T>
|
||||
inline float ScaleFromMinMax(const float min, const float max) {
|
||||
return (max - min) /
|
||||
static_cast<float>((std::numeric_limits<T>::max() * 1.0) -
|
||||
std::numeric_limits<T>::min());
|
||||
}
|
||||
|
||||
// Derives the quantization zero point from a min and max range.
|
||||
template <typename T>
|
||||
inline int ZeroPointFromMinMax(const float min, const float max) {
|
||||
return static_cast<int>(std::numeric_limits<T>::min()) +
|
||||
static_cast<int>(-min / ScaleFromMinMax<T>(min, max) + 0.5f);
|
||||
}
|
||||
|
||||
} // namespace testing
|
||||
} // namespace tflite
|
||||
|
||||
|
@ -20,12 +20,8 @@ exports_files(["test_linux_binary.sh"])
|
||||
|
||||
cc_library(
|
||||
name = "micro_test",
|
||||
srcs = [
|
||||
"test_utils.cc",
|
||||
],
|
||||
hdrs = [
|
||||
"micro_test.h",
|
||||
"test_utils.h",
|
||||
],
|
||||
visibility = [
|
||||
":micro",
|
||||
|
@ -1,240 +0,0 @@
|
||||
/* Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==============================================================================*/
|
||||
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
#include "tensorflow/lite/micro/simple_memory_allocator.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
||||
namespace {
|
||||
// TODO(b/141330728): Refactor out of test_utils.cc
|
||||
// The variables below (and the AllocatePersistentBuffer function) are only
|
||||
// needed for the kernel tests and benchmarks, i.e. where we do not have an
|
||||
// interpreter object, and the fully featured MicroAllocator.
|
||||
// Currently, these need to be sufficient for all the kernel_tests. If that
|
||||
// becomes problematic, we can investigate allowing the arena_size to be
|
||||
// specified for each call to PopulatContext.
|
||||
constexpr size_t kArenaSize = 10000;
|
||||
uint8_t raw_arena_[kArenaSize];
|
||||
SimpleMemoryAllocator* simple_memory_allocator_ = nullptr;
|
||||
constexpr size_t kBufferAlignment = 16;
|
||||
|
||||
// We store the pointer to the ith scratch buffer to implement the Request/Get
|
||||
// ScratchBuffer API for the tests. scratch_buffers_[i] will be the ith scratch
|
||||
// buffer and will still be allocated from within raw_arena_.
|
||||
constexpr int kNumScratchBuffers = 5;
|
||||
uint8_t* scratch_buffers_[kNumScratchBuffers];
|
||||
int scratch_buffer_count_ = 0;
|
||||
|
||||
// Note that the context parameter in this function is only needed to match the
|
||||
// signature of TfLiteContext::AllocatePersistentBuffer and isn't needed in the
|
||||
// implementation because we are assuming a single global
|
||||
// simple_memory_allocator_
|
||||
void* AllocatePersistentBuffer(TfLiteContext* context, size_t bytes) {
|
||||
TFLITE_DCHECK(simple_memory_allocator_ != nullptr);
|
||||
return simple_memory_allocator_->AllocateFromTail(bytes, kBufferAlignment);
|
||||
}
|
||||
|
||||
TfLiteStatus RequestScratchBufferInArena(TfLiteContext* context, size_t bytes,
|
||||
int* buffer_index) {
|
||||
TFLITE_DCHECK(simple_memory_allocator_ != nullptr);
|
||||
TFLITE_DCHECK(buffer_index != nullptr);
|
||||
|
||||
if (scratch_buffer_count_ == kNumScratchBuffers) {
|
||||
TF_LITE_REPORT_ERROR(
|
||||
static_cast<ErrorReporter*>(context->impl_),
|
||||
"Exceeded the maximum number of scratch tensors allowed (%d).",
|
||||
kNumScratchBuffers);
|
||||
return kTfLiteError;
|
||||
}
|
||||
|
||||
// For tests, we allocate scratch buffers from the tail and keep them around
|
||||
// for the lifetime of model. This means that the arena size in the tests will
|
||||
// be more than what we would have if the scratch buffers could share memory.
|
||||
scratch_buffers_[scratch_buffer_count_] =
|
||||
simple_memory_allocator_->AllocateFromTail(bytes, kBufferAlignment);
|
||||
TFLITE_DCHECK(scratch_buffers_[scratch_buffer_count_] != nullptr);
|
||||
|
||||
*buffer_index = scratch_buffer_count_++;
|
||||
return kTfLiteOk;
|
||||
}
|
||||
|
||||
void* GetScratchBuffer(TfLiteContext* context, int buffer_index) {
|
||||
TFLITE_DCHECK(scratch_buffer_count_ <= kNumScratchBuffers);
|
||||
if (buffer_index >= scratch_buffer_count_) {
|
||||
return nullptr;
|
||||
}
|
||||
return scratch_buffers_[buffer_index];
|
||||
}
|
||||
|
||||
TfLiteTensor* GetTensor(const struct TfLiteContext* context, int subgraph_idx) {
|
||||
// TODO(b/160894903): Return this value from temp allocated memory.
|
||||
return &context->tensors[subgraph_idx];
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
uint8_t F2Q(float value, float min, float max) {
|
||||
int32_t result = ZeroPointFromMinMax<uint8_t>(min, max) +
|
||||
(value / ScaleFromMinMax<uint8_t>(min, max)) + 0.5f;
|
||||
if (result < std::numeric_limits<uint8_t>::min()) {
|
||||
result = std::numeric_limits<uint8_t>::min();
|
||||
}
|
||||
if (result > std::numeric_limits<uint8_t>::max()) {
|
||||
result = std::numeric_limits<uint8_t>::max();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// Converts a float value into a signed eight-bit quantized value.
|
||||
int8_t F2QS(float value, float min, float max) {
|
||||
return F2Q(value, min, max) + std::numeric_limits<int8_t>::min();
|
||||
}
|
||||
|
||||
int32_t F2Q32(float value, float scale) {
|
||||
double quantized = static_cast<double>(value / scale);
|
||||
if (quantized > std::numeric_limits<int32_t>::max()) {
|
||||
quantized = std::numeric_limits<int32_t>::max();
|
||||
} else if (quantized < std::numeric_limits<int32_t>::min()) {
|
||||
quantized = std::numeric_limits<int32_t>::min();
|
||||
}
|
||||
return static_cast<int>(quantized);
|
||||
}
|
||||
|
||||
// TODO(b/141330728): Move this method elsewhere as part clean up.
|
||||
void PopulateContext(TfLiteTensor* tensors, int tensors_size,
|
||||
ErrorReporter* error_reporter, TfLiteContext* context) {
|
||||
simple_memory_allocator_ =
|
||||
SimpleMemoryAllocator::Create(error_reporter, raw_arena_, kArenaSize);
|
||||
TFLITE_DCHECK(simple_memory_allocator_ != nullptr);
|
||||
scratch_buffer_count_ = 0;
|
||||
|
||||
context->tensors_size = tensors_size;
|
||||
context->tensors = tensors;
|
||||
context->impl_ = static_cast<void*>(error_reporter);
|
||||
context->GetExecutionPlan = nullptr;
|
||||
context->ResizeTensor = nullptr;
|
||||
context->ReportError = ReportOpError;
|
||||
context->AddTensors = nullptr;
|
||||
context->GetNodeAndRegistration = nullptr;
|
||||
context->ReplaceNodeSubsetsWithDelegateKernels = nullptr;
|
||||
context->recommended_num_threads = 1;
|
||||
context->GetExternalContext = nullptr;
|
||||
context->SetExternalContext = nullptr;
|
||||
|
||||
context->GetTensor = GetTensor;
|
||||
context->GetEvalTensor = nullptr;
|
||||
|
||||
context->AllocatePersistentBuffer = AllocatePersistentBuffer;
|
||||
context->RequestScratchBufferInArena = RequestScratchBufferInArena;
|
||||
context->GetScratchBuffer = GetScratchBuffer;
|
||||
|
||||
for (int i = 0; i < tensors_size; ++i) {
|
||||
if (context->tensors[i].is_variable) {
|
||||
ResetVariableTensor(&context->tensors[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TfLiteTensor CreateQuantizedTensor(const uint8_t* data, TfLiteIntArray* dims,
|
||||
float min, float max, bool is_variable) {
|
||||
TfLiteTensor result;
|
||||
result.type = kTfLiteUInt8;
|
||||
result.data.uint8 = const_cast<uint8_t*>(data);
|
||||
result.dims = dims;
|
||||
result.params = {ScaleFromMinMax<uint8_t>(min, max),
|
||||
ZeroPointFromMinMax<uint8_t>(min, max)};
|
||||
result.allocation_type = kTfLiteMemNone;
|
||||
result.bytes = ElementCount(*dims) * sizeof(uint8_t);
|
||||
result.is_variable = false;
|
||||
return result;
|
||||
}
|
||||
|
||||
TfLiteTensor CreateQuantizedTensor(const int8_t* data, TfLiteIntArray* dims,
|
||||
float min, float max, bool is_variable) {
|
||||
TfLiteTensor result;
|
||||
result.type = kTfLiteInt8;
|
||||
result.data.int8 = const_cast<int8_t*>(data);
|
||||
result.dims = dims;
|
||||
result.params = {ScaleFromMinMax<int8_t>(min, max),
|
||||
ZeroPointFromMinMax<int8_t>(min, max)};
|
||||
result.allocation_type = kTfLiteMemNone;
|
||||
result.bytes = ElementCount(*dims) * sizeof(int8_t);
|
||||
result.is_variable = is_variable;
|
||||
return result;
|
||||
}
|
||||
|
||||
TfLiteTensor CreateQuantizedTensor(const float* data, uint8_t* quantized_data,
|
||||
TfLiteIntArray* dims, bool is_variable) {
|
||||
TfLiteTensor result;
|
||||
SymmetricQuantize(data, dims, quantized_data, &result.params.scale);
|
||||
result.data.uint8 = quantized_data;
|
||||
result.type = kTfLiteUInt8;
|
||||
result.dims = dims;
|
||||
result.params.zero_point = 128;
|
||||
result.allocation_type = kTfLiteMemNone;
|
||||
result.bytes = ElementCount(*dims) * sizeof(uint8_t);
|
||||
result.is_variable = is_variable;
|
||||
return result;
|
||||
}
|
||||
|
||||
TfLiteTensor CreateQuantizedTensor(const float* data, int8_t* quantized_data,
|
||||
TfLiteIntArray* dims, bool is_variable) {
|
||||
TfLiteTensor result;
|
||||
SignedSymmetricQuantize(data, dims, quantized_data, &result.params.scale);
|
||||
result.data.int8 = quantized_data;
|
||||
result.type = kTfLiteInt8;
|
||||
result.dims = dims;
|
||||
result.params.zero_point = 0;
|
||||
result.allocation_type = kTfLiteMemNone;
|
||||
result.bytes = ElementCount(*dims) * sizeof(int8_t);
|
||||
result.is_variable = is_variable;
|
||||
return result;
|
||||
}
|
||||
|
||||
TfLiteTensor CreateQuantizedTensor(const float* data, int16_t* quantized_data,
|
||||
TfLiteIntArray* dims, bool is_variable) {
|
||||
TfLiteTensor result;
|
||||
SignedSymmetricQuantize(data, dims, quantized_data, &result.params.scale);
|
||||
result.data.i16 = quantized_data;
|
||||
result.type = kTfLiteInt16;
|
||||
result.dims = dims;
|
||||
result.params.zero_point = 0;
|
||||
result.allocation_type = kTfLiteMemNone;
|
||||
result.bytes = ElementCount(*dims) * sizeof(int16_t);
|
||||
result.is_variable = is_variable;
|
||||
return result;
|
||||
}
|
||||
|
||||
TfLiteTensor CreateQuantized32Tensor(const int32_t* data, TfLiteIntArray* dims,
|
||||
float scale, bool is_variable) {
|
||||
TfLiteTensor result;
|
||||
result.type = kTfLiteInt32;
|
||||
result.data.i32 = const_cast<int32_t*>(data);
|
||||
result.dims = dims;
|
||||
// Quantized int32_t tensors always have a zero point of 0, since the range of
|
||||
// int32_t values is large, and because zero point costs extra cycles during
|
||||
// processing.
|
||||
result.params = {scale, 0};
|
||||
result.allocation_type = kTfLiteMemNone;
|
||||
result.bytes = ElementCount(*dims) * sizeof(int32_t);
|
||||
result.is_variable = is_variable;
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace testing
|
||||
} // namespace tflite
|
@ -1,115 +0,0 @@
|
||||
/* Copyright 2018 The TensorFlow Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==============================================================================*/
|
||||
#ifndef TENSORFLOW_LITE_MICRO_TESTING_TEST_UTILS_H_
|
||||
#define TENSORFLOW_LITE_MICRO_TESTING_TEST_UTILS_H_
|
||||
|
||||
#include <cmath>
|
||||
#include <cstdint>
|
||||
#include <limits>
|
||||
|
||||
#include "tensorflow/lite/c/common.h"
|
||||
#include "tensorflow/lite/core/api/tensor_utils.h"
|
||||
#include "tensorflow/lite/micro/micro_utils.h"
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
|
||||
namespace tflite {
|
||||
namespace testing {
|
||||
|
||||
// Note: These methods are deprecated, do not use. See b/141332970.
|
||||
|
||||
// Derives the quantization range max from scaling factor and zero point.
|
||||
template <typename T>
|
||||
inline float MaxFromZeroPointScale(const int zero_point, const float scale) {
|
||||
return (std::numeric_limits<T>::max() - zero_point) * scale;
|
||||
}
|
||||
|
||||
// Derives the quantization range min from scaling factor and zero point.
|
||||
template <typename T>
|
||||
inline float MinFromZeroPointScale(const int zero_point, const float scale) {
|
||||
return (std::numeric_limits<T>::min() - zero_point) * scale;
|
||||
}
|
||||
|
||||
// Derives the quantization scaling factor from a min and max range.
|
||||
template <typename T>
|
||||
inline float ScaleFromMinMax(const float min, const float max) {
|
||||
return (max - min) /
|
||||
static_cast<float>((std::numeric_limits<T>::max() * 1.0) -
|
||||
std::numeric_limits<T>::min());
|
||||
}
|
||||
|
||||
// Derives the quantization zero point from a min and max range.
|
||||
template <typename T>
|
||||
inline int ZeroPointFromMinMax(const float min, const float max) {
|
||||
return static_cast<int>(std::numeric_limits<T>::min()) +
|
||||
static_cast<int>(-min / ScaleFromMinMax<T>(min, max) + 0.5f);
|
||||
}
|
||||
|
||||
// Converts a float value into an unsigned eight-bit quantized value.
|
||||
uint8_t F2Q(float value, float min, float max);
|
||||
|
||||
// Converts a float value into a signed eight-bit quantized value.
|
||||
int8_t F2QS(const float value, const float min, const float max);
|
||||
|
||||
// Converts a float value into a signed thirty-two-bit quantized value. Note
|
||||
// that values close to max int and min int may see significant error due to
|
||||
// a lack of floating point granularity for large values.
|
||||
int32_t F2Q32(const float value, const float scale);
|
||||
|
||||
// TODO(b/141330728): Move this method elsewhere as part clean up.
|
||||
void PopulateContext(TfLiteTensor* tensors, int tensors_size,
|
||||
ErrorReporter* error_reporter, TfLiteContext* context);
|
||||
|
||||
TfLiteTensor CreateQuantizedTensor(const uint8_t* data, TfLiteIntArray* dims,
|
||||
float min, float max,
|
||||
bool is_variable = false);
|
||||
|
||||
TfLiteTensor CreateQuantizedTensor(const int8_t* data, TfLiteIntArray* dims,
|
||||
float min, float max,
|
||||
bool is_variable = false);
|
||||
|
||||
TfLiteTensor CreateQuantizedTensor(const float* data, uint8_t* quantized_data,
|
||||
TfLiteIntArray* dims,
|
||||
bool is_variable = false);
|
||||
|
||||
TfLiteTensor CreateQuantizedTensor(const float* data, int8_t* quantized_data,
|
||||
TfLiteIntArray* dims,
|
||||
bool is_variable = false);
|
||||
|
||||
TfLiteTensor CreateQuantizedTensor(const float* data, int16_t* quantized_data,
|
||||
TfLiteIntArray* dims,
|
||||
bool is_variable = false);
|
||||
|
||||
TfLiteTensor CreateQuantized32Tensor(const int32_t* data, TfLiteIntArray* dims,
|
||||
float scale, bool is_variable = false);
|
||||
|
||||
template <typename input_type = int32_t,
|
||||
TfLiteType tensor_input_type = kTfLiteInt32>
|
||||
inline TfLiteTensor CreateTensor(const input_type* data, TfLiteIntArray* dims,
|
||||
bool is_variable = false) {
|
||||
TfLiteTensor result;
|
||||
result.type = tensor_input_type;
|
||||
result.data.raw = reinterpret_cast<char*>(const_cast<input_type*>(data));
|
||||
result.dims = dims;
|
||||
result.allocation_type = kTfLiteMemNone;
|
||||
result.bytes = ElementCount(*dims) * sizeof(input_type);
|
||||
result.is_variable = is_variable;
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace testing
|
||||
} // namespace tflite
|
||||
|
||||
#endif // TENSORFLOW_LITE_MICRO_TESTING_TEST_UTILS_H_
|
@ -14,7 +14,6 @@ limitations under the License.
|
||||
==============================================================================*/
|
||||
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
TF_LITE_MICRO_TESTS_BEGIN
|
||||
|
||||
|
@ -13,8 +13,8 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==============================================================================*/
|
||||
|
||||
#include "tensorflow/lite/micro/test_helpers.h"
|
||||
#include "tensorflow/lite/micro/testing/micro_test.h"
|
||||
#include "tensorflow/lite/micro/testing/test_utils.h"
|
||||
|
||||
TF_LITE_MICRO_TESTS_BEGIN
|
||||
|
||||
|
@ -224,7 +224,6 @@ tensorflow/lite/core/api/op_resolver.cc \
|
||||
tensorflow/lite/core/api/tensor_utils.cc \
|
||||
tensorflow/lite/kernels/internal/quantization_util.cc \
|
||||
tensorflow/lite/kernels/kernel_util.cc \
|
||||
tensorflow/lite/micro/testing/test_utils.cc \
|
||||
tensorflow/lite/schema/schema_utils.cc
|
||||
|
||||
MICROLITE_CC_SRCS := $(filter-out $(MICROLITE_TEST_SRCS), $(MICROLITE_CC_BASE_SRCS))
|
||||
|
Loading…
Reference in New Issue
Block a user