// Copyright (C) 2001 Jean-Marc Valin #ifndef _NNET_SET_H_ #define _NNET_SET_H_ #include #include #include #include "Object.h" #include "FFNet.h" namespace FD { class NNetSet; std::ostream &operator << (std::ostream &out, const NNetSet &cell); class NNetSet : public Object { protected: std::vector > nets; float *value; public: //NNetSet() //{} NNetSet(){value = NULL;} NNetSet (const NNetSet &) {std::cerr << "don't call the NNetSet copy constructor\n"; exit(1);} NNetSet(int nbNets, const Vector &topo, const Vector &functions, std::vector id, std::vector &tin, std::vector &tout); NNetSet(std::vector id, std::vector &tin, std::vector &tout, NNetSet *net1, NNetSet *net2); ~NNetSet() { delete [] value; } float *calc(int id, const float *input); //void train(std::vector id, std::vector tin, std::vector tout, int iter, // double learnRate, double mom, double increase, double decrease, double errRatio, int nbSets); void trainDeltaBar(std::vector id, std::vector tin, std::vector tout, int iter, double learnRate, double increase, double decrease); //void trainCGB(std::vector id, std::vector tin, std::vector tout, // int iter, double sigma = .03, double lambda = .2); void printOn(std::ostream &out) const; void readFrom (std::istream &in); friend std::istream &operator >> (std::istream &in, NNetSet &cell); }; }//namespace FD #endif