PyBrain - Bekerja dengan Jaringan Berulang
Recurrent Networks sama seperti feed-forward network dengan hanya perbedaan yang Anda perlukan untuk mengingat data di setiap langkah. Histori setiap langkah harus disimpan.
Kami akan belajar bagaimana -
- Buat Jaringan Berulang
- Menambahkan Modul dan Koneksi
Membuat Jaringan Berulang
Untuk membuat jaringan berulang, kita akan menggunakan kelas RecurrentNetwork seperti yang ditunjukkan di bawah ini -
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:
[]
Kita dapat melihat koneksi baru yang disebut Recurrent Connections untuk jaringan berulang. Saat ini belum ada data yang tersedia.
Sekarang mari kita buat layer dan tambahkan ke modul dan buat koneksi.
Menambahkan Modul dan Koneksi
Kita akan membuat layer, yaitu input, hidden dan output. Lapisan tersebut akan ditambahkan ke modul input dan output. Selanjutnya, kita akan membuat koneksi untuk input menjadi tersembunyi, tersembunyi ke output dan koneksi berulang antara tersembunyi ke tersembunyi.
Berikut adalah kode untuk jaringan berulang dengan modul dan koneksi.
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'>]
Di ouput di atas kita bisa melihat Modules, Connections dan Recurrent Connections.
Sekarang mari kita aktifkan jaringan menggunakan metode aktivasi seperti yang ditunjukkan di bawah ini -
rn.py
Tambahkan kode di bawah ini ke yang dibuat sebelumnya -
#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]