internal static void ConvertIPredictorModelsToArray(IHostEnvironment env, RunContext context, List <EntryPointNode> subGraphNodes, Var <PredictorModel>[] predModelVars, string outputVarName) { var predictorArrayConverterArgs = new ArrayIPredictorModelInput(); var inputBindingMap = new Dictionary <string, List <ParameterBinding> >(); var inputMap = new Dictionary <ParameterBinding, VariableBinding>(); var argName = nameof(predictorArrayConverterArgs.Model); inputBindingMap.Add(argName, new List <ParameterBinding>()); for (int i = 0; i < predModelVars.Length; i++) { var paramBinding = new ArrayIndexParameterBinding(argName, i); inputBindingMap[argName].Add(paramBinding); inputMap[paramBinding] = new SimpleVariableBinding(predModelVars[i].VarName); } var outputMap = new Dictionary <string, string>(); var output = new ArrayVar <PredictorModel>(); outputMap.Add(nameof(MacroUtils.ArrayIPredictorModelOutput.OutputModel), outputVarName); var arrayConvertNode = EntryPointNode.Create(env, "Data.PredictorModelArrayConverter", predictorArrayConverterArgs, context, inputBindingMap, inputMap, outputMap); subGraphNodes.Add(arrayConvertNode); }
internal static void ConvertIdataViewsToArray(IHostEnvironment env, RunContext context, List <EntryPointNode> subGraphNodes, Var <IDataView>[] vars, string outputVarName) { var dataviewArrayConverterArgs = new ArrayIDataViewInput(); var inputBindingMap = new Dictionary <string, List <ParameterBinding> >(); var inputMap = new Dictionary <ParameterBinding, VariableBinding>(); var argName = nameof(dataviewArrayConverterArgs.Data); inputBindingMap.Add(argName, new List <ParameterBinding>()); for (int i = 0; i < vars.Length; i++) { var paramBinding = new ArrayIndexParameterBinding(argName, i); inputBindingMap[argName].Add(paramBinding); inputMap[paramBinding] = new SimpleVariableBinding(vars[i].VarName); } var outputMap = new Dictionary <string, string>(); outputMap.Add(nameof(ArrayIDataViewOutput.OutputData), outputVarName); var arrayConvertNode = EntryPointNode.Create(env, "Data.IDataViewArrayConverter", dataviewArrayConverterArgs, context, inputBindingMap, inputMap, outputMap); subGraphNodes.Add(arrayConvertNode); }