Use*_*ser 6 python neural-network pybrain
遵循PyBrain文档,使用模块和连接构建网络,我正在逐步构建神经网络(与使用buildNetwork快捷方式相反).我正在构建一个简单的3层(输入,隐藏,输出)神经网络.如何正确添加偏置单元?
我猜我在构建一个BiasUnit模块:
b = BiasUnit(name='bias')
network.addModule(b)
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?我必须创建FullConnection对象吗?如果是这样,我应该连接什么?
Use*_*ser 10
已实现的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
...
Run Code Online (Sandbox Code Playgroud)
基本上它看起来像创建一个BiasUnit并将其连接到每个隐藏层,也可选择连接到输出层.
| 归档时间: |
|
| 查看次数: |
2291 次 |
| 最近记录: |