nn.PixleShuffle(upscale_factor)
可以实现输入的reshape:
也就是说,将多通道的信息进行融合,实现H,W的扩大。
nn.Linear(in_features, out_features)
实现线性变换操作:
对应公式:torch.nn.``Linear
(in_features, out_features, bias=True)
- 其产生的可训练参数shape为:(out_features, in_features);
- 其参数默认初始化为:
- 故:线性变换操作对应的输入为2维或者3维;
样例:
>>> m = nn.Linear(20, 30)
>>> input = torch.randn(128, 20)
>>> output = m(input)
>>> print(output.size())
torch.Size([128, 30])
# example 2.0
>>> m = nn.Linear(20, 30)
>>> input = torch.randn(128, 30, 20)
>>> output = m(input)
>>> print(output.size())
torch.Size([128, 30, 30])
nn.LayerNorm
参数:normalized_shape, eps=1e-05, elementwise_affine=True, device=None, dtype=None
其中 normalized_shape 就是进行归一化的维度(从后往前的顺序,比如输入为 N,C,H,W,你输入整数就必须是 W 最后一个维度,输入两个维度就必须是 [H, W] ),也是可学习参数(weight 和 bias)的 shape
nn.BatchNorm
参数:num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True, device=None, dtype=None
其中 num_features 就是可学习参数(weight 和 bias)的 shape 与特征数量对应;也就是说 BN 是对每一个特征进行归一化的。