一、解析层的结构
首先我们通过分析官方的源码了解一下什么是层,它包含哪些结构,成员是啥等。
class Linear(nn.Module):
def __init__(self, input_features, output_features, bias=True):
super(Linear, self).__init__()
self.input_features = input_features
self.output_features = output_features
self.weight = nn.Parameter(torch.Tensor(output_features, input_features))
if bias:
self.bias = nn.Parameter(torch.Tensor(output_features))
else:
self.register_parameter('bias', None)
self.weight.data.uniform_(-0.1, 0.1)
if bias is not None:
self.bias.data.uniform_(-0.1, 0.1)
def forward(self, input):
return LinearFunction.apply(input, self.weight, self.bias)
上面的源码是官方的线性层实现方式。
参数含义:
- input_features是输入向量长度,output_features是输出向量的长度
- input调用该类时的输入
Linear层包含两个内部参数&