[enco] Implement Caffe model import helpers (#1144)
author박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Thu, 23 Aug 2018 04:05:59 +0000 (13:05 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Thu, 23 Aug 2018 04:05:59 +0000 (13:05 +0900)
This commit implements 'from_txt' and 'from_bin' helper functions that
constructs caffe NetParameter from textual/binary input stream.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
contrib/enco/frontend/caffe/src/Importer.cpp [new file with mode: 0644]
contrib/enco/frontend/caffe/src/Importer.h [new file with mode: 0644]

diff --git a/contrib/enco/frontend/caffe/src/Importer.cpp b/contrib/enco/frontend/caffe/src/Importer.cpp
new file mode 100644 (file)
index 0000000..79dd41c
--- /dev/null
@@ -0,0 +1,30 @@
+#include "Importer.h"
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/io/zero_copy_stream_impl.h>
+#include <google/protobuf/text_format.h>
+
+bool from_txt(std::istream &is, ::caffe::NetParameter &param)
+{
+  google::protobuf::io::IstreamInputStream iis{&is};
+
+  if (!google::protobuf::TextFormat::Parse(&iis, &param))
+  {
+    return false;
+  }
+
+  return true;
+}
+
+bool from_bin(std::istream &is, ::caffe::NetParameter &param)
+{
+  google::protobuf::io::IstreamInputStream iis{&is};
+  google::protobuf::io::CodedInputStream cis{&iis};
+
+  if (!param.ParseFromCodedStream(&cis))
+  {
+    return false;
+  }
+
+  return true;
+}
diff --git a/contrib/enco/frontend/caffe/src/Importer.h b/contrib/enco/frontend/caffe/src/Importer.h
new file mode 100644 (file)
index 0000000..f0caea3
--- /dev/null
@@ -0,0 +1,11 @@
+#ifndef __IMPORTER_H__
+#define __IMPORTER_H__
+
+#include <caffe/proto/caffe.pb.h>
+
+#include <istream>
+
+bool from_txt(std::istream &is, ::caffe::NetParameter &param);
+bool from_bin(std::istream &is, ::caffe::NetParameter &param);
+
+#endif // __IMPORTER_H__