[Tools] tool to convert pb file (binary) to pbtxt file (text) (#4788)
author윤현식/On-Device Lab(SR)/Principal Engineer/삼성전자 <hyunsik.yoon@samsung.com>
Thu, 21 Mar 2019 02:18:15 +0000 (11:18 +0900)
committer박세희/On-Device Lab(SR)/Principal Engineer/삼성전자 <saehie.park@samsung.com>
Thu, 21 Mar 2019 02:18:15 +0000 (11:18 +0900)
* [Tools] Convert pb file to pbtxt file

This tool converts frozen pb file in tensorflow to pbtxt text file.

Signed-off-by: Hyun Sik Yoon <hyunsik.yoon@samsung.com>
* remove common.py

* remove underbar from parameter

tools/pbfile_tool/convert_pb_to_pbtxt.py [new file with mode: 0644]

diff --git a/tools/pbfile_tool/convert_pb_to_pbtxt.py b/tools/pbfile_tool/convert_pb_to_pbtxt.py
new file mode 100644 (file)
index 0000000..28a3da4
--- /dev/null
@@ -0,0 +1,54 @@
+# 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.
+
+#
+# This tool converts frozen pb file in tensorflow to pbtxt text file
+#
+
+import os
+import argparse
+
+from tensorflow.python.platform import gfile
+import tensorflow as tf
+
+
+def convert(pb_path):
+
+    directory = os.path.dirname(pb_path)
+    filename = os.path.basename(pb_path)
+
+    with gfile.GFile(pb_path, 'rb') as f:
+        content = f.read()
+
+    graph_def = tf.GraphDef()
+    graph_def.ParseFromString(content)
+    tf.import_graph_def(graph_def, name='')
+
+    tf.train.write_graph(graph_def, directory, filename + '.pbtxt', as_text=True)
+
+    return os.path.join(directory, filename + '.pbtxt')
+
+
+if __name__ == "__main__":
+
+    parser = argparse.ArgumentParser(
+        description='convert pb (binary) file to pbtxt (text) file')
+    parser.add_argument("path", help="path of Tensorflow frozen model file in .pb format")
+
+    args = parser.parse_args()
+    pb_path = args.path
+
+    pbtxt_path = convert(pb_path)
+
+    print("converted: " + pbtxt_path)