📜  PyBrain 中的 SoftmaxLayer 是什么?

📅  最后修改于: 2022-05-13 01:54:22.794000             🧑  作者: Mango

PyBrain 中的 SoftmaxLayer 是什么?

SoftmaxLayer从给定的输入数据集执行softmax 分布。我们可以使用 buildNetwork()函数构建具有输入层、隐藏层和输出层的网络,并且我们使用隐藏类作为 SoftmaxLayer 来检查数据集的 AND 和 NOR 表值。下面是在代码中导入 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)

输出: