#ifndef NETWORK_HPP #define NETWORK_HPP 1 #include #include #include "neuron.hpp" #include "clayer.hpp" #include "nlayer.hpp" #include "util.hpp" using namespace std; class Network { private: // Network layers vector layers; NLayer* outputLayer; // Training information: double eta; int inputVectorSize; int outputVectorSize; // Don't want people calling these, cuz I'm too lazy to write them right now Network& operator=(const Network& rhs); Network(Network& n); public: // Constructor/Destructor Network(int inputs, int outputs, vector blocks, vector blockSize); ~Network(); double train(vector< vector< vector > >& inputs, vector< vector< vector > >& outputs, double eta, int trace); double test(vector< vector< vector > >& inputs, vector< vector< vector > >& outputs); // Training loop functions vector forwardPass(vector inputs); void backwardPass(vector targets); void updateWeights(double eta); void clear(); // Output ostream& print(ostream& out); }; ostream& operator<<(ostream& out, Network& n); #endif // NETWORK_HPP