From: 박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 Date: Fri, 1 Jun 2018 06:14:34 +0000 (+0900) Subject: [nnapi_test] Support int32 input generation (#1498) X-Git-Tag: 0.2~731 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a405e2b968371ecdbec9d183aefc49dbeb979a30;p=platform%2Fcore%2Fml%2Fnnfw.git [nnapi_test] Support int32 input generation (#1498) With this commit, nnapi_test is able to generate int32 input tensors. Note that random generation is not supported, yet. Signed-off-by: Jonghyun Park --- diff --git a/libs/support/tflite/src/Diff.cpp b/libs/support/tflite/src/Diff.cpp index 22c4235..75616ed 100644 --- a/libs/support/tflite/src/Diff.cpp +++ b/libs/support/tflite/src/Diff.cpp @@ -202,6 +202,27 @@ int RandomTestRunner::run(const nnfw::support::tflite::interp::Builder &builder) assert(pure->inputs() == nnapi->inputs()); + // Generate singed 32-bit integer (s32) input + auto s32gen = [&](int id, ::tflite::Interpreter *pure, ::tflite::Interpreter *nnapi) { + assert(pure->tensor(id)->type == kTfLiteInt32); + assert(nnapi->tensor(id)->type == kTfLiteInt32); + + auto pure_view = nnfw::support::tflite::TensorView::make(*pure, id); + auto nnapi_view = nnfw::support::tflite::TensorView::make(*nnapi, id); + + assert(pure_view.shape() == nnapi_view.shape()); + + int32_t value = 0; + + nnfw::util::tensor::iterate(pure_view.shape()) << [&](const nnfw::util::tensor::Index &ind) { + // TODO Generate random values + ++value; + + pure_view.at(ind) = value; + nnapi_view.at(ind) = value; + }; + }; + auto floatgen = [&](int id, ::tflite::Interpreter *pure, ::tflite::Interpreter *nnapi) { assert(pure->tensor(id)->type == kTfLiteFloat32); assert(nnapi->tensor(id)->type == kTfLiteFloat32); @@ -229,6 +250,11 @@ int RandomTestRunner::run(const nnfw::support::tflite::interp::Builder &builder) assert(pure->tensor(id)->type == nnapi->tensor(id)->type); switch (pure->tensor(id)->type) { + case kTfLiteInt32: + { + s32gen(id, pure.get(), nnapi.get()); + break; + } case kTfLiteFloat32: { floatgen(id, pure.get(), nnapi.get());