private void OnBufferFinished(dynamic data) { Data = (List <double[]>)data; Data.ForEach(vector => { FeatureVector.AddRange(vector); }); Fuse(); }
/// <summary> /// Instantiate DecisionsInDecisionOut fusion strategy by providing other fusion strategies whose output would be used as an input for this fusion. /// </summary> /// <param name="fusionStrategies"></param> public DecisionsInDecisionOut(List <IFusionStrategy> fusionStrategies) { FusionStrategies = fusionStrategies; FusionStrategies.ForEach((IFusionStrategy fusionStrategy) => { fusionStrategy.OnFusionFinished = ((dynamic output) => { if (IFusionStrategyFinished == FusionStrategies.Count) { Fuse(); } else { FeatureVector.AddRange(new List <double>(output)); IFusionStrategyFinished++; } }); }); }
/// <summary> /// Instantiate FeaturesInDecisionOut fusion strategy by providing other fusion strategies whose output would be used as an input for this fusion. /// </summary> /// <param name="fusionStrategies"></param> /// <param name="classifier">Classifier to be use.</param> public FeaturesInDecisionOut(List <IFusionStrategy> fusionStrategies, IClassifier classifier) { Classifier = classifier; FusionStrategies = fusionStrategies; FusionStrategies.ForEach((IFusionStrategy fusionStrategy) => { fusionStrategy.OnFusionFinished = ((dynamic output) => { if (IFusionStrategyFinished >= FusionStrategies.Count) { if (FusionStrategies.Count == 1) { FeatureVector = output; } Fuse(); } else { FeatureVector.AddRange(new List <double>(output)); IFusionStrategyFinished++; } }); }); }