From: Сергей Баранников/AI Tools Lab /SRR/Engineer/삼성전자 Date: Thu, 22 Aug 2019 12:44:38 +0000 (+0900) Subject: [mir_tflite] Inherit tensor names (#6854) X-Git-Tag: accepted/tizen/unified/20190903.052428~190 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a11733ff52448fecca3550e785234ba75d4b0d99;p=platform%2Fcore%2Fml%2Fnnfw.git [mir_tflite] Inherit tensor names (#6854) Set `Operation::Output`s names based on model tensor names. Signed-off-by: Sergei Barannikov --- diff --git a/compiler/mir-tflite-importer/tflite_importer.cpp b/compiler/mir-tflite-importer/tflite_importer.cpp index 284db5a..66a80da 100644 --- a/compiler/mir-tflite-importer/tflite_importer.cpp +++ b/compiler/mir-tflite-importer/tflite_importer.cpp @@ -158,7 +158,7 @@ void TfliteImporter::walkSubGraph(const SubGraph *s) for (auto i : *s->inputs()) { - const Tensor *t = (*s->tensors())[i]; + const Tensor *t = (*_tensors)[i]; mir::Shape input_shape(t->shape()->size()); for (int dim = 0; dim < t->shape()->size(); ++dim) @@ -166,8 +166,11 @@ void TfliteImporter::walkSubGraph(const SubGraph *s) input_shape.dim(dim) = t->shape()->Get(dim); } - auto input = _graph->create(t->name()->c_str(), input_shape); - _tensorMap[i] = input->getOutput(0); + auto input = _graph->create(t->name()->c_str(), input_shape)->getOutput(0); + + input->setName(t->name()->c_str()); + assert(_tensorMap.find(i) == _tensorMap.cend()); + _tensorMap[i] = input; } for (auto op : *(s->operators())) @@ -282,7 +285,11 @@ void TfliteImporter::walkOperator(const Operator *op) assert(outputs.size() == op->outputs()->size()); for (size_t i = 0; i < op->outputs()->size(); ++i) { - int32_t tensor_index = (*op->outputs())[i]; + const int32_t tensor_index = (*op->outputs())[i]; + const Tensor *tensor = (*_tensors)[tensor_index]; + + outputs[i]->setName(tensor->name()->c_str()); + assert(_tensorMap.find(tensor_index) == _tensorMap.cend()); _tensorMap[tensor_index] = outputs[i]; } } diff --git a/compiler/mir-tflite-importer/tflite_importer.h b/compiler/mir-tflite-importer/tflite_importer.h index 2df5e5f..e235096 100644 --- a/compiler/mir-tflite-importer/tflite_importer.h +++ b/compiler/mir-tflite-importer/tflite_importer.h @@ -57,6 +57,7 @@ private: std::vector _graphOutputs; // Maps TFLite tensors indices to corresponding MIR operation outputs. + // FIXME Can the same id represent different tensors in different subgraphs? std::map _tensorMap; void import();