From 79dc909331cbc925649b77b512edb6fcd802b36e Mon Sep 17 00:00:00 2001 From: Ray2020BD <563755780@qq.com> Date: Tue, 29 Sep 2020 07:00:08 +0000 Subject: [PATCH 1/5] test=document_fix --- python/paddle/fluid/initializer.py | 46 ++++++++++++------------------ 1 file changed, 18 insertions(+), 28 deletions(-) diff --git a/python/paddle/fluid/initializer.py b/python/paddle/fluid/initializer.py index 7a92adf0a89dc..60a6df6638d57 100644 --- a/python/paddle/fluid/initializer.py +++ b/python/paddle/fluid/initializer.py @@ -729,36 +729,26 @@ class BilinearInitializer(Initializer): .. code-block:: python - import paddle.fluid as fluid + import numpy as np + import paddle + from paddle.regularizer import L2Decay import math + import paddle.nn as nn + + paddle.disable_static() factor = 2 - C = 2 - B = 8 - H = W = 32 - w_attr = fluid.param_attr.ParamAttr( - learning_rate=0., - regularizer=fluid.regularizer.L2Decay(0.), - initializer=fluid.initializer.Bilinear()) - x = fluid.data(name="data", shape=[B, 3, H, W], - dtype="float32") - conv_up = fluid.layers.conv2d_transpose( - input=x, - num_filters=C, - output_size=None, - filter_size=2 * factor - factor % 2, - padding=int(math.ceil((factor - 1) / 2.)), - stride=factor, - groups=C, - param_attr=w_attr, - bias_attr=False) - - Where, `num_filters=C` and `groups=C` means this is channel-wise transposed - convolution. The filter shape will be (C, 1, K, K) where K is `filer_size`, - This initializer will set a (K, K) interpolation kernel for every channel - of the filter identically. The resulting shape of the output feature map - will be (B, C, factor * H, factor * W). Note that the learning rate and the - weight decay are set to 0 in order to keep coefficient values of bilinear - interpolation unchanged during training. + w_attr = paddle.ParamAttr(learning_rate=0., + regularizer=L2Decay(0.), + initializer=nn.initializer.Bilinear()) + data = np.random.uniform(-1, 1, [30, 10, 32]).astype('float32') + data = paddle.to_tensor(data) + conv_up = nn.ConvTranspose2d(4, + 6, (3, 3), + padding=int( + math.ceil((factor - 1) / 2.)), + stride=factor, + weight_attr=w_attr, + bias_attr=False) """ From 2100b0839cd9128fd08ff9c7b269a256078f4f79 Mon Sep 17 00:00:00 2001 From: Ray2020BD <563755780@qq.com> Date: Tue, 29 Sep 2020 09:12:51 +0000 Subject: [PATCH 2/5] test=document_fix --- python/paddle/fluid/initializer.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/python/paddle/fluid/initializer.py b/python/paddle/fluid/initializer.py index 60a6df6638d57..c0cbdf5d2a995 100644 --- a/python/paddle/fluid/initializer.py +++ b/python/paddle/fluid/initializer.py @@ -729,7 +729,6 @@ class BilinearInitializer(Initializer): .. code-block:: python - import numpy as np import paddle from paddle.regularizer import L2Decay import math @@ -737,18 +736,31 @@ class BilinearInitializer(Initializer): paddle.disable_static() factor = 2 + C = 2 + B = 8 + H = W = 32 w_attr = paddle.ParamAttr(learning_rate=0., regularizer=L2Decay(0.), initializer=nn.initializer.Bilinear()) - data = np.random.uniform(-1, 1, [30, 10, 32]).astype('float32') + data = paddle.rand([B, 3, H, W], dtype='float32') data = paddle.to_tensor(data) - conv_up = nn.ConvTranspose2d(4, - 6, (3, 3), + conv_up = nn.ConvTranspose2d(3, + out_channels=C, + kernel_size=2 * factor - factor % 2, padding=int( math.ceil((factor - 1) / 2.)), stride=factor, weight_attr=w_attr, bias_attr=False) + x = conv_up(data) + + Where, `out_channels=C` and `groups=C` means this is channel-wise transposed + convolution. The filter shape will be (C, 1, K, K) where K is `kernel_size`, + This initializer will set a (K, K) interpolation kernel for every channel + of the filter identically. The resulting shape of the output feature map + will be (B, C, factor * H, factor * W). Note that the learning rate and the + weight decay are set to 0 in order to keep coefficient values of bilinear + interpolation unchanged during training. """ From 0cb184de8fb6ea91626afc2a3d4db958319c671d Mon Sep 17 00:00:00 2001 From: Ray2020BD <563755780@qq.com> Date: Tue, 29 Sep 2020 09:15:12 +0000 Subject: [PATCH 3/5] test=document_fix --- python/paddle/fluid/initializer.py | 1 - 1 file changed, 1 deletion(-) diff --git a/python/paddle/fluid/initializer.py b/python/paddle/fluid/initializer.py index c0cbdf5d2a995..2321fda89fd41 100644 --- a/python/paddle/fluid/initializer.py +++ b/python/paddle/fluid/initializer.py @@ -734,7 +734,6 @@ class BilinearInitializer(Initializer): import math import paddle.nn as nn - paddle.disable_static() factor = 2 C = 2 B = 8 From 0dbf2179cfe65175b1c0fa2f33f61bdec27ac1ac Mon Sep 17 00:00:00 2001 From: Ray2020BD <563755780@qq.com> Date: Tue, 29 Sep 2020 09:52:27 +0000 Subject: [PATCH 4/5] test=document_fix --- python/paddle/fluid/initializer.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/python/paddle/fluid/initializer.py b/python/paddle/fluid/initializer.py index 2321fda89fd41..649cdaea77ea9 100644 --- a/python/paddle/fluid/initializer.py +++ b/python/paddle/fluid/initializer.py @@ -729,11 +729,13 @@ class BilinearInitializer(Initializer): .. code-block:: python + import math + import paddle from paddle.regularizer import L2Decay - import math import paddle.nn as nn + #paddle.disable_static() factor = 2 C = 2 B = 8 @@ -742,7 +744,7 @@ class BilinearInitializer(Initializer): regularizer=L2Decay(0.), initializer=nn.initializer.Bilinear()) data = paddle.rand([B, 3, H, W], dtype='float32') - data = paddle.to_tensor(data) + #data = paddle.to_tensor(data) conv_up = nn.ConvTranspose2d(3, out_channels=C, kernel_size=2 * factor - factor % 2, From 25142e3f4b775ae951afb633270af134f2c44755 Mon Sep 17 00:00:00 2001 From: Ray2020BD <563755780@qq.com> Date: Tue, 29 Sep 2020 10:09:58 +0000 Subject: [PATCH 5/5] test=document_fix --- python/paddle/fluid/initializer.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/python/paddle/fluid/initializer.py b/python/paddle/fluid/initializer.py index 649cdaea77ea9..67c572d4988ce 100644 --- a/python/paddle/fluid/initializer.py +++ b/python/paddle/fluid/initializer.py @@ -732,10 +732,9 @@ class BilinearInitializer(Initializer): import math import paddle - from paddle.regularizer import L2Decay import paddle.nn as nn + from paddle.regularizer import L2Decay - #paddle.disable_static() factor = 2 C = 2 B = 8 @@ -744,7 +743,6 @@ class BilinearInitializer(Initializer): regularizer=L2Decay(0.), initializer=nn.initializer.Bilinear()) data = paddle.rand([B, 3, H, W], dtype='float32') - #data = paddle.to_tensor(data) conv_up = nn.ConvTranspose2d(3, out_channels=C, kernel_size=2 * factor - factor % 2,