示例#1
0
            public override IEstimator <ITransformer> Reconcile(IHostEnvironment env,
                                                                PipelineColumn[] toOutput,
                                                                IReadOnlyDictionary <PipelineColumn, string> inputNames,
                                                                IReadOnlyDictionary <PipelineColumn, string> outputNames,
                                                                IReadOnlyCollection <string> usedNames)
            {
                // For the moment, the concat estimator can only do one concatenation at a time.
                // So we will chain the estimators.
                Contracts.AssertNonEmpty(toOutput);
                IEstimator <ITransformer> est = null;

                for (int i = 0; i < toOutput.Length; ++i)
                {
                    var      ccol     = (IConcatCol)toOutput[i];
                    string[] inputs   = ccol.Sources.Select(s => inputNames[s]).ToArray();
                    var      localEst = new ConcatEstimator(env, outputNames[toOutput[i]], inputs);
                    if (i == 0)
                    {
                        est = localEst;
                    }
                    else
                    {
                        est = est.Append(localEst);
                    }
                }
                return(est);
            }