From 56615e84671679785b5828a127ccee158aa6cccd Mon Sep 17 00:00:00 2001 From: chinakook Date: Fri, 19 Jan 2018 15:00:46 +0800 Subject: [PATCH 1/8] fix print_summary bug and add groups of convolution 1. fix "int(node["attrs"]["no_bias"])" bug 2. add groups of convolution param calculation --- python/mxnet/visualization.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/python/mxnet/visualization.py b/python/mxnet/visualization.py index 8c4cc3b920d7..c79be3f161c1 100644 --- a/python/mxnet/visualization.py +++ b/python/mxnet/visualization.py @@ -134,17 +134,17 @@ def print_layer_summary(node, out_shape): pre_filter = pre_filter + int(shape[0]) cur_param = 0 if op == 'Convolution': - if ("no_bias" in node["attrs"]) and int(node["attrs"]["no_bias"]): - cur_param = pre_filter * int(node["attrs"]["num_filter"]) + if ("no_bias" in node["attrs"]) and node["attrs"]["no_bias"] == 'True': + cur_param = (pre_filter * int(node["attrs"]["num_filter"])) // int(node["attrs"]["num_group"]) for k in _str2tuple(node["attrs"]["kernel"]): cur_param *= int(k) else: - cur_param = pre_filter * int(node["attrs"]["num_filter"]) + cur_param = (pre_filter * int(node["attrs"]["num_filter"])) // int(node["attrs"]["num_group"]) for k in _str2tuple(node["attrs"]["kernel"]): cur_param *= int(k) cur_param += int(node["attrs"]["num_filter"]) elif op == 'FullyConnected': - if ("no_bias" in node["attrs"]) and int(node["attrs"]["no_bias"]): + if ("no_bias" in node["attrs"]) and node["attrs"]["no_bias"] == 'True': cur_param = pre_filter * (int(node["attrs"]["num_hidden"])) else: cur_param = (pre_filter+1) * (int(node["attrs"]["num_hidden"])) From 34294b103c03b3cad02f156f3346086932bf058d Mon Sep 17 00:00:00 2001 From: chinakook Date: Fri, 19 Jan 2018 19:44:04 +0800 Subject: [PATCH 2/8] Update visualization.py lint --- python/mxnet/visualization.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/python/mxnet/visualization.py b/python/mxnet/visualization.py index c79be3f161c1..07cc388505dd 100644 --- a/python/mxnet/visualization.py +++ b/python/mxnet/visualization.py @@ -135,11 +135,13 @@ def print_layer_summary(node, out_shape): cur_param = 0 if op == 'Convolution': if ("no_bias" in node["attrs"]) and node["attrs"]["no_bias"] == 'True': - cur_param = (pre_filter * int(node["attrs"]["num_filter"])) // int(node["attrs"]["num_group"]) + cur_param = (pre_filter * int(node["attrs"]["num_filter"])) \ + // int(node["attrs"]["num_group"]) for k in _str2tuple(node["attrs"]["kernel"]): cur_param *= int(k) else: - cur_param = (pre_filter * int(node["attrs"]["num_filter"])) // int(node["attrs"]["num_group"]) + cur_param = (pre_filter * int(node["attrs"]["num_filter"])) \ + // int(node["attrs"]["num_group"]) for k in _str2tuple(node["attrs"]["kernel"]): cur_param *= int(k) cur_param += int(node["attrs"]["num_filter"]) From 50f0c4ccf3ebcf1d9f014f39b67dd4c8f28eda80 Mon Sep 17 00:00:00 2001 From: chinakook Date: Mon, 22 Jan 2018 10:18:30 +0800 Subject: [PATCH 3/8] Update visualization.py --- python/mxnet/visualization.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/python/mxnet/visualization.py b/python/mxnet/visualization.py index 07cc388505dd..c175997c9107 100644 --- a/python/mxnet/visualization.py +++ b/python/mxnet/visualization.py @@ -135,13 +135,17 @@ def print_layer_summary(node, out_shape): cur_param = 0 if op == 'Convolution': if ("no_bias" in node["attrs"]) and node["attrs"]["no_bias"] == 'True': + num_group = int(node["attrs"]["num_group"]) if \ + ("num_group" in node["attrs"]) else 1 cur_param = (pre_filter * int(node["attrs"]["num_filter"])) \ - // int(node["attrs"]["num_group"]) + // num_group for k in _str2tuple(node["attrs"]["kernel"]): cur_param *= int(k) else: + num_group = int(node["attrs"]["num_group"]) if \ + ("num_group" in node["attrs"]) else 1 cur_param = (pre_filter * int(node["attrs"]["num_filter"])) \ - // int(node["attrs"]["num_group"]) + // num_group for k in _str2tuple(node["attrs"]["kernel"]): cur_param *= int(k) cur_param += int(node["attrs"]["num_filter"]) From ff3a869677cdd5bd674854c0b384a9893d2fa5cd Mon Sep 17 00:00:00 2001 From: chinakook Date: Mon, 5 Feb 2018 09:50:48 +0800 Subject: [PATCH 4/8] Update visualization.py --- python/mxnet/visualization.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/python/mxnet/visualization.py b/python/mxnet/visualization.py index c175997c9107..54f59b4aeb7d 100644 --- a/python/mxnet/visualization.py +++ b/python/mxnet/visualization.py @@ -134,26 +134,26 @@ def print_layer_summary(node, out_shape): pre_filter = pre_filter + int(shape[0]) cur_param = 0 if op == 'Convolution': - if ("no_bias" in node["attrs"]) and node["attrs"]["no_bias"] == 'True': + if "no_bias" in node["attrs"] and bool(node["attrs"]["no_bias"]): num_group = int(node["attrs"]["num_group"]) if \ - ("num_group" in node["attrs"]) else 1 - cur_param = (pre_filter * int(node["attrs"]["num_filter"])) \ + "num_group" in node["attrs"] else 1 + cur_param = pre_filter * int(node["attrs"]["num_filter"]) \ // num_group for k in _str2tuple(node["attrs"]["kernel"]): cur_param *= int(k) else: num_group = int(node["attrs"]["num_group"]) if \ - ("num_group" in node["attrs"]) else 1 - cur_param = (pre_filter * int(node["attrs"]["num_filter"])) \ + "num_group" in node["attrs"] else 1 + cur_param = pre_filter * int(node["attrs"]["num_filter"]) \ // num_group for k in _str2tuple(node["attrs"]["kernel"]): cur_param *= int(k) cur_param += int(node["attrs"]["num_filter"]) elif op == 'FullyConnected': - if ("no_bias" in node["attrs"]) and node["attrs"]["no_bias"] == 'True': - cur_param = pre_filter * (int(node["attrs"]["num_hidden"])) + if ("no_bias" in node["attrs"]) and bool(node["attrs"]["no_bias"]): + cur_param = pre_filter * int(node["attrs"]["num_hidden"]) else: - cur_param = (pre_filter+1) * (int(node["attrs"]["num_hidden"])) + cur_param = (pre_filter+1) * int(node["attrs"]["num_hidden"]) elif op == 'BatchNorm': key = node["name"] + "_output" if show_shape: From 95811c1c076c2943ffcc27b5200bb287490dc273 Mon Sep 17 00:00:00 2001 From: chinakook Date: Wed, 7 Feb 2018 09:32:40 +0800 Subject: [PATCH 5/8] Update visualization.py --- python/mxnet/visualization.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/mxnet/visualization.py b/python/mxnet/visualization.py index 54f59b4aeb7d..ba3711e65a20 100644 --- a/python/mxnet/visualization.py +++ b/python/mxnet/visualization.py @@ -134,7 +134,7 @@ def print_layer_summary(node, out_shape): pre_filter = pre_filter + int(shape[0]) cur_param = 0 if op == 'Convolution': - if "no_bias" in node["attrs"] and bool(node["attrs"]["no_bias"]): + if "no_bias" in node["attrs"] and eval(node["attrs"]["no_bias"]): num_group = int(node["attrs"]["num_group"]) if \ "num_group" in node["attrs"] else 1 cur_param = pre_filter * int(node["attrs"]["num_filter"]) \ @@ -150,7 +150,7 @@ def print_layer_summary(node, out_shape): cur_param *= int(k) cur_param += int(node["attrs"]["num_filter"]) elif op == 'FullyConnected': - if ("no_bias" in node["attrs"]) and bool(node["attrs"]["no_bias"]): + if ("no_bias" in node["attrs"]) and eval(node["attrs"]["no_bias"]): cur_param = pre_filter * int(node["attrs"]["num_hidden"]) else: cur_param = (pre_filter+1) * int(node["attrs"]["num_hidden"]) From 4d36fea40c4430bf54bd852ec1c1c23b94093ae7 Mon Sep 17 00:00:00 2001 From: chinakook Date: Thu, 8 Feb 2018 09:19:10 +0800 Subject: [PATCH 6/8] Update visualization.py --- python/mxnet/visualization.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/mxnet/visualization.py b/python/mxnet/visualization.py index ba3711e65a20..26f578000a04 100644 --- a/python/mxnet/visualization.py +++ b/python/mxnet/visualization.py @@ -134,7 +134,7 @@ def print_layer_summary(node, out_shape): pre_filter = pre_filter + int(shape[0]) cur_param = 0 if op == 'Convolution': - if "no_bias" in node["attrs"] and eval(node["attrs"]["no_bias"]): + if "no_bias" in node["attrs"] and node["attrs"]["no_bias"] == 'True': num_group = int(node["attrs"]["num_group"]) if \ "num_group" in node["attrs"] else 1 cur_param = pre_filter * int(node["attrs"]["num_filter"]) \ @@ -150,7 +150,7 @@ def print_layer_summary(node, out_shape): cur_param *= int(k) cur_param += int(node["attrs"]["num_filter"]) elif op == 'FullyConnected': - if ("no_bias" in node["attrs"]) and eval(node["attrs"]["no_bias"]): + if "no_bias" in node["attrs"] and node["attrs"]["no_bias"] == 'True': cur_param = pre_filter * int(node["attrs"]["num_hidden"]) else: cur_param = (pre_filter+1) * int(node["attrs"]["num_hidden"]) From 9bb2573b22cd1916bf812b7e8b0a8d999f5713ca Mon Sep 17 00:00:00 2001 From: chinakook Date: Sat, 17 Feb 2018 20:28:28 +0800 Subject: [PATCH 7/8] Update visualization.py --- python/mxnet/visualization.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/mxnet/visualization.py b/python/mxnet/visualization.py index 26f578000a04..7ec84a96802b 100644 --- a/python/mxnet/visualization.py +++ b/python/mxnet/visualization.py @@ -135,14 +135,14 @@ def print_layer_summary(node, out_shape): cur_param = 0 if op == 'Convolution': if "no_bias" in node["attrs"] and node["attrs"]["no_bias"] == 'True': - num_group = int(node["attrs"]["num_group"]) if \ + num_group = int(node['attrs'].get('num_group', '1')) if \ "num_group" in node["attrs"] else 1 cur_param = pre_filter * int(node["attrs"]["num_filter"]) \ // num_group for k in _str2tuple(node["attrs"]["kernel"]): cur_param *= int(k) else: - num_group = int(node["attrs"]["num_group"]) if \ + num_group = int(node['attrs'].get('num_group', '1')) if \ "num_group" in node["attrs"] else 1 cur_param = pre_filter * int(node["attrs"]["num_filter"]) \ // num_group From 52624d4b3ee0561eb7d0b0b1258a737cd09fe30e Mon Sep 17 00:00:00 2001 From: chinakook Date: Sun, 18 Feb 2018 08:38:35 +0800 Subject: [PATCH 8/8] Update visualization.py --- python/mxnet/visualization.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/python/mxnet/visualization.py b/python/mxnet/visualization.py index 7ec84a96802b..47b712c872c3 100644 --- a/python/mxnet/visualization.py +++ b/python/mxnet/visualization.py @@ -135,15 +135,13 @@ def print_layer_summary(node, out_shape): cur_param = 0 if op == 'Convolution': if "no_bias" in node["attrs"] and node["attrs"]["no_bias"] == 'True': - num_group = int(node['attrs'].get('num_group', '1')) if \ - "num_group" in node["attrs"] else 1 + num_group = int(node['attrs'].get('num_group', '1')) cur_param = pre_filter * int(node["attrs"]["num_filter"]) \ // num_group for k in _str2tuple(node["attrs"]["kernel"]): cur_param *= int(k) else: - num_group = int(node['attrs'].get('num_group', '1')) if \ - "num_group" in node["attrs"] else 1 + num_group = int(node['attrs'].get('num_group', '1')) cur_param = pre_filter * int(node["attrs"]["num_filter"]) \ // num_group for k in _str2tuple(node["attrs"]["kernel"]):