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: 2009-01-28 21:04:59 $
00007 Version:   $Revision: 1.4 $
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 __itkNeuralNetworkObject_h
00019 #define __itkNeuralNetworkObject_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 
00040   itkTypeMacro(NeuralNetworkObject, DataObject);
00041 
00042   typedef TMeasurementVector                        MeasurementVectorType;
00043   typedef typename MeasurementVectorType::ValueType ValueType;
00044   typedef Array<ValueType>                          NetworkOutputType;
00045   typedef TTargetVector                             TargetVectorType;
00046   
00047   typedef LayerBase<TMeasurementVector, TTargetVector> LayerInterfaceType;
00048 
00049   virtual NetworkOutputType GenerateOutput(TMeasurementVector samplevector)=0;
00050 
00051   virtual void BackwardPropagate(NetworkOutputType errors) = 0;
00052   virtual void UpdateWeights(ValueType) = 0;
00053   
00054 protected:
00055 
00056   NeuralNetworkObject();
00057   virtual ~NeuralNetworkObject();
00058 
00060   virtual void PrintSelf( std::ostream& os, Indent indent ) const;
00061 
00062   ValueType m_LearningRate;
00063   
00064 };
00065 
00066 } // end namespace Statistics
00067 } // end namespace itk
00068 
00069 #ifndef ITK_MANUAL_INSTANTIATION
00070 #include "itkNeuralNetworkObject.txx"
00071 #endif
00072 
00073 #endif
00074 

Generated at Tue Sep 15 04:10:37 2009 for ITK by doxygen 1.5.8 written by Dimitri van Heesch, © 1997-2000