35 lines
876 B
C++
35 lines
876 B
C++
#include <NeuralNetwork/FeedForward/Network.h>
|
|
|
|
#include <cassert>
|
|
#include <iostream>
|
|
#include "../include/NeuralNetwork/Learning/BackPropagation.h"
|
|
|
|
#include <chrono>
|
|
int main() {
|
|
{ // XOR problem
|
|
NeuralNetwork::FeedForward::Network n(2);
|
|
NeuralNetwork::ActivationFunction::Sigmoid a(-1);
|
|
n.appendLayer(200,a);
|
|
n.appendLayer(500,a);
|
|
n.appendLayer(900,a);
|
|
n.appendLayer(1,a);
|
|
|
|
n.randomizeWeights();
|
|
|
|
NeuralNetwork::Learning::BackPropagation prop(n);
|
|
// prop.setBatchSize(20);
|
|
// prop.setMomentumWeight(0.8);
|
|
|
|
auto start = std::chrono::system_clock::now();
|
|
for(int i=0;i<100;i++) {
|
|
prop.teach({1,0},{1});
|
|
prop.teach({1,1},{0});
|
|
prop.teach({0,0},{0});
|
|
prop.teach({0,1},{1});
|
|
}
|
|
auto end = std::chrono::system_clock::now();
|
|
std::chrono::duration<double> elapsed_seconds = end -start;
|
|
std::cout << elapsed_seconds.count() << "\n";
|
|
}
|
|
}
|