18 #ifndef itkMultilayerNeuralNetworkBase_h 19 #define itkMultilayerNeuralNetworkBase_h 33 template<
typename TMeasurementVector,
typename TTargetVector,
typename TLearningLayer=LayerBase<TMeasurementVector, TTargetVector> >
60 typedef std::vector<typename LayerInterfaceType::WeightSetInterfaceType::Pointer>
62 typedef std::vector<typename LayerInterfaceType::Pointer>
69 #ifdef __USE_OLD_INTERFACE 70 itkSetMacro(NumOfLayers,
int);
71 itkGetConstReferenceMacro(NumOfLayers,
int);
73 itkSetMacro(NumOfWeightSets,
int);
74 itkGetConstReferenceMacro(NumOfWeightSets,
int);
88 LayerInterfaceType *
GetLayer(
int layer_id);
89 const LayerInterfaceType *
GetLayer(
int layer_id)
const;
96 #ifdef __USE_OLD_INTERFACE 102 virtual NetworkOutputType
GenerateOutput(TMeasurementVector samplevector) ITK_OVERRIDE;
122 #ifdef __USE_OLD_INTERFACE 126 int m_NumOfWeightSets;
129 virtual void PrintSelf( std::ostream& os,
Indent indent )
const ITK_OVERRIDE;
135 #ifndef ITK_MANUAL_INSTANTIATION 136 #include "itkMultilayerNeuralNetworkBase.hxx" LayerBase< TMeasurementVector, TTargetVector > LayerInterfaceType
TMeasurementVector MeasurementVectorType
void SetLearningRate(ValueType learningrate)
virtual void UpdateWeights(ValueType) override
This is the itkWeightSetBase class.
std::vector< typename LayerInterfaceType::WeightSetInterfaceType::Pointer > WeightVectorType
TLearningLayer LearningLayerType
~MultilayerNeuralNetworkBase()
SmartPointer< const Self > ConstPointer
int GetNumOfWeightSets(void) const
This is the itkTransferFunctionBase class.
MultilayerNeuralNetworkBase Self
Superclass::LayerInterfaceType LayerInterfaceType
Superclass::MeasurementVectorType MeasurementVectorType
InputFunctionBase< ValueType *, ValueType > InputFunctionInterfaceType
int GetNumOfLayers(void) const
Superclass::TargetVectorType TargetVectorType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
SmartPointer< Self > Pointer
void AddWeightSet(typename LayerInterfaceType::WeightSetInterfaceType *)
virtual NetworkOutputType GenerateOutput(TMeasurementVector samplevector) override
TTargetVector TargetVectorType
std::vector< typename LayerInterfaceType::Pointer > LayerVectorType
WeightVectorType m_Weights
LayerInterfaceType * GetLayer(int layer_id)
virtual void PrintSelf(std::ostream &os, Indent indent) const override
Array< ValueType > NetworkOutputType
void SetLearningFunction(LearningFunctionInterfaceType *f)
void SetLearningRule(LearningFunctionInterfaceType *)
LearningFunctionInterfaceType::Pointer m_LearningFunction
MeasurementVectorType::ValueType ValueType
This is the itkMultilayerNeuralNetworkBase class.
TransferFunctionBase< ValueType > TransferFunctionInterfaceType
Superclass::NetworkOutputType NetworkOutputType
This is the itkNeuralNetworkObject class.
Control indentation during Print() invocation.
The LearningFunctionBase is the base class for all the learning strategies.
NeuralNetworkObject< TMeasurementVector, TTargetVector > Superclass
virtual void BackwardPropagate(NetworkOutputType errors) override
MultilayerNeuralNetworkBase()
LayerInterfaceType::WeightSetInterfaceType * GetWeightSet(unsigned int id)
void AddLayer(LayerInterfaceType *)
LearningFunctionBase< typename TLearningLayer::LayerInterfaceType, TTargetVector > LearningFunctionInterfaceType
Superclass::ValueType ValueType