1

有没有一种简单的方法来显示我输入到使用神经实验室开发的人工神经网络的每个属性的偏差或权重,这些属性已经被训练过?

4

1 回答 1

1

是的,您可以看到所有图层的权重和偏差。通过使用

net.layers[i].np['w']用于重量

net.layers[i].np['b']偏见

要自己手动更改它们,您只需使用[:]添加到末尾并将它们设置为 numpy 数组。

这是我在具有 3 层(1 个输入层、1 个隐藏层和 1 个输出层)的简单网络上使用的示例测试代码。

import neurolab as nl
import numpy as np

net = nl.net.newff([[0,1]] * 3, [4,2])

net.save("test.net")

net = nl.load("test.net")
# show layer weights and biases
for i in range(0,len(net.layers)):
    print "Net layer", i
    print net.layers[i].np['w']
    print "Net bias", i
    print net.layers[i].np['b']

#try setting layer weights
net.layers[0].np['w'][:] = np.array ([[0,1,2],  
                                     [3,4,5],  
                                     [4,5,6],  
                                     [6,7,8]]
                                     )


# show layer weights and biases 
for i in range(0,len(net.layers)):
    print "Net layer", i
    print net.layers[i].np['w']
    print "Net bias", i
    print net.layers[i].np['b']
于 2016-06-02T23:57:42.447 回答