Пример #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>
            /// 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;
            }
Пример #3
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;
 }
Пример #4
0
 /// <summary>
 /// The deep copy constructor.
 /// </summary>
 /// <param name="source">Source instance</param>
 public ExternalField(ExternalField source)
     : base(source)
 {
     FeatureFilterCfg = FeatureFilterFactory.DeepClone(source.FeatureFilterCfg);
     return;
 }
Пример #5
0
 //Constructors
 /// <summary>
 /// Creates an initialized instance
 /// </summary>
 /// <param name="name">Field name</param>
 /// <param name="allowRoutingToReadout">Specifies whether the field can be included among predictors</param>
 /// <param name="settingsElem">Xml element containing associated feature filter settings</param>
 public ExternalField(string name, bool allowRoutingToReadout, XElement settingsElem)
     : base(name, allowRoutingToReadout)
 {
     FeatureFilterCfg = FeatureFilterFactory.LoadSettings(settingsElem);
     return;
 }