//Constructor /// <summary> /// Creates an uninitialized instance /// </summary> /// <param name="settings">Readout layer configuration</param> /// <param name="dataRange">Range of input/output data</param> public ReadoutLayer(ReadoutLayerSettings settings, Interval dataRange) { _settings = settings.DeepClone(); _dataRange = dataRange.DeepClone(); foreach (ReadoutLayerSettings.ReadoutUnitSettings rus in _settings.ReadoutUnitCfgCollection) { if (!rus.OutputRange.BelongsTo(_dataRange.Min) || !rus.OutputRange.BelongsTo(_dataRange.Max)) { throw new Exception($"Readout unit {rus.Name} does not support data range <{_dataRange.Min}; {_dataRange.Max}>."); } } //Clusters _clusterCollection = new ReadoutUnit[_settings.ReadoutUnitCfgCollection.Count][]; _clusterErrStatisticsCollection = new List <ClusterErrStatistics>(); return; }
//Constructor /// <summary> /// Creates an uninitialized instance /// </summary> /// <param name="settings">Readout layer configuration</param> public ReadoutLayer(ReadoutLayerSettings settings) { _settings = settings.DeepClone(); _predictorNormalizerCollection = null; _outputNormalizerCollection = null; _predictorsMapper = null; foreach (ReadoutLayerSettings.ReadoutUnitSettings rus in _settings.ReadoutUnitCfgCollection) { if (!rus.OutputRange.BelongsTo(DataRange.Min) || !rus.OutputRange.BelongsTo(DataRange.Max)) { throw new Exception($"Readout unit {rus.Name} does not support data range <{DataRange.Min}; {DataRange.Max}>."); } } //Clusters _clusterCollection = new ReadoutUnit[_settings.ReadoutUnitCfgCollection.Count][]; _clusterErrStatisticsCollection = new List <ClusterErrStatistics>(); return; }
//Constructor /// <summary> /// Creates an uninitialized instance /// </summary> /// <param name="settings">Readout layer configuration</param> public ReadoutLayer(ReadoutLayerSettings settings) { Settings = (ReadoutLayerSettings)settings.DeepClone(); Reset(); return; }
//Constructor /// <summary> /// Creates an uninitialized instance. /// </summary> /// <param name="readoutLayerCfg">The readout layer configuration.</param> public ReadoutLayer(ReadoutLayerSettings readoutLayerCfg) { ReadoutLayerCfg = (ReadoutLayerSettings)readoutLayerCfg.DeepClone(); Reset(); return; }