0

我已经开始在 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)在上面的代码片段中,每一层中每个节点的默认阈值函数是什么?如何显示 TF 是什么?

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

谢谢!

格雷格

4

1 回答 1

1

您的问题很广泛,因此有点偏离主题。尽管如此,我会尝试解决您的一些问题。

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

具有 4 个输入和 1 个输出的 NN:

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))
于 2013-11-19T22:35:20.773 回答