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);
91 void AddWeightSet(
typename LayerInterfaceType::WeightSetInterfaceType*);
96 #ifdef __USE_OLD_INTERFACE
97 const typename LayerInterfaceType::WeightSetInterfaceType*
GetWeightSet(
unsigned int id)
const;
115 ~MultilayerNeuralNetworkBase();
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
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
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)
Array< ValueType > NetworkOutputType
void SetLearningFunction(LearningFunctionInterfaceType *f)
void SetLearningRule(LearningFunctionInterfaceType *)
LearningFunctionInterfaceType::Pointer m_LearningFunction
MeasurementVectorType::ValueType ValueType
virtual void PrintSelf(std::ostream &os, Indent indent) const override
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
LayerInterfaceType::WeightSetInterfaceType * GetWeightSet(unsigned int id)
void AddLayer(LayerInterfaceType *)
Base class for all data objects in ITK.
LearningFunctionBase< typename TLearningLayer::LayerInterfaceType, TTargetVector > LearningFunctionInterfaceType
Superclass::ValueType ValueType