/// <summary> /// Computes the readout unit. /// </summary> /// <param name="predictors">The predictors.</param> /// <returns>The readout unit's composite result.</returns> public CompositeResult Compute(double[] predictors) { if (!Ready) { throw new InvalidOperationException($"Readout unit {Name} is not ready to operate. Call the Build method first."); } double[] result = _clusterChain.Compute(predictors, out List <Tuple <int, double[]> > mainClusterSubResults); return(new CompositeResult(result, NonRecurrentNetUtils.ExtractVectors(mainClusterSubResults))); }
/// <summary> /// Creates an initialized instance. /// </summary> /// <param name="elem">Xml element containing the initialization settings</param> public ClassificationNetworksSettings(XElement elem) { //Validation XElement settingsElem = Validate(elem, XsdTypeName); //Parsing NetworkCfgCollection = NonRecurrentNetUtils.LoadSettingsCollection(settingsElem); return; }
private double[] CreateInputVector(CompositeResult[] allReadoutUnitResults) { OneTakesAllClusterChainDecisionSettings clusterCfg = (OneTakesAllClusterChainDecisionSettings)_groupCfg.DecisionCfg; List <double[]> components = new List <double[]>(); foreach (int unitIdx in MemberReadoutUnitIndexCollection) { if (clusterCfg.UseReadoutUnitsFinalResult) { components.Add(allReadoutUnitResults[unitIdx].Result); } if (clusterCfg.UseReadoutUnitsSubResults) { foreach (double[] subResult in allReadoutUnitResults[unitIdx].SubResults) { components.Add(subResult); } } } return(NonRecurrentNetUtils.Flattenize(components)); }