PyBrain - API & Công cụ

Bây giờ chúng tôi biết cách xây dựng một mạng lưới và đào tạo nó. Trong chương này, chúng ta sẽ hiểu cách tạo và lưu mạng cũng như sử dụng mạng bất cứ khi nào được yêu cầu.

Lưu và khôi phục mạng

Chúng tôi sẽ sử dụng NetworkWriter và NetworkReader từ công cụ Pybrain, tức là pybrain.tools.customxml.

Đây là một ví dụ làm việc tương tự -

from pybrain.tools.shortcuts import buildNetwork
from pybrain.tools.customxml import NetworkWriter
from pybrain.tools.customxml import NetworkReader

net = buildNetwork(2,1,1)
NetworkWriter.writeToFile(net, 'network.xml')
net = NetworkReader.readFrom('network.xml')

Mạng được lưu bên trong network.xml.

NetworkWriter.writeToFile(net, 'network.xml')

Để đọc xml khi được yêu cầu, chúng ta có thể sử dụng mã như sau:

net = NetworkReader.readFrom('network.xml')

Đây là tệp network.xml được tạo -

<?xml version="1.0" ?>
<PyBrain>
   <Network class="pybrain.structure.networks.feedforward.FeedForwardNetwork" name="FeedForwardNetwork-8">
      <name val="'FeedForwardNetwork-8'"/>
      <Modules>
         <LinearLayer class="pybrain.structure.modules.linearlayer.LinearLayer" inmodule="True" name="in">
            <name val="'in'"/>
            <dim val="2"/>
         </LinearLayer>
         
         <LinearLayer class="pybrain.structure.modules.linearlayer.LinearLayer" name="out" outmodule="True">
            <name val="'out'"/>
            <dim val="1"/>
         </LinearLayer>
         
         <BiasUnit class="pybrain.structure.modules.biasunit.BiasUnit" name="bias">
            <name val="'bias'"/>
         </BiasUnit>
         
         <SigmoidLayer class="pybrain.structure.modules.sigmoidlayer.SigmoidLayer" name="hidden0">
            <name val="'hidden0'"/>
            <dim val="1"/>
         </SigmoidLayer>
      </Modules>
      
      <Connections>
         <FullConnection class="pybrain.structure.connections.full.FullConnection" name="FullConnection-6">
            <inmod val="bias"/>
            <outmod val="out"/>
            <Parameters>[1.2441093186965146]</Parameters>
         </FullConnection>
         
         <FullConnection class="pybrain.structure.connections.full.FullConnection" name="FullConnection-7">
            <inmod val="bias"/>
            <outmod val="hidden0"/>
            <Parameters>[-1.5743530012126412]</Parameters>
         </FullConnection>
         
         <FullConnection class="pybrain.structure.connections.full.FullConnection" name="FullConnection-4">
            <inmod val="in"/>
            <outmod val="hidden0"/>
            <Parameters>[-0.9429546042034236, -0.09858196752687162]</Parameters>
         </FullConnection>
         
         <FullConnection class="pybrain.structure.connections.full.FullConnection" name="FullConnection-5">
            <inmod val="hidden0"/>
            <outmod val="out"/>
            <Parameters>[-0.29205472354634304]</Parameters>
         </FullConnection>
      </Connections>
      
   </Network>
</PyBrain>

API

Dưới đây là danh sách các API mà chúng tôi đã sử dụng trong suốt hướng dẫn này.

Đối với mạng

  • activate(input)- Nó nhận tham số, tức là giá trị được kiểm tra. Nó sẽ trả về kết quả dựa trên đầu vào đã cho.

  • activateOnDataset(dataset) - Nó sẽ lặp lại tập dữ liệu đã cho và trả về kết quả đầu ra.

  • addConnection(c) - Thêm kết nối vào mạng.

  • addInputModule(m) - Thêm mô-đun được cung cấp vào mạng và đánh dấu nó là mô-đun đầu vào.

  • addModule(m) - Thêm mô-đun đã cho vào mạng.

  • addOutputModule(m) - Thêm mô-đun vào mạng và đánh dấu nó là mô-đun đầu ra.

  • reset() - Đặt lại các mô-đun và mạng.

  • sortModules()- Nó chuẩn bị mạng để kích hoạt bằng cách sắp xếp nội bộ. Nó phải được gọi trước khi kích hoạt.

Đối với tập dữ liệu được giám sát

  • addSample(inp, target) - Thêm một mẫu đầu vào và mục tiêu mới.

  • splitWithProportion(proportion=0.5) - Chia tập dữ liệu thành hai phần, phần đầu chứa dữ liệu phần tỷ lệ và phần tiếp theo chứa phần còn lại.

Dành cho giảng viên

trainUntilConvergence(dataset=None, maxEpochs=None, verbose=None, continueEpochs=10, validationProportion=0.25)- Nó được sử dụng để huấn luyện mô-đun trên tập dữ liệu cho đến khi nó hội tụ. Nếu tập dữ liệu không được cung cấp, nó sẽ cố gắng đào tạo trên tập dữ liệu đã đào tạo được sử dụng ngay từ đầu.