示例#1
0
 //Constructors
 /// <summary>
 /// Creates an unitialized instance
 /// </summary>
 public ReadoutUnitSettings()
 {
     Name             = string.Empty;
     TaskType         = ReadoutUnit.TaskType.Forecast;
     FeatureFilterCfg = null;
     NetType          = ReadoutUnitNetworkType.FF;
     NetSettings      = null;
     OutputRange      = null;
     return;
 }
示例#2
0
 /// <summary>
 /// Constructs an instance prepared for initialization (updates)
 /// </summary>
 /// <param name="taskType"></param>
 /// <param name="numOfReadoutUnits"></param>
 /// <param name="refBinDistr"></param>
 public ClusterErrStatistics(ReadoutUnit.TaskType taskType, int numOfReadoutUnits, BinDistribution refBinDistr)
 {
     TaskType             = taskType;
     NumOfReadoutUnits    = numOfReadoutUnits;
     NatPrecissionErrStat = new BasicStat();
     NrmPrecissionErrStat = new BasicStat();
     BinaryErrStat        = null;
     if (TaskType == ReadoutUnit.TaskType.Classification)
     {
         BinaryErrStat = new BinErrStat(refBinDistr);
     }
     return;
 }
示例#3
0
            /// <summary>
            /// Creates the instance and initializes it from given xml element.
            /// </summary>
            /// <param name="readoutUnitElem">
            /// Xml data containing the settings.
            /// </param>
            public ReadoutUnitSettings(XElement readoutUnitElem)
            {
                //Name
                Name = readoutUnitElem.Attribute("name").Value;
                //Task and filter
                XElement taskElem = readoutUnitElem.Descendants().First();

                if (taskElem.Name.LocalName == "forecast")
                {
                    TaskType = ReadoutUnit.TaskType.Forecast;
                }
                else
                {
                    TaskType = ReadoutUnit.TaskType.Classification;
                }
                FeatureFilterCfg = FeatureFilterFactory.LoadSettings(taskElem.Descendants().First());
                //Net settings
                List <XElement> netSettingsElems = new List <XElement>();

                netSettingsElems.AddRange(readoutUnitElem.Descendants("ff"));
                netSettingsElems.AddRange(readoutUnitElem.Descendants("pp"));
                if (netSettingsElems.Count != 1)
                {
                    throw new Exception("Only one network configuration can be specified in readout unit settings.");
                }
                if (netSettingsElems.Count == 0)
                {
                    throw new Exception("Network configuration is not specified in readout unit settings.");
                }
                XElement netSettingsElem = netSettingsElems[0];

                //FF?
                if (netSettingsElem.Name.LocalName == "ff")
                {
                    NetType     = ReadoutUnitNetworkType.FF;
                    NetSettings = new FeedForwardNetworkSettings(netSettingsElem);
                    OutputRange = ((FeedForwardNetworkSettings)NetSettings).OutputRange.DeepClone();
                }
                else
                {
                    //PP
                    NetType     = ReadoutUnitNetworkType.PP;
                    NetSettings = new ParallelPerceptronSettings(netSettingsElem);
                    OutputRange = ((ParallelPerceptronSettings)NetSettings).OutputRange.DeepClone();
                }
                return;
            }
示例#4
0
 /// <summary>
 /// Copy constructor
 /// </summary>
 /// <param name="source">Source instance</param>
 public ReadoutUnitSettings(ReadoutUnitSettings source)
 {
     Name             = source.Name;
     TaskType         = source.TaskType;
     FeatureFilterCfg = FeatureFilterFactory.DeepClone(source.FeatureFilterCfg);
     NetType          = source.NetType;
     NetSettings      = null;
     OutputRange      = null;
     if (source.NetSettings != null)
     {
         if (source.NetSettings.GetType() == typeof(FeedForwardNetworkSettings))
         {
             NetSettings = ((FeedForwardNetworkSettings)(source.NetSettings)).DeepClone();
         }
         else
         {
             NetSettings = ((ParallelPerceptronSettings)(source.NetSettings)).DeepClone();
         }
         OutputRange = source.OutputRange.DeepClone();
     }
     return;
 }
示例#5
0
 /// <summary>
 /// Returns task dependent collection of networks settings
 /// </summary>
 /// <param name="task">Task type</param>
 public List <INonRecurrentNetworkSettings> GetTaskNetworksCfgs(ReadoutUnit.TaskType task)
 {
     return(task == ReadoutUnit.TaskType.Classification ? ClassificationNetworksCfg.NetworkCfgCollection : ForecastNetworksCfg.NetworkCfgCollection);
 }