📅  最后修改于: 2020-12-10 05:16:53             🧑  作者: Mango
递归网络与前馈网络相同,只是区别在于您需要记住每一步的数据。每一步的历史都必须保存。
我们将学习如何-
要创建循环网络,我们将使用RecurrentNetwork类,如下所示:
from pybrain.structure import RecurrentNetwork
recurrentn = RecurrentNetwork()
print(recurrentn)
C:\pybrain\pybrain\src>python rn.py
RecurrentNetwork-0
Modules:
[]
Connections:
[]
Recurrent Connections:
[]
我们可以看到循环网络的一个名为“循环连接”的新连接。目前没有可用数据。
现在让我们创建图层并添加到模块并创建连接。
我们将创建图层,即输入,隐藏和输出。图层将添加到输入和输出模块。接下来,我们将创建输入到隐藏的连接,隐藏到输出以及隐藏到隐藏之间的循环连接。
这是带有模块和连接的循环网络的代码。
from pybrain.structure import RecurrentNetwork
from pybrain.structure import LinearLayer, SigmoidLayer
from pybrain.structure import FullConnection
recurrentn = RecurrentNetwork()
#creating layer for input => 2 , hidden=> 3 and output=>1
inputLayer = LinearLayer(2, 'rn_in')
hiddenLayer = SigmoidLayer(3, 'rn_hidden')
outputLayer = LinearLayer(1, 'rn_output')
#adding the layer to feedforward network
recurrentn.addInputModule(inputLayer)
recurrentn.addModule(hiddenLayer)
recurrentn.addOutputModule(outputLayer)
#Create connection between input ,hidden and output
input_to_hidden = FullConnection(inputLayer, hiddenLayer)
hidden_to_output = FullConnection(hiddenLayer, outputLayer)
hidden_to_hidden = FullConnection(hiddenLayer, hiddenLayer)
#add connection to the network
recurrentn.addConnection(input_to_hidden)
recurrentn.addConnection(hidden_to_output)
recurrentn.addRecurrentConnection(hidden_to_hidden)
recurrentn.sortModules()
print(recurrentn)
C:\pybrain\pybrain\src>python rn.py
RecurrentNetwork-6
Modules:
[, ,
]
Connections:
[ 'rn_output'>,
'rn_hidden'>]
Recurrent Connections:
[ 'rn_hidden'>]
在上面的输出中,我们可以看到模块,连接和循环连接。
现在让我们使用激活方法激活网络,如下所示:
将以下代码添加到之前创建的代码中-
#activate network using activate() method
act1 = recurrentn.activate((2, 2))
print(act1)
act2 = recurrentn.activate((2, 2))
print(act2)
C:\pybrain\pybrain\src>python rn.py
[-1.24317586]
[-0.54117783]