PyBrain 中的 SoftmaxLayer 是什么?
SoftmaxLayer从给定的输入数据集执行softmax 分布。我们可以使用 buildNetwork()函数构建具有输入层、隐藏层和输出层的网络,并且我们使用隐藏类作为 SoftmaxLayer 来检查数据集的 AND 和 NOR 表值。下面是在代码中导入 SoftmaxLayer 和用法的语法。
Syntax:
Import SoftmaxLayer: from pybrain.structure import SoftmaxLayer
Usage in python code: net= buildNetwork(1, 2, 1, bias=True, hiddenclass=SoftmaxLayer)
示例 1:
- 在此示例中,我们使用 import 命令导入 SoftmaxLayer,以使用带有输入、隐藏和输出层的 buildNetwork() 创建网络。 W
- e 取一个隐藏类作为 SoftmaxLayer,现在使用 SupervisedDataSet() 给出输入和输出数据集的大小。
- 将样本数据集添加到 AND 表和 NOR 表。
- 然后使用 BackpropTrainer() 训练这个网络。
- 我们有 2500 次迭代,然后开始测试,我们可以看到错误、更正、最大值、错误等。
- 在这种情况下,我们在 AND 表中取的样本数据是 ((0,0), (1,)) 和 ((0,1),(0,)) 和 NOR 表是 ((0,0), (1,)) 和 (0,1),(0,))
Python3
from pybrain.tools.shortcuts import buildNetwork
from pybrain.structure import SoftmaxLayer
from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer
# two inputs, two hidden, and single output with hiddenlayer as Softmaxlayer
net = buildNetwork(2, 3, 1, bias=True, hiddenclass=SoftmaxLayer)
# size of inputs and outputs
gate_set = SupervisedDataSet(2, 1)
test_dataset = SupervisedDataSet(2, 1)
# AND truth table
gate_set.addSample((0, 0), (1,))
gate_set.addSample((0, 1), (0,))
# NOR truth table
test_dataset.addSample((0, 0), (1,))
test_dataset.addSample((0, 1), (0,))
#Train the network using net and gate_set.
backpr_tr = BackpropTrainer(net, gate_set)
# 2500 iteration
for i in range(1500):
backpr_tr.train()
# Testing....
backpr_tr.testOnData(dataset=test_dataset, verbose = True)
Python3
from pybrain.tools.shortcuts import buildNetwork
from pybrain.structure import SoftmaxLayer
from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer
# two inputs, two hidden, and single output
# with hiddenlayer as Softmaxlayer
net = buildNetwork(2, 3, 1, bias=True, hiddenclass=SoftmaxLayer)
# size of inputs and outputs
gate_set = SupervisedDataSet(2, 1)
test_dataset = SupervisedDataSet(2, 1)
# AND truth table
gate_set.addSample((0, 0), (0,))
gate_set.addSample((0, 1), (1,))
# NOR truth table
test_dataset.addSample((0, 0), (1,))
test_dataset.addSample((0, 1), (1,))
#Train the network using net and gate_set.
backpr_tr = BackpropTrainer(net, gate_set)
# 2500 iteration
for i in range(1500):
backpr_tr.train()
# Testing....
backpr_tr.testOnData(dataset=test_dataset, verbose = True)
输出:
示例 2:
在这个例子中,我们取 AND 表中的样本数据集是 ((0,0), (0,)) 和 ((0,1),(1,)) 和 NOR 表是 ((0,0), (1,)) 和 (0,1),(1,)) 然后开始训练,使用 2500 次迭代训练这个网络,最后开始测试。我们可以看到带有平均误差、最大误差、中值误差等的测试输出。
Python3
from pybrain.tools.shortcuts import buildNetwork
from pybrain.structure import SoftmaxLayer
from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer
# two inputs, two hidden, and single output
# with hiddenlayer as Softmaxlayer
net = buildNetwork(2, 3, 1, bias=True, hiddenclass=SoftmaxLayer)
# size of inputs and outputs
gate_set = SupervisedDataSet(2, 1)
test_dataset = SupervisedDataSet(2, 1)
# AND truth table
gate_set.addSample((0, 0), (0,))
gate_set.addSample((0, 1), (1,))
# NOR truth table
test_dataset.addSample((0, 0), (1,))
test_dataset.addSample((0, 1), (1,))
#Train the network using net and gate_set.
backpr_tr = BackpropTrainer(net, gate_set)
# 2500 iteration
for i in range(1500):
backpr_tr.train()
# Testing....
backpr_tr.testOnData(dataset=test_dataset, verbose = True)
输出: