Bilinear¶
- class paddle.nn.initializer. Bilinear [source]
-
This initializer can be used in transposed convolution operator to act as upsampling. Users can upsample a feature map with shape of (B, C, H, W) by any integer factor.
- Returns
-
Bilinear initializer instance objects.
Examples
>>> import math >>> import paddle >>> import paddle.nn as nn >>> from paddle.regularizer import L2Decay >>> factor = 2 >>> C = 2 >>> B = 8 >>> H = W = 32 >>> w_attr = paddle.ParamAttr(learning_rate=0., ... regularizer=L2Decay(0.), ... initializer=nn.initializer.Bilinear()) >>> data = paddle.rand([B, 3, H, W], dtype='float32') >>> conv_up = nn.Conv2DTranspose(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.
-
forward
(
var,
block=None
)
forward¶
-
Initialize the input tensor with Bilinear initialization.
- Parameters
-
var (Tensor) – Tensor that needs to be initialized.
block (Block, optional) – The block in which initialization ops should be added. Used in static graph only, default None.
- Returns
-
The initialization op