Ich versuche, einen einfachen Klassifikator für das XOR-Problem in Keras zu implementieren. Hier ist der Code:Ich kann kein neuronales Netzwerk trainieren, das XOR-Mapping löst
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
from keras.optimizers import SGD
import numpy
X = numpy.array([[1., 1.], [0., 0.], [1., 0.], [0., 1.], [1., 1.], [0., 0.]])
y = numpy.array([[0.], [0.], [1.], [1.], [0.], [0.]])
model = Sequential()
model.add(Dense(2, input_dim=2, init='uniform', activation='sigmoid'))
model.add(Dense(3, init='uniform', activation='sigmoid'))
model.add(Dense(1, init='uniform', activation='softmax'))
sgd = SGD(lr=0.001, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='mean_squared_error', optimizer=sgd)
model.fit(X, y, nb_epoch=20)
print()
score = model.evaluate(X, y)
print()
print(score)
print(model.predict(numpy.array([[1, 0]])))
print(model.predict(numpy.array([[0, 0]])))
Ich versuchte, die Anzahl der Epochen, Lernrate und andere Parameter zu ändern. Aber der Fehler bleibt von der ersten bis zur letzten Epoche konstant.
Epoch 13/20
6/6 [==============================] - 0s - loss: 0.6667
Epoch 14/20
6/6 [==============================] - 0s - loss: 0.6667
Epoch 15/20
6/6 [==============================] - 0s - loss: 0.6667
Epoch 16/20
6/6 [==============================] - 0s - loss: 0.6667
Epoch 17/20
6/6 [==============================] - 0s - loss: 0.6667
Epoch 18/20
6/6 [==============================] - 0s - loss: 0.6667
Epoch 19/20
6/6 [==============================] - 0s - loss: 0.6667
Epoch 20/20
6/6 [==============================] - 0s - loss: 0.6667
6/6 [==============================] - 0s
0.666666686535
[[ 1.]]
[[ 1.]]
Wie trainierst du dieses Netzwerk in Keras?
Gibt es auch eine bessere Bibliothek für die Implementierung neuronaler Netze? Ich habe versucht, PyBrain, aber es wurde aufgegeben, versuchte scikit-neuralnetwork, aber die Dokumentation ist wirklich kryptisch, so konnte nicht herausfinden, wie man es ausbildet. Und ich bezweifle ernsthaft, ob Keras überhaupt funktioniert.