public static Output MakeScoringTransform(IHostEnvironment env, ModelInput input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("MakeScoringTransform"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); IPredictor predictor; RoleMappedData data; var emptyData = new EmptyDataView(host, input.PredictorModel.TransformModel.InputSchema); input.PredictorModel.PrepareData(host, emptyData, out data, out predictor); IDataView scoredPipe; using (var ch = host.Start("Creating scoring pipeline")) { ch.Trace("Creating pipeline"); var bindable = ScoreUtils.GetSchemaBindableMapper(host, predictor, scorerSettings: null); ch.AssertValue(bindable); var mapper = bindable.Bind(host, data.Schema); var scorer = ScoreUtils.GetScorerComponent(mapper); scoredPipe = scorer.CreateInstance(host, data.Data, mapper, input.PredictorModel.GetTrainingSchema(host)); ch.Done(); } return(new Output { ScoredData = scoredPipe, ScoringTransform = new TransformModel(host, scoredPipe, emptyData) }); }
public static Output Score(IHostEnvironment env, Input input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("ScoreModel"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); var inputData = input.Data; input.PredictorModel.PrepareData(host, inputData, out RoleMappedData data, out IPredictor predictor); IDataView scoredPipe; using (var ch = host.Start("Creating scoring pipeline")) { ch.Trace("Creating pipeline"); var bindable = ScoreUtils.GetSchemaBindableMapper(host, predictor); ch.AssertValue(bindable); var mapper = bindable.Bind(host, data.Schema); var scorer = ScoreUtils.GetScorerComponent(host, mapper, input.Suffix); scoredPipe = scorer.CreateComponent(host, data.Data, mapper, input.PredictorModel.GetTrainingSchema(host)); } return (new Output { ScoredData = scoredPipe, ScoringTransform = new TransformModelImpl(host, scoredPipe, inputData) }); }
public static ScoringTransformOutput Score(IHostEnvironment env, ScoringTransformInput input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("ScoreModel"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); RoleMappedData data; IPredictor predictor; var inputData = input.Data; try { input.PredictorModel.PrepareData(host, inputData, out data, out predictor); } catch (Exception) { // this can happen in csr_matrix case, try to use only trainer model. host.Assert(inputData.Schema.Count == 1); var inputColumnName = inputData.Schema[0].Name; var trainingSchema = input.PredictorModel.GetTrainingSchema(host); // get feature vector item type. var trainingFeatureColumn = (DataViewSchema.Column)trainingSchema.Feature; var requiredType = trainingFeatureColumn.Type.GetItemType().RawType; var featuresColumnName = trainingFeatureColumn.Name; predictor = input.PredictorModel.Predictor; var xf = new TypeConvertingTransformer(host, new TypeConvertingEstimator.ColumnOptions(featuresColumnName, requiredType, inputColumnName)).Transform(inputData); data = new RoleMappedData(xf, null, featuresColumnName); } IDataView scoredPipe; using (var ch = host.Start("Creating scoring pipeline")) { ch.Trace("Creating pipeline"); var bindable = ScoreUtils.GetSchemaBindableMapper(host, predictor); ch.AssertValue(bindable); var mapper = bindable.Bind(host, data.Schema); var scorer = ScoreUtils.GetScorerComponent(host, mapper, input.Suffix); scoredPipe = scorer.CreateComponent(host, data.Data, mapper, input.PredictorModel.GetTrainingSchema(host)); } return (new ScoringTransformOutput { ScoredData = scoredPipe, ScoringTransform = new TransformModelImpl(host, scoredPipe, inputData) }); }
public static Output Score(IHostEnvironment env, Input input) { Contracts.CheckValue(env, nameof(env)); var host = env.Register("ScoreModel"); host.CheckValue(input, nameof(input)); EntryPointUtils.CheckInputArgs(host, input); IPredictor predictor; var inputData = input.Data; RoleMappedData data; input.PredictorModel.PrepareData(host, inputData, out data, out predictor); IDataView scoredPipe; using (var ch = host.Start("Creating scoring pipeline")) { ch.Trace("Creating pipeline"); var bindable = ScoreUtils.GetSchemaBindableMapper(host, predictor, scorerSettings: null); ch.AssertValue(bindable); var mapper = bindable.Bind(host, data.Schema); var scorer = ScoreUtils.GetScorerComponent(mapper); Contracts.Assert(string.IsNullOrEmpty(scorer.SubComponentSettings)); scorer.SubComponentSettings = string.Format("suffix={{{0}}}", input.Suffix); scoredPipe = scorer.CreateInstance(host, data.Data, mapper, input.PredictorModel.GetTrainingSchema(host)); ch.Done(); } return (new Output { ScoredData = scoredPipe, ScoringTransform = new TransformModel(host, scoredPipe, inputData) }); }