Add Caffe importer example (#592)
authorDmitry Mozolev/AI Tools Lab /SRR/Engineer/삼성전자 <d.mozolev@samsung.com>
Thu, 12 Jul 2018 08:41:54 +0000 (11:41 +0300)
committerSergey Vostokov/AI Tools Lab /SRR/Staff Engineer/삼성전자 <s.vostokov@samsung.com>
Thu, 12 Jul 2018 08:41:54 +0000 (17:41 +0900)
It prints the model and creates Model IR (but doesn't use it).

Signed-off-by: Dmitry Mozolev <d.mozolev@samsung.com>
contrib/nnc/libs/frontend/caffe/CMakeLists.txt
contrib/nnc/libs/frontend/caffe/examples/model_dump.cpp [new file with mode: 0644]

index c78457f..50e6efb 100644 (file)
@@ -24,3 +24,6 @@ target_link_libraries(caffe_importer PUBLIC ${nn_import_common})
 target_link_libraries(caffe_importer PRIVATE nnc_core)
 target_link_libraries(caffe_importer PRIVATE nncc_core)
 target_link_libraries(caffe_importer PRIVATE nnc_plugin_core)
+
+add_nncc_example_executable(caffe_model_dumper examples/model_dump.cpp)
+nncc_target_link_libraries(caffe_model_dumper caffe_importer)
diff --git a/contrib/nnc/libs/frontend/caffe/examples/model_dump.cpp b/contrib/nnc/libs/frontend/caffe/examples/model_dump.cpp
new file mode 100644 (file)
index 0000000..d0200bb
--- /dev/null
@@ -0,0 +1,32 @@
+#include <iostream>
+
+#include "caffe_importer.h"
+
+int main(int argc, char** argv)
+{
+    std::string modelName;
+    if (argc > 1)
+    {
+        modelName = argv[1];
+    }
+    else
+    {
+        modelName = "mobilenet.caffemodel";
+    }
+
+    nncc::contrib::frontend::caffe::CaffeImporter importer{modelName};
+
+    bool success = importer.import();
+
+    if (success)
+    {
+        importer.dump();
+        importer.createIR();
+    }
+    else
+    {
+        std::cout << "Could not load model \"" << modelName << "\"" << std::endl;
+    }
+
+    return 0;
+}