线性变换参数可视化图
class LinearLayer(nn.Module):
def __init__(self, input_dim, output_dim):
super(LinearLayer, self).__init__()
self.weights = nn.Parameter(torch.Tensor(output_dim, input_dim))
self.bias = nn.Parameter(torch.Tensor(output_dim))
# 初始化权重和偏置项
self.reset_parameters()
def reset_parameters(self):
nn.init.xavier_uniform_(self.weights)
nn.init.constant_(self.bias, 0.1)
def forward(self, input_tensor):
output = torch.matmul(input_tensor, self.weights.t()) + self.bias
return output
另外,最近的一些感想,觉得神经网络更多像是一种将数据抽象成某个维度,从而转换到另一个空间进行处理的过程,本质是对特征的处理,很多方法和模型结构也的设计也都是在更好地去映射和捕捉特征。