/// <summary> /// Creates an initialized instance. /// </summary> /// <param name="elem">Xml element containing the initialization settings</param> public ForecastTaskSettings(XElement elem) { //Validation XElement settingsElem = Validate(elem, XsdTypeName); //Parsing //Filter XElement filterSettingsElem = settingsElem.Elements().First(); switch (filterSettingsElem.Name.LocalName) { case "binFeature": FeatureFilterCfg = new BinFeatureFilterSettings(filterSettingsElem); break; case "enumFeature": FeatureFilterCfg = new EnumFeatureFilterSettings(filterSettingsElem); break; case "realFeature": FeatureFilterCfg = new RealFeatureFilterSettings(filterSettingsElem); break; default: throw new InvalidOperationException($"Feature filter element not found."); } //Networks XElement forecastNetworksSettingsElem = settingsElem.Elements("networks").FirstOrDefault(); NetworksCfg = forecastNetworksSettingsElem == null ? new ForecastNetworksSettings() : new ForecastNetworksSettings(forecastNetworksSettingsElem); return; }
//Constructors /// <summary> /// Creates an initialized instance. /// </summary> /// <param name="name">The name of the generated field.</param> /// <param name="generatorCfg">The configuration of an associated generator.</param> /// <param name="routeToReadout">Specifies whether to route the generated field to the readout layer.</param> /// <param name="featureFilterCfg">The configuration of the real feature filter.</param> public GeneratedFieldSettings(string name, RCNetBaseSettings generatorCfg, bool routeToReadout = DefaultRouteToReadout, RealFeatureFilterSettings featureFilterCfg = null ) { Name = name; GeneratorCfg = generatorCfg.DeepClone(); RouteToReadout = routeToReadout; FeatureFilterCfg = featureFilterCfg == null ? null : (RealFeatureFilterSettings)featureFilterCfg.DeepClone(); Check(); return; }
//Constructors /// <summary> /// Creates an initialized instance /// </summary> /// <param name="name">Transformed field name</param> /// <param name="transformerCfg">Configuration of associated transformer</param> /// <param name="routeToReadout">Specifies whether to route transformed field to readout layer together with other predictors</param> /// <param name="featureFilterCfg">Configuration of real feature filter</param> /// <param name="spikingCodingCfg">Configuration of spiking coding neurons</param> public TransformedFieldSettings(string name, RCNetBaseSettings transformerCfg, bool routeToReadout = DefaultRouteToReadout, RealFeatureFilterSettings featureFilterCfg = null, SpikeCodeSettings spikingCodingCfg = null ) { Name = name; TransformerCfg = transformerCfg.DeepClone(); RouteToReadout = routeToReadout; FeatureFilterCfg = featureFilterCfg == null ? null : (RealFeatureFilterSettings)featureFilterCfg.DeepClone(); SpikingCodingCfg = spikingCodingCfg == null ? null : (SpikeCodeSettings)spikingCodingCfg.DeepClone(); Check(); return; }
/// <summary> /// Creates an initialized instance. /// </summary> /// <param name="elem">A xml element containing the configuration data.</param> public GeneratedFieldSettings(XElement elem) { //Validation XElement settingsElem = Validate(elem, XsdTypeName); //Parsing Name = settingsElem.Attribute("name").Value; RouteToReadout = bool.Parse(settingsElem.Attribute("routeToReadout").Value); XElement genElem = settingsElem.Elements().First(); GeneratorCfg = GeneratorFactory.LoadSettings(genElem); XElement realFeatureFilterElem = settingsElem.Elements("realFeatureFilter").FirstOrDefault(); FeatureFilterCfg = realFeatureFilterElem == null ? new RealFeatureFilterSettings() : new RealFeatureFilterSettings(realFeatureFilterElem); Check(); return; }
//Methods /// <summary> /// Creates input part of the neural preprocessor's configuration. /// </summary> private InputEncoderSettings CreateInputCfg() { //Definition of input external fields //In this example we will use three of available input fields: "High" price, "Low" price and "Adj Close" price. //We want to route input fields to readout layer together with other predictors const bool RouteToReadout = true; //All 3 input fields are real numbers and thus they should be standardly normalized and standardized. RealFeatureFilterSettings realFeatureFilterCfg = new RealFeatureFilterSettings(true, true); //Input fields collection ExternalFieldSettings extFieldHighCfg = new ExternalFieldSettings("High", realFeatureFilterCfg, RouteToReadout); ExternalFieldSettings extFieldLowCfg = new ExternalFieldSettings("Low", realFeatureFilterCfg, RouteToReadout); ExternalFieldSettings extFieldAdjCloseCfg = new ExternalFieldSettings("Adj Close", realFeatureFilterCfg, RouteToReadout); ExternalFieldsSettings externalFieldsCfg = new ExternalFieldsSettings(extFieldHighCfg, extFieldLowCfg, extFieldAdjCloseCfg); //Definition of the continuous input feeding //We use FeedingContinuousSettings.AutoBootCyclesNum so necessary number of boot cycles will be automatically determined //based on neural preprocessor structure FeedingContinuousSettings feedingContinuousCfg = new FeedingContinuousSettings(FeedingContinuousSettings.AutoBootCyclesNum); //Create and return input configuration return(new InputEncoderSettings(feedingContinuousCfg, new VaryingFieldsSettings(externalFieldsCfg, null, null, RouteToReadout))); }