PyBrain - ทำงานกับ Feed-Forward Networks
เครือข่ายฟีดไปข้างหน้าเป็นเครือข่ายประสาทที่ข้อมูลระหว่างโหนดเคลื่อนที่ไปในทิศทางไปข้างหน้าและจะไม่เดินทางย้อนกลับ เครือข่าย Feed Forward เป็นเครือข่ายแรกและง่ายที่สุดในบรรดาเครือข่ายที่มีอยู่ในเครือข่ายประสาทเทียม ข้อมูลจะถูกส่งผ่านจากโหนดอินพุตถัดจากโหนดที่ซ่อนอยู่และต่อมาไปยังโหนดเอาต์พุต
ในบทนี้เราจะพูดถึงวิธีการ -
- สร้าง Feed-Forward Networks
- เพิ่มการเชื่อมต่อและโมดูลไปยัง FFN
การสร้างเครือข่าย Feed Forward
คุณสามารถใช้ python IDE ที่คุณเลือกได้เช่น PyCharm ในสิ่งนี้เราใช้ Visual Studio Code เพื่อเขียนโค้ดและจะดำเนินการแบบเดียวกันในเทอร์มินัล
ในการสร้างเครือข่าย feedforward เราจำเป็นต้องนำเข้าจาก pybrain.structure ดังแสดงด้านล่าง -
ffn.py
from pybrain.structure import FeedForwardNetwork
network = FeedForwardNetwork()
print(network)
ดำเนินการ ffn.py ดังที่แสดงด้านล่าง -
C:\pybrain\pybrain\src>python ffn.py
FeedForwardNetwork-0
Modules:
[]
Connections:
[]
เรายังไม่ได้เพิ่มโมดูลและการเชื่อมต่อใด ๆ ในเครือข่าย feedforward ดังนั้นเครือข่ายจึงแสดงอาร์เรย์ว่างสำหรับโมดูลและการเชื่อมต่อ
การเพิ่มโมดูลและการเชื่อมต่อ
ก่อนอื่นเราจะสร้างชั้นอินพุตซ่อนเอาต์พุตและเพิ่มสิ่งเดียวกันให้กับโมดูลดังที่แสดงด้านล่าง -
ffy.py
from pybrain.structure import FeedForwardNetwork
from pybrain.structure import LinearLayer, SigmoidLayer
network = FeedForwardNetwork()
#creating layer for input => 2 , hidden=> 3 and output=>1
inputLayer = LinearLayer(2)
hiddenLayer = SigmoidLayer(3)
outputLayer = LinearLayer(1)
#adding the layer to feedforward network
network.addInputModule(inputLayer)
network.addModule(hiddenLayer)
network.addOutputModule(outputLayer)
print(network)
เอาต์พุต
C:\pybrain\pybrain\src>python ffn.py
FeedForwardNetwork-3
Modules:
[]
Connections:
[]
เรายังคงได้รับโมดูลและการเชื่อมต่อว่างเปล่า เราจำเป็นต้องให้การเชื่อมต่อกับโมดูลที่สร้างขึ้นดังที่แสดงด้านล่าง -
นี่คือรหัสที่เราสร้างการเชื่อมต่อระหว่างชั้นอินพุตซ่อนและเอาต์พุตและเพิ่มการเชื่อมต่อกับเครือข่าย
ffy.py
from pybrain.structure import FeedForwardNetwork
from pybrain.structure import LinearLayer, SigmoidLayer
from pybrain.structure import FullConnection
network = FeedForwardNetwork()
#creating layer for input => 2 , hidden=> 3 and output=>1
inputLayer = LinearLayer(2)
hiddenLayer = SigmoidLayer(3)
outputLayer = LinearLayer(1)
#adding the layer to feedforward network
network.addInputModule(inputLayer)
network.addModule(hiddenLayer)
network.addOutputModule(outputLayer)
#Create connection between input ,hidden and output
input_to_hidden = FullConnection(inputLayer, hiddenLayer)
hidden_to_output = FullConnection(hiddenLayer, outputLayer)
#add connection to the network
network.addConnection(input_to_hidden)
network.addConnection(hidden_to_output)
print(network)
เอาต์พุต
C:\pybrain\pybrain\src>python ffn.py
FeedForwardNetwork-3
Modules:
[]
Connections:
[]
เรายังไม่สามารถรับโมดูลและการเชื่อมต่อได้ ตอนนี้ให้เราเพิ่มขั้นตอนสุดท้ายนั่นคือเราต้องเพิ่มวิธี sortModules () ดังที่แสดงด้านล่าง -
ffy.py
from pybrain.structure import FeedForwardNetwork
from pybrain.structure import LinearLayer, SigmoidLayer
from pybrain.structure import FullConnection
network = FeedForwardNetwork()
#creating layer for input => 2 , hidden=> 3 and output=>1
inputLayer = LinearLayer(2)
hiddenLayer = SigmoidLayer(3)
outputLayer = LinearLayer(1)
#adding the layer to feedforward network
network.addInputModule(inputLayer)
network.addModule(hiddenLayer)
network.addOutputModule(outputLayer)
#Create connection between input ,hidden and output
input_to_hidden = FullConnection(inputLayer, hiddenLayer)
hidden_to_output = FullConnection(hiddenLayer, outputLayer)
#add connection to the network
network.addConnection(input_to_hidden)
network.addConnection(hidden_to_output)
network.sortModules()
print(network)
เอาต์พุต
C:\pybrain\pybrain\src>python ffn.py
FeedForwardNetwork-6
Modules:
[<LinearLayer 'LinearLayer-3'gt;, <SigmoidLayer 'SigmoidLayer-7'>,
<LinearLayer 'LinearLayer-8'>]
Connections:
[<FullConnection 'FullConnection-4': 'SigmoidLayer-7' -> 'LinearLayer-8'>,
<FullConnection 'FullConnection-5': 'LinearLayer-3' -> 'SigmoidLayer-7'>]
ตอนนี้เราสามารถดูโมดูลและรายละเอียดการเชื่อมต่อสำหรับ feedforwardnetwork ได้แล้ว