ben birlikte aşağıdaki kodu vurmak başardı: O XOR fonksiyonu öğrenmek gerekiyorduBasit 3 katmanlı sinir ağı nasıl oluşturulur ve denetimli öğrenmeyi kullanarak nasıl öğretilir? <a href="http://pybrain.org/docs/index.html#tutorials" rel="nofollow">PyBrain's tutorials</a> dayanarak
#!/usr/bin/env python2
# coding: utf-8
from pybrain.structure import FeedForwardNetwork, LinearLayer, SigmoidLayer, FullConnection
from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer
n = FeedForwardNetwork()
inLayer = LinearLayer(2)
hiddenLayer = SigmoidLayer(3)
outLayer = LinearLayer(1)
n.addInputModule(inLayer)
n.addModule(hiddenLayer)
n.addOutputModule(outLayer)
in_to_hidden = FullConnection(inLayer, hiddenLayer)
hidden_to_out = FullConnection(hiddenLayer, outLayer)
n.addConnection(in_to_hidden)
n.addConnection(hidden_to_out)
n.sortModules()
ds = SupervisedDataSet(2, 1)
ds.addSample((0, 0), (0,))
ds.addSample((0, 1), (1,))
ds.addSample((1, 0), (1,))
ds.addSample((1, 1), (0,))
trainer = BackpropTrainer(n, ds)
# trainer.train()
trainer.trainUntilConvergence()
print n.activate([0, 0])[0]
print n.activate([0, 1])[0]
print n.activate([1, 0])[0]
print n.activate([1, 1])[0]
, ancak sonuçlar oldukça rastgele görünüyor:
0,208884929522
0,168926515771
0.459452834043
0,424209192223
veya
0,84956138664
0,888512762786
0,564964077401
0,611111147862
Ağ, ortalama hata, gerekenden daha düşük (veya eşit) olana kadar ya da çağların sayısına ulaşma sınırına ulaşılıncaya kadar herhangi bir yöntem var mı? – Luke
@Luke PyBrain'in dokümanları dürüstçe "Bu dokümantasyonda mevcut yöntemlerden oluşan bir öznel alıntıdan ibaret" olduğunu belirtiyor. Dolayısıyla, belirli PyBrain dağıtımınızın uygulanmasına bakmanız gerekecektir. Fakat olmasa bile, bu döngüyü kendiniz uygulamak çok kolaydır. – BartoszKP