PyBrain - Tekrarlayan Ağlarla Çalışma

Yinelenen Ağlar, yalnızca her adımda verileri hatırlamanız gerekmesi dışında ileri beslemeli ağ ile aynıdır. Her adımın geçmişinin kaydedilmesi gerekir.

Nasıl yapılacağını öğreneceğiz -

  • Tekrarlayan Bir Ağ Oluşturun
  • Modül ve Bağlantı Ekleme

Tekrarlayan Bir Ağ Oluşturma

Tekrarlayan ağ oluşturmak için, aşağıda gösterildiği gibi RecurrentNetwork sınıfını kullanacağız -

rn.py

from pybrain.structure import RecurrentNetwork
recurrentn = RecurrentNetwork()
print(recurrentn)

python rn.py

C:\pybrain\pybrain\src>python rn.py
RecurrentNetwork-0
Modules:
[]
Connections:
[]
Recurrent Connections:
[]

Tekrarlayan ağ için Tekrarlayan Bağlantılar adlı yeni bir bağlantı görebiliriz. Şu anda mevcut veri yok.

Şimdi katmanları oluşturup modüllere ekleyelim ve bağlantılar oluşturalım.

Modül ve Bağlantı Ekleme

Katmanlar, yani girdi, gizli ve çıktı oluşturacağız. Katmanlar, giriş ve çıkış modülüne eklenecektir. Daha sonra, giriş için gizli, çıkış için gizli ve gizli ile gizli arasında tekrarlayan bir bağlantı oluşturacağız.

Modüller ve bağlantılar içeren Tekrarlayan ağın kodu.

rn.py

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)

python rn.py

C:\pybrain\pybrain\src>python rn.py
RecurrentNetwork-6
Modules:
[<LinearLayer 'rn_in'>, <SigmoidLayer 'rn_hidden'>, 
   <LinearLayer 'rn_output'>]
Connections:
[<FullConnection 'FullConnection-4': 'rn_hidden' -> 'rn_output'>, 
   <FullConnection 'FullConnection-5': 'rn_in' -> 'rn_hidden'>]
Recurrent Connections:
[<FullConnection 'FullConnection-3': 'rn_hidden' -> 'rn_hidden'>]

Yukarıdaki çıktıda Modülleri, Bağlantıları ve Tekrarlayan Bağlantıları görebiliriz.

Şimdi aşağıda gösterildiği gibi etkinleştirme yöntemini kullanarak ağı etkinleştirelim -

rn.py

Daha önce oluşturulmuş olana aşağıdaki kodu ekleyin -

#activate network using activate() method
act1 = recurrentn.activate((2, 2))
print(act1)

act2 = recurrentn.activate((2, 2))
print(act2)

python rn.py

C:\pybrain\pybrain\src>python rn.py
[-1.24317586]
[-0.54117783]