Exemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the ProximalSynapse class and
        /// sets its input source and initial permanance values.
        /// </summary>
        /// <param name="inputSource">A DataSource (external data source, or another Region) providing source of the input to this synapse.</param>
        /// <param name="inputPoint">Coordinates and value index of this synapse's input within the inputSource.</param>
        /// <param name="permanence">Initial permanence value.</param>
        /// <param name="distanceToInput">In the Region's hypercolumn coordinates; used by Region.AverageReceptiveFieldSize().</param>
        public void Initialize(SynapseParams synapseParams, DataSpace inputSource, ref DataPoint inputPoint, float permanence, float distanceToInput)
        {
            base.Initialize(synapseParams);

            this.InputSource     = inputSource;
            this.InputPoint      = inputPoint;
            this.DistanceToInput = distanceToInput;

            this.Permanence = permanence;
        }
Exemplo n.º 2
0
        /// <summary>
        /// This version of Initialize() is used when loading data.
        /// </summary>
        public new void Initialize(SynapseParams synapseParams)
        {
            base.Initialize(synapseParams);

            this.InputSource     = null;
            this.InputPoint      = new DataPoint();
            this.DistanceToInput = 0.0f;

            this.Permanence = 0.0f;
        }
Exemplo n.º 3
0
        /// <summary>
        /// Initialize the network starting from top region.
        /// </summary>
        public void Initialize()
        {
            // Set project parameters
            Global.AllowSpatialLearning  = true;
            Global.AllowTemporalLearning = true;
            Global.AllowBoosting         = false;

            // Create the new input.
            this.Sensor       = new Sensor("Input1", WordEncoder.MaxHashSize, 10, 1, null, null);
            this.Sensor.Index = 1;

            // Set Proximal Synapse parameter
            var proximalSynapseParams = new SynapseParams();

            proximalSynapseParams.InitialPermanence = 0.30f;
            proximalSynapseParams.ConnectedPerm     = 0.24f;
            proximalSynapseParams.PermanenceInc     = 0.0060f;
            proximalSynapseParams.PermanenceDec     = 0.0045f;

            // Set Distal Synapse parameter
            var distalSynapseParams = new SynapseParams();

            distalSynapseParams.InitialPermanence = proximalSynapseParams.InitialPermanence;
            distalSynapseParams.ConnectedPerm     = proximalSynapseParams.ConnectedPerm;
            distalSynapseParams.PermanenceInc     = proximalSynapseParams.PermanenceInc;
            distalSynapseParams.PermanenceDec     = proximalSynapseParams.PermanenceDec;

            // Set Region parameters
            string regionId                     = "Region1";
            int    regionSizeX                  = 12;
            int    regionSizeY                  = 12;
            bool   hardcodedSpatial             = false;
            float  percentageInputPerCol        = 100;
            float  percentageMinOverlap         = 0;
            float  percentageLocalActivity      = 1;
            float  maxBoost                     = -1;
            float  boostRate                    = 0.05f;
            int    spatialLearningStartTime     = -1;
            int    spatialLearningEndTime       = -1;
            int    temporalLearningStartTime    = -1;
            int    temporalLearningEndTime      = -1;
            int    boostingStartTime            = -1;
            int    boostingEndTime              = -1;
            int    min_MinOverlapToReuseSegment = 2;
            int    max_MinOverlapToReuseSegment = 2;
            int    predictionRadius             = -1;
            int    cellsPerColumn               = 120;
            int    hypercolumnDiameter          = 1;
            int    segmentActivateThreshold     = 1;
            int    newNumberSynapses            = 1;
            bool   outputColumnActivity         = false;
            bool   outputCellActivity           = true;
            var    inhibitionType               = InhibitionType.Automatic;
            int    inhibitionRadius             = -1;

            // Create the new Region.
            this.Region       = new Region(regionId, new Point(regionSizeX, regionSizeY), hypercolumnDiameter, proximalSynapseParams, distalSynapseParams, percentageInputPerCol / 100.0f, percentageMinOverlap / 100.0f, predictionRadius, inhibitionType, inhibitionRadius, percentageLocalActivity / 100.0f, boostRate, maxBoost, spatialLearningStartTime, spatialLearningEndTime, temporalLearningStartTime, temporalLearningEndTime, boostingStartTime, boostingEndTime, cellsPerColumn, segmentActivateThreshold, newNumberSynapses, min_MinOverlapToReuseSegment, max_MinOverlapToReuseSegment, hardcodedSpatial, outputColumnActivity, outputCellActivity);
            this.Region.Index = 1;
            this.Region.AddInput(this.Sensor, 15);
            this.Region.Initialize();
        }