pytorch-如何提取MLP网络的特征(权重,偏差,节点数,隐藏层)?

时间:2019-10-03 16:06:38

标签: python machine-learning neural-network artificial-intelligence pytorch

我想从pytorch内置的MLP /神经网络中提取权重,偏差,节点数和隐藏层数。我想知道是否有人可以指出正确的方向?

非常感谢,

最大

1 个答案:

答案 0 :(得分:1)

是的,我们可以通过首先创建一个简单的网络来做您想要做的事情:

input_dim = 400
hidden_dim = 512

net = nn.Sequential(nn.Linear(input_dim, hidden_dim),
                      nn.Sigmoid())

print(net)

打印网络时,我们了解层数,节点数(out_features)以及许多其他详细信息:

Sequential(
  (0): Linear(in_features=400, out_features=512, bias=True)
  (1): Sigmoid()
)

然后,如果要加载每个参数的特定值,也可以打印该值

model = Net(400, 512,10)

bias = model.fc1.bias

print(bias)

输出为:

tensor([ 3.4078e-02,  3.1537e-02,  3.0819e-02,  2.6163e-03,  2.1002e-03,
         4.6842e-05, -1.6454e-02, -2.9456e-02,  2.0646e-02, -3.7626e-02,
         3.5531e-02,  4.7748e-02, -4.6566e-02, -1.3317e-02, -4.6593e-02,
        -8.9996e-03, -2.6568e-02, -2.8191e-02, -1.9806e-02,  4.9720e-02,
        ---------------------------------------------------------------
        -4.6214e-02, -3.2799e-02, -3.3605e-02, -4.9720e-02, -1.0293e-02,
         3.2559e-03, -6.6590e-03, -1.2456e-02, -4.4547e-02,  4.2101e-02,
        -2.4981e-02, -3.6840e-03], requires_grad=True)

希望有帮助