Realized PyBrain 是开源的,我的 Python 目录中有源代码。我打开了 C:\Python27\Lib\site-packages\pybrain\tools\shortcuts.py 文件。在这个文件中,我找到了 buildNetwork 函数并查看了它是如何添加 BiasUnit 的。相关代码在这里:
...
n = Network()
# linear input layer
n.addInputModule(LinearLayer(layers[0], name='in'))
# output layer of type 'outclass'
n.addOutputModule(opt['outclass'](layers[-1], name='out'))
if opt['bias']:
# add bias module and connection to out module, if desired
n.addModule(BiasUnit(name='bias'))
if opt['outputbias']:
n.addConnection(FullConnection(n['bias'], n['out']))
# arbitrary number of hidden layers of type 'hiddenclass'
for i, num in enumerate(layers[1:-1]):
layername = 'hidden%i' % i
n.addModule(opt['hiddenclass'](num, name=layername))
if opt['bias']:
# also connect all the layers with the bias
n.addConnection(FullConnection(n['bias'], n[layername]))
# connections between hidden layers
...
基本上,它看起来像是创建了一个 BiasUnit 并将其连接到每个隐藏层,也可以选择连接到输出层。