TarzaNN
TarzaNN neural network simulator
|
00001 /* The Fixation History Map (FHM) Feature Plane is a specialized feature plane 00002 which is used to keep track of multiple fixation points incoming from a smaller 00003 window, to update those points over spatial translation of the window such that 00004 the incoming window will always stay positioned in the centre of the FHM plane, 00005 and to decay the stored fixation points through time. 00006 Author: Calden Wloka 00007 */ 00008 00009 #ifndef FEATUREPLANEFHM_H_INCLUDED 00010 #define FEATUREPLANEFHM_H_INCLUDED 00011 00012 #include "FeaturePlane.h" 00013 00014 class FeaturePlaneFHM : public FeaturePlane { 00015 friend class FeaturePlaneFactory; 00016 00017 protected: 00018 //constructor that takes in the standard feature plane parameters. decayRate will be set to a default value 00019 FeaturePlaneFHM(Network* net, int l, QString* n, int w, int h, int angles, int speeds, int alpha, int speed, bool isWTA, bool visible, Neuron* neuron, NotifyStrategyAbstract* notify); 00020 00021 //constructor which specifies the decayRate to a user-defined value, so long as that value is greater than 0 and less than or equal to 1. 00022 FeaturePlaneFHM(Network* net, int l, QString* n, int w, int h, int angles, int speeds, int alpha, int speed, bool isWTA, bool visible, Neuron* neuron, NotifyStrategyAbstract* notify, int decayRate); 00023 00024 //constructor which takes in a value for the size of the memory field separate from the w and h values, but does not specify the decay rate 00025 FeaturePlaneFHM(Network* net, int l, QString* n, int w, int h, int memW, int memH, int angles, int speeds, int alpha, int speed, bool isWTA, bool visible, Neuron* neuron, NotifyStrategyAbstract* notify); 00026 00027 //constructor which specifies the decayRate to a user-defined value, so long as that value is greater than 0 and less than or equal to 1. Also takes in a value for the size of the memory field separate from the w and h values 00028 FeaturePlaneFHM(Network* net, int l, QString* n, int w, int h, int memW, int memH, int angles, int speeds, int alpha, int speed, bool isWTA, bool visible, Neuron* neuron, NotifyStrategyAbstract* notify, int decayRate); 00029 00030 // Fixation History Map Parameters 00031 int decayRate; // the number of time steps it takes for a previous fixation to return to 0 00032 int xTrans; // translation in the x dimension 00033 int yTrans; // translation in the y dimension 00034 int memW; // width of the memory plane, default to the size of the the visual field 00035 int memH; // height of the memory plane, default to the size of the the visual field 00036 Matrix* memoryActivation; // hidden storage of fixation history which can take a custom size 00037 int xMem; // x-offset between the top corner of the visual field and the edge of the memory map 00038 int yMem; // y-offset between the top corner of the visual field and the edge of the memory map 00039 00040 // initialize the memory map, which stores fixations outside of the visual field 00041 void initMemory(int memW, int memH, int decayRate); 00042 00043 // overload the sumActivations functions such that it does not replace previous values, but 00044 // rather translates and reduces the previous values to keep it centered with foveation. 00045 void sumActivations(MatrixVector regularActivations, MatrixVector nonFourierActivations, Matrix* totalActivation); 00046 void _sumActivations(MatrixVector activations, Matrix* totalActivation); 00047 00048 //destructor 00049 ~FeaturePlaneFHM(); 00050 }; 00051 #endif //FEATUREPLANEFHM_H_INCLUDED