/// <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; }
/// <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; }
/// <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(); }