#include #include #include int main() { { // XOR problem NeuralNetwork::FeedForward::Network n(2); NeuralNetwork::ActivationFunction::Sigmoid a(-1); NeuralNetwork::FeedForward::Layer &hidden=n.appendLayer(2,a); NeuralNetwork::FeedForward::Layer &out = n.appendLayer(1,a); hidden[1].setWeight(n[0][0],7); hidden[1].setWeight(n[0][1],-4.7); hidden[1].setWeight(n[0][2],-4.7); hidden[2].setWeight(n[0][0],2.6); hidden[2].setWeight(n[0][1],-6.4); hidden[2].setWeight(n[0][2],-6.4); out[1].setWeight(hidden[0],-4.5); out[1].setWeight(hidden[1],9.6); out[1].setWeight(hidden[2],-6.8); { std::vector ret =n.computeOutput({1,1}); assert(ret[0] < 0.5); } { std::vector ret =n.computeOutput({0,1}); assert(ret[0] > 0.5); } { std::vector ret =n.computeOutput({1,0}); assert(ret[0] > 0.5); } { std::vector ret =n.computeOutput({0,0}); assert(ret[0] < 0.5); } } }