From 6675a852784302fa542da7312bdbf7255d2c14ea 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: Thu, 6 Dec 2018 10:59:11 +0900 Subject: [PATCH] [tfldump] dump inputs and outputs (#2522) * [tfldump] dump inputs and outputs This will add part to dump inputs and outputs of the Model Signed-off-by: SaeHie Park * remove local vars --- contrib/tfldump/src/Dump.cpp | 16 +++++++++++++++- contrib/tfldump/src/Read.cpp | 6 ++++++ contrib/tfldump/src/Read.h | 4 ++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/contrib/tfldump/src/Dump.cpp b/contrib/tfldump/src/Dump.cpp index 7046c53..cf9c428 100644 --- a/contrib/tfldump/src/Dump.cpp +++ b/contrib/tfldump/src/Dump.cpp @@ -204,7 +204,21 @@ void dump_model(std::ostream &os, const tflite::Model *model) os << std::endl; // dump network inputs/outputs - os << "Inputs/Outputs:" << std::endl; + os << "Inputs/Outputs: I(input)/O(output) T(tensor index) OperandName" << std::endl; + + for (const auto input : reader.inputs()) + { + auto tensor = tensors->Get(input); + std::string name = tflread::tensor_name(tensor); + os << "I T(" << input << ") " << name << std::endl; + } + + for (const auto output : reader.outputs()) + { + auto tensor = tensors->Get(output); + std::string name = tflread::tensor_name(tensor); + os << "O T(" << output << ") " << name << std::endl; + } } } // namespace tfldump diff --git a/contrib/tfldump/src/Read.cpp b/contrib/tfldump/src/Read.cpp index 5ad43ce..962d7d1 100644 --- a/contrib/tfldump/src/Read.cpp +++ b/contrib/tfldump/src/Read.cpp @@ -137,6 +137,9 @@ bool Reader::select_subgraph(uint32_t sgindex) _tensors = nullptr; _operators = nullptr; + _inputs.clear(); + _outputs.clear(); + if (_subgraphs->Length() <= sgindex) { assert(false); @@ -148,6 +151,9 @@ bool Reader::select_subgraph(uint32_t sgindex) _tensors = subgraph->tensors(); _operators = subgraph->operators(); + _inputs = as_index_vector(subgraph->inputs()); + _outputs = as_index_vector(subgraph->outputs()); + return true; } diff --git a/contrib/tfldump/src/Read.h b/contrib/tfldump/src/Read.h index 00e0096..3fffcd3 100644 --- a/contrib/tfldump/src/Read.h +++ b/contrib/tfldump/src/Read.h @@ -63,6 +63,8 @@ public: const TFliteBuffers_t *buffers() { return _buffers; } const TFliteTensors_t *tensors() { return _tensors; } const TFliteOperators_t *operators() { return _operators; } + const std::vector &inputs() const { return _inputs; } + const std::vector &outputs() const { return _outputs; } uint32_t num_subgraph() const { return _subgraphs->Length(); } @@ -80,6 +82,8 @@ private: const TFliteOperators_t *_operators; std::vector _op_codes; + std::vector _inputs; + std::vector _outputs; }; } // namespace tflread -- 2.7.4