RBFHiddenLayer.hpp

Go to the documentation of this file.
00001 #ifndef __RBFHIDDENLAYER_H
00002 #define __RBFHIDDENLAYER_H
00003 
00004 #include <Vector.hpp>
00005 #include <GNGComponents/DefaultGNGContainer.hpp>
00006 
00007 #include "RBFNode.hpp"
00008 
00009 #include "IWeightLayerToHidden.hpp"
00010 
00011 
00015 class RBFHiddenLayer : public DefaultGNGContainer
00016 {
00017 public:
00018     RBFHiddenLayer(IWeightLayerToHidden * w)
00019     {
00020         m_weightLayer = w;
00021     }
00022 
00027     virtual void ApplyInput(Vector const & input)
00028     {
00029         // iterate through all nodes and calc their Activation
00030         NodeContainer::iterator it = m_nodes.begin();
00031         for(; it != m_nodes.end(); it++)
00032         {
00033             RBFNode * n = (RBFNode *)(*it);
00034             m_weightLayer->SetSignal(n, n->Activation(input));
00035         }
00036     }
00037 
00043     GNGNode * CreateNode()
00044     {  
00045         GNGNode * node = m_nodeFactory->NewNode();    
00046         m_nodes.push_back(node);
00047 
00048         // Create a Weights Object in WeightLayer, associate it with n.
00049         RBFNode * n = (RBFNode *)node;
00050         m_weightLayer->CreateWeightsObject(n);
00051 
00052         return node;
00053     }  
00054 
00061     void DeleteNode(NodeContainer::iterator & i)
00062     {
00063         RBFNode * n = (RBFNode *)(*i);
00064         m_weightLayer->DeleteWeightsObject(n);
00065 
00066         delete (*i);      // free memory
00067         m_nodes.erase(i); // remove reference.
00068     }
00069 
00070 private:
00071     IWeightLayerToHidden *  m_weightLayer;
00072 };
00073 
00074 
00075 #endif

Generated on Mon Mar 22 16:40:48 2004 for GNG_GL by doxygen 1.3.6