From 1aae5aa057301f226b7bca744089ab37f14240a4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EB=B0=95=EC=84=B8=ED=9D=AC/=EB=8F=99=EC=9E=91=EC=A0=9C?= =?utf8?q?=EC=96=B4Lab=28SR=29/Principal=20Engineer/=EC=82=BC=EC=84=B1?= =?utf8?q?=EC=A0=84=EC=9E=90?= Date: Wed, 21 Nov 2018 11:51:21 +0900 Subject: [PATCH] [tflchef] Call tflchef from Driver (#2350) This will make Driver call tflchef tflite load and save functions Signed-off-by: SaeHie Park --- contrib/tflchef/tools/reverse/CMakeLists.txt | 1 + contrib/tflchef/tools/reverse/Driver.cpp | 34 ++++++++++++++++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/contrib/tflchef/tools/reverse/CMakeLists.txt b/contrib/tflchef/tools/reverse/CMakeLists.txt index f6bbcb3..63cb36c 100644 --- a/contrib/tflchef/tools/reverse/CMakeLists.txt +++ b/contrib/tflchef/tools/reverse/CMakeLists.txt @@ -1,2 +1,3 @@ add_executable(tflchef-reverse Driver.cpp) +target_link_libraries(tflchef-reverse tflchef_tflite) target_link_libraries(tflchef-reverse safemain) diff --git a/contrib/tflchef/tools/reverse/Driver.cpp b/contrib/tflchef/tools/reverse/Driver.cpp index d570db5..5497564 100644 --- a/contrib/tflchef/tools/reverse/Driver.cpp +++ b/contrib/tflchef/tools/reverse/Driver.cpp @@ -14,6 +14,10 @@ * limitations under the License. */ +#include +#include + +#include #include int entry(int argc, char **argv) @@ -26,9 +30,35 @@ int entry(int argc, char **argv) return 255; } - // TODO load tflite + // Load TF lite model from a tflite file + std::unique_ptr rawmodel = tflchef::load_tflite(argv[1]); + if (rawmodel == nullptr) + { + std::cerr << "ERROR: Failed to load tflite '" << argv[1] << "'" << std::endl; + return 255; + } + + const tflite::Model *tflmodel = rawmodel->model(); + if (tflmodel == nullptr) + { + std::cerr << "ERROR: Failed to load tflite '" << argv[1] << "'" << std::endl; + return 255; + } - // TODO store to recipe + // Generate ModelRecipe recipe + std::unique_ptr recipe = tflchef::generate_recipe(tflmodel); + if (recipe.get() == nullptr) + { + std::cerr << "ERROR: Failed to generate recipe" << std::endl; + return 255; + } + // Save to a file + bool result = tflchef::write_recipe(argv[2], recipe); + if (!result) + { + std::cerr << "ERROR: Failed to write to recipe '" << argv[2] << "'" << std::endl; + return 255; + } return 0; } -- 2.7.4