Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkNeuralNetworkObject.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003 Program:   Insight Segmentation & Registration Toolkit
00004 Module:    $RCSfile: itkNeuralNetworkObject.h,v $
00005 Language:  C++
00006 Date:      $Date: 2007/08/17 13:10:57 $
00007 Version:   $Revision: 1.3 $
00008 
00009 Copyright (c) Insight Software Consortium. All rights reserved.
00010 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
00011 
00012 This software is distributed WITHOUT ANY WARRANTY; without even
00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00014 PURPOSE.  See the above copyright notices for more information.
00015 
00016 =========================================================================*/
00017 
00018 #ifndef __NeuralNetworkObject_h
00019 #define __NeuralNetworkObject_h
00020 
00021 #include "itkDataObject.h"
00022 #include "itkLayerBase.h"
00023 #include "itkWeightSetBase.h"
00024 #include "itkLearningFunctionBase.h"
00025 
00026 namespace itk
00027 {
00028   namespace Statistics
00029     {
00030     template<class TMeasurementVector, class TTargetVector >
00031       class NeuralNetworkObject : public DataObject
00032         {
00033       public:
00034 
00035         typedef NeuralNetworkObject Self;
00036         typedef DataObject Superclass;
00037         typedef SmartPointer<Self> Pointer;
00038         typedef SmartPointer<const Self> ConstPointer;
00039         itkTypeMacro(NeuralNetworkObject, DataObject);
00040 
00041         typedef TMeasurementVector MeasurementVectorType;
00042         typedef typename MeasurementVectorType::ValueType ValueType;
00043         typedef Array<ValueType> NetworkOutputType;
00044         typedef TTargetVector TargetVectorType;
00045 
00046         typedef LayerBase<TMeasurementVector, TTargetVector> LayerInterfaceType;
00047 
00048         virtual NetworkOutputType GenerateOutput(TMeasurementVector samplevector)=0;
00049 
00050         virtual void BackwardPropagate(NetworkOutputType errors) = 0;
00051         virtual void UpdateWeights(ValueType) = 0;
00052 
00053       protected:
00054 
00055         NeuralNetworkObject();
00056         virtual ~NeuralNetworkObject();
00057 
00059         virtual void PrintSelf( std::ostream& os, Indent indent ) const;
00060 
00061         ValueType m_LearningRate;
00062 
00063         };
00064 
00065     } // end namespace Statistics
00066 } // end namespace itk
00067 
00068 #ifndef ITK_MANUAL_INSTANTIATION
00069 #include "itkNeuralNetworkObject.txx"
00070 #endif
00071 
00072 #endif
00073 

Generated at Wed Nov 5 23:11:50 2008 for ITK by doxygen 1.5.1 written by Dimitri van Heesch, © 1997-2000