PyBrain - Làm việc với mạng chuyển tiếp nguồn cấp dữ liệu

Mạng chuyển tiếp là một mạng nơ-ron, nơi thông tin giữa các nút di chuyển theo hướng thuận và sẽ không bao giờ đi lùi. Mạng chuyển tiếp nguồn cấp dữ liệu là mạng đầu tiên và đơn giản nhất trong số các mạng có sẵn trong mạng nơ-ron nhân tạo. Thông tin được chuyển từ các nút đầu vào, bên cạnh các nút ẩn và sau đó đến nút đầu ra.

Trong chương này, chúng ta sẽ thảo luận về cách -

  • Tạo mạng chuyển tiếp nguồn cấp dữ liệu
  • Thêm kết nối và mô-đun vào FFN

Tạo mạng chuyển tiếp nguồn cấp dữ liệu

Bạn có thể sử dụng IDE python mà bạn chọn, tức là PyCharm. Trong phần này, chúng tôi đang sử dụng Visual Studio Code để viết mã và sẽ thực thi tương tự trong terminal.

Để tạo một mạng chuyển tiếp, chúng ta cần nhập nó từ pybrain.structure như hình dưới đây -

ffn.py

from pybrain.structure import FeedForwardNetwork
network = FeedForwardNetwork()
print(network)

Thực thi ffn.py như hình dưới đây -

C:\pybrain\pybrain\src>python ffn.py
FeedForwardNetwork-0
Modules:
[]
Connections:
[]

Chúng tôi chưa thêm bất kỳ mô-đun và kết nối nào vào mạng chuyển tiếp. Do đó mạng hiển thị các mảng trống cho Mô-đun và Kết nối.

Thêm mô-đun và kết nối

Đầu tiên, chúng ta sẽ tạo các lớp đầu vào, ẩn, đầu ra và thêm các lớp tương tự vào các mô-đun như hình dưới đây -

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)

Đầu ra

C:\pybrain\pybrain\src>python ffn.py
FeedForwardNetwork-3
Modules:
[]
Connections:
[]

Chúng tôi vẫn nhận được các mô-đun và kết nối là trống. Chúng tôi cần cung cấp kết nối đến các mô-đun được tạo như hình dưới đây -

Đây là đoạn mã mà chúng ta đã tạo kết nối giữa các lớp đầu vào, ẩn và đầu ra và thêm kết nối vào mạng.

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)

Đầu ra

C:\pybrain\pybrain\src>python ffn.py
FeedForwardNetwork-3
Modules:
[]
Connections:
[]

Chúng tôi vẫn không thể lấy các mô-đun và kết nối. Bây giờ chúng ta hãy thêm bước cuối cùng, tức là chúng ta cần thêm phương thức sortModules () như hình dưới đây:

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)

Đầu ra

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'>]

Bây giờ chúng ta có thể xem các mô-đun và chi tiết kết nối cho mạng lưới cấp dữ liệu.