Pybrain基本网络组织问题

时间:2013-11-19 22:23:45

标签: python pybrain

我已经开始在Pybrain建立一些网络并且玩得很开心。我并不完全对文档感到兴奋所以我建立了一些小而简单的网络,并与它们一起玩,以辨别类结构和数据流是如何工作的。

我有几个问题:

设定:


n = FeedForwardNetwork()

inLayer = LinearLayer(1, name = 'Input node')
hiddenLayer = LinearLayer(1, name = 'Hidden node')
outLayer = LinearLayer(1, name = 'Output node')

n.addInputModule(inLayer)
n.addModule(hiddenLayer)
n.addOutputModule(outLayer)

1)执行“addInputModule”方法时,该层中的节点是否自动限制为一个输入?有没有办法有多个?

2)似乎我无法创建一个具有4个输入和1个输出的节点的NN ....看起来我必须为任何NN使用至少2个节点,因为权重与边缘相关(即连接)类。如果我有4个输入,我必须在InputModule中有4个节点....

Do I have this right?

3)在上面的代码片段中,每个层中每个节点的默认阈值函数是什么?如何显示T.F.是什么?

4)是否有任何文档描述了每种类方法的所有可用输入?

谢谢!

格雷格

1 个答案:

答案 0 :(得分:1)

你的问题是广泛的,并且由于这个原因而变得非常偏僻。尽管如此,我会尝试解决您的一些问题。

  • 您必须使用n.addConnection
  • 在图层之间添加连接
  • 一个节点代表一个输入,所以对于4个输入 - 1个输出NN,你需要一个带有4个神经元的输入层,见下文。请注意,1输出意味着这只是一个yes-no分类器,因为它可以预测样本是否属于一个类。 4个输入意味着NN使用4个特征(即4d空间中的向量)对样本进行分类

NN,有4个输入和1个输出:

from pybrain import structure

fnn  = structure.FeedForwardNetwork()
in_layer = LinearLayer(4, name = 'Input node')
out_layer = LinearLayer(1, name = 'Output node')

fnn.addInputModule(in_layer)
fnn.addOutputModule(out_layer)
fnn.addConnection(structure.FullConnection(in_layer, out_layer))