summaryrefslogtreecommitdiff
path: root/compiler/circledump/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/circledump/README.md')
-rw-r--r--compiler/circledump/README.md71
1 files changed, 71 insertions, 0 deletions
diff --git a/compiler/circledump/README.md b/compiler/circledump/README.md
new file mode 100644
index 000000000..686e918ac
--- /dev/null
+++ b/compiler/circledump/README.md
@@ -0,0 +1,71 @@
+# circledump
+
+### What is this?
+
+circledump is a tool that dumps binary circle file into human readable text to console.
+
+circledump is implemented with C++ not python. We can do the same thing much easier
+with python but this tool doesn't need to install TensorFlow python package.
+
+Schema for FlatBuffer used is from TensorFlow v1.13.1 release.
+
+### Design philosophy
+
+Make the code simple.
+
+### To do
+
+- Print weight values other than uint8_t
+- Add more operators
+
+### How to use
+
+Command argument format:
+```
+circledump circle_file
+```
+
+Example output of dump `readme.circle` file
+```
+Dump: readme.circle
+
+Data Format:
+CHANNEL_LAST (NHWC for 2d, NDHWC for 3d data)
+
+Operator Codes: [order] OpCodeName (OpCode Enum)
+[0] CONV_2D (code: 3)
+
+Buffers: B(index) (length) values, if any
+B(0) (0)
+B(1) (8) 0x94 0x5b 0x95 0xbf 0x42 0xa4 0x52 0xbf ...
+B(2) (4) 0xcd 0xcc 0x8c 0x3f
+
+Operands: T(tensor index) TYPE (shape) B(buffer index) OperandName
+T(0) FLOAT32 (1, 3, 3, 2) B(0) ifm
+T(1) FLOAT32 (1, 1, 1, 2) B(1) ker
+T(2) FLOAT32 (1) B(2) bias
+T(3) FLOAT32 (1, 3, 3, 1) B(0) ofm
+
+Operators: O(operator index) OpCodeName
+ Option(values) ... <-- depending on OpCode
+ I T(tensor index) OperandName <-- as input
+ O T(tensor index) OperandName <-- as output
+O(0) CONV_2D
+ Padding(1) Stride.W(1) Stride.H(1) Activation(0)
+ I T(0) ifm
+ I T(1) ker
+ I T(2) bias
+ O T(3) ofm
+
+Inputs/Outputs: I(input)/O(output) T(tensor index) OperandName
+I T(0) ifm
+I T(1) ker
+O T(3) ofm
+```
+
+### Dependency
+
+- mio-circle
+- safemain
+- stdex
+- FlatBuffers