[nnc] Fixed caffe2 importer MIR operator names (#2683)
authorIvan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 <ivan.vagin@samsung.com>
Fri, 14 Dec 2018 19:25:40 +0000 (22:25 +0300)
committerEfimov Alexander/AI Tools Lab/./Samsung Electronics <a.efimov@samsung.com>
Fri, 14 Dec 2018 19:25:40 +0000 (22:25 +0300)
* Don't name any MIR operators, except for i/o
* Fixed default pooling stride size

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
contrib/nnc/include/passes/caffe2_frontend/caffe2_importer.h
contrib/nnc/passes/caffe2_frontend/caffe2_importer.cpp
contrib/nnc/passes/caffe2_frontend/caffe2_op_creator.cpp

index bcee736..7e8db0d 100644 (file)
@@ -114,11 +114,6 @@ private:
   * @brief Mark output MIR nodes
   */
   void setGraphOutputs();
-
-  /**
-  * @brief Set MIR node names
-  */
-  void setIrNodeNames();
 };
 
 } // namespace nnc
index 6f91b8b..537f7dd 100644 (file)
@@ -83,7 +83,6 @@ mir::Graph* Caffe2Importer::createIR() {
   for (auto& op : _net->op())
     createMIRNodesFromOp(op);
 
-  setIrNodeNames();
   setGraphOutputs();
 
   return _graph;
@@ -278,14 +277,10 @@ void Caffe2Importer::setGraphOutputs() {
   // For now, we assume that:
   //   - there is exactly one output;
   //   - the output is from the last layer.
+  _lastMIROp->setName("out");
   _graph->markOutput(_lastMIROp);
 }
 
-void Caffe2Importer::setIrNodeNames() {
-  for (auto& item : _blobNameToIODescriptor)
-    item.second.op->setName(item.first);
-}
-
 const std::map<std::string, SupportedCaffe2OpType> Caffe2Importer::_operatorTypes = {
         {"Add",             SupportedCaffe2OpType::add},
         {"AveragePool",     SupportedCaffe2OpType::averagePool},
index c6ab0c1..f77c76a 100644 (file)
@@ -216,7 +216,7 @@ Caffe2OpCreator::convertAveragePool(const std::vector<IODescriptor>& inputs,
                                     const OperatorDef& op) {
   Shape window_shape = getWindowShape(op, inputs);
 
-  int stride = getSingleArgument(op, "stride", 0);
+  int stride = getSingleArgument(op, "stride", 1);
   Shape strides = Shape({stride, stride});
 
   ops::PoolOp::PoolingType pool_type = ops::PoolOp::PoolingType::AVG;
@@ -307,7 +307,7 @@ std::vector<IODescriptor> Caffe2OpCreator::convertMaxPool(const std::vector<IODe
                                                           const OperatorDef& op) {
   Shape window_shape = getWindowShape(op, inputs);
 
-  int stride = getSingleArgument(op, "stride", 0);
+  int stride = getSingleArgument(op, "stride", 1);
   Shape strides = Shape({stride, stride});
 
   ops::PoolOp::PoolingType pool_type = ops::PoolOp::PoolingType::MAX;