diff options
author | Chunseok Lee <chunseok.lee@samsung.com> | 2020-10-29 13:12:50 +0900 |
---|---|---|
committer | Chunseok Lee <chunseok.lee@samsung.com> | 2020-10-29 13:12:50 +0900 |
commit | d6b371e095d737922187a518b8faba1ef6f3a2b1 (patch) | |
tree | 9d90c09c887b5111389dbedf924f59206411cd5a /compiler/tfl-inspect/src/Reader.cpp | |
parent | c55f8a6db48cda9d3a78048338b7f18c4cca62b8 (diff) | |
download | nnfw-d6b371e095d737922187a518b8faba1ef6f3a2b1.tar.gz nnfw-d6b371e095d737922187a518b8faba1ef6f3a2b1.tar.bz2 nnfw-d6b371e095d737922187a518b8faba1ef6f3a2b1.zip |
Imported Upstream version 0.4upstream/0.4
Diffstat (limited to 'compiler/tfl-inspect/src/Reader.cpp')
-rw-r--r-- | compiler/tfl-inspect/src/Reader.cpp | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/compiler/tfl-inspect/src/Reader.cpp b/compiler/tfl-inspect/src/Reader.cpp deleted file mode 100644 index 5be289446..000000000 --- a/compiler/tfl-inspect/src/Reader.cpp +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright (c) 2019 Samsung Electronics Co., Ltd. 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 "Reader.h" - -#include <sstream> -#include <string> - -namespace tflinspect -{ - -bool is_valid(const tflite::OperatorCode *opcode) -{ - tflite::BuiltinOperator code = opcode->builtin_code(); - return (tflite::BuiltinOperator_MIN <= code && code <= tflite::BuiltinOperator_MAX); -} - -bool is_custom(const tflite::OperatorCode *opcode) -{ - tflite::BuiltinOperator code = opcode->builtin_code(); - return (code == tflite::BuiltinOperator_CUSTOM); -} - -std::string opcode_name(const tflite::OperatorCode *opcode) -{ - assert(opcode); - - if (!is_valid(opcode)) - { - std::ostringstream oss; - oss << "(invalid)"; - return oss.str(); - } - - if (is_custom(opcode)) - { - if (!opcode->custom_code()) - return "(invalid custom)"; - - std::string custom_op = "CUSTOM("; - custom_op += opcode->custom_code()->c_str(); - custom_op += ")"; - return custom_op; - } - - tflite::BuiltinOperator code = opcode->builtin_code(); - return tflite::EnumNameBuiltinOperator(code); -} - -const char *tensor_type(const tflite::Tensor *tensor) -{ - return tflite::EnumNameTensorType(tensor->type()); -} - -const char *tensor_name(const tflite::Tensor *tensor) -{ - static const char *kEmptyTensorName = "(noname)"; - - auto name = tensor->name(); - if (name) - return name->c_str(); - - return kEmptyTensorName; -} - -Reader::Reader(const tflite::Model *model) -{ - _subgraphs = model->subgraphs(); - _buffers = model->buffers(); - - auto opcodes = model->operator_codes(); - for (const ::tflite::OperatorCode *opcode : *opcodes) - { - _op_codes.push_back(opcode); - } -} - -size_t Reader::buffer_info(uint32_t buf_idx, const uint8_t **buff_data) -{ - if (buff_data != nullptr) - { - *buff_data = nullptr; - } - - if (buf_idx == 0) - return 0; - - if (auto *buffer = (*_buffers)[buf_idx]) - { - if (auto *array = buffer->data()) - { - if (size_t size = array->size()) - { - if (buff_data != nullptr) - { - *buff_data = reinterpret_cast<const uint8_t *>(array->data()); - } - return size; - } - } - } - - return 0; -} - -tflite::BuiltinOperator Reader::builtin_code(const tflite::Operator *op) const -{ - uint32_t index = op->opcode_index(); - assert(index < _op_codes.size()); - const tflite::OperatorCode *opcode = _op_codes.at(index); - - return opcode->builtin_code(); -} - -std::string Reader::opcode_name(const tflite::Operator *op) const -{ - uint32_t index = op->opcode_index(); - assert(index < _op_codes.size()); - const tflite::OperatorCode *opcode = _op_codes.at(index); - - if (!is_valid(opcode)) - { - std::ostringstream oss; - oss << "(invalid: " << index << ")"; - return oss.str(); - } - - return tflinspect::opcode_name(opcode); -} - -bool Reader::select_subgraph(uint32_t sgindex) -{ - _tensors = nullptr; - _operators = nullptr; - - _inputs.clear(); - _outputs.clear(); - - if (_subgraphs->Length() <= sgindex) - { - assert(false); - return false; - } - - const tflite::SubGraph *subgraph = (*_subgraphs)[sgindex]; - - _tensors = subgraph->tensors(); - _operators = subgraph->operators(); - - _inputs = as_index_vector(subgraph->inputs()); - _outputs = as_index_vector(subgraph->outputs()); - - return true; -} - -} // namespace tflinspect |