TVectorPredictor Train(RoleMappedData data) { Contracts.CheckValue(data, "data"); data.CheckFeatureFloatVector(); int count; data.CheckMulticlassLabel(out count); using (var ch = Host.Start("Training")) { // Train one-vs-all models. _predictors = new TVectorPredictor[1]; for (int i = 0; i < _predictors.Length; i++) { ch.Info("Training learner {0}", i); Contracts.CheckValue(_args.predictorType, "predictorType", "Must specify a base learner type"); TScalarTrainer trainer; if (_trainer != null) { trainer = _trainer; } else { var temp = ScikitSubComponent <ITrainer, SignatureBinaryClassifierTrainer> .AsSubComponent(_args.predictorType); var inst = temp.CreateInstance(Host); trainer = inst as TScalarTrainer; if (trainer == null) { var allTypes = TrainerHelper.GetParentTypes(inst.GetType()).ToArray(); var allTypesStr = string.Join("\n", allTypes.Select(c => c.ToString())); throw ch.ExceptNotSupp($"Unable to cast {inst.GetType()} into {typeof(TScalarTrainer)}.\n-TYPES-\n{allTypesStr}"); } } _trainer = null; _predictors[i] = TrainPredictor(ch, trainer, data, count); } } return(CreatePredictor()); }
protected override TVectorPredictor Train(TrainContext context) { var data = context.TrainingSet; Contracts.CheckValue(data, "data"); data.CheckFeatureFloatVector(); int count; data.CheckMulticlassLabel(out count); using (var ch = Host.Start("Training")) { // Train one-vs-all models. _predictors = new TVectorPredictor[1]; for (int i = 0; i < _predictors.Length; i++) { ch.Info("Training learner {0}", i); Contracts.CheckValue(_args.predictorType, "predictorType", "Must specify a base learner type"); TScalarTrainer trainer; if (_trainer != null) { trainer = _trainer; } else { var trSett = ScikitSubComponent <ITrainer, SignatureTrainer> .AsSubComponent(_args.predictorType); var tr = trSett.CreateInstance(Host); trainer = tr as TScalarTrainer; Contracts.AssertValue(trainer); } _trainer = null; _predictors[i] = TrainPredictor(ch, trainer, data, count); } } return(CreatePredictor()); }
TVectorPredictor Train(RoleMappedData data) { Contracts.CheckValue(data, "data"); data.CheckFeatureFloatVector(); int count; data.CheckMultiClassLabel(out count); using (var ch = Host.Start("Training")) { // Train one-vs-all models. _predictors = new TVectorPredictor[1]; for (int i = 0; i < _predictors.Length; i++) { ch.Info("Training learner {0}", i); Contracts.CheckValue(_args.predictorType, "predictorType", "Must specify a base learner type"); TScalarTrainer trainer; if (_trainer != null) { trainer = _trainer; } else { var temp = ScikitSubComponent <ITrainer, SignatureBinaryClassifierTrainer> .AsSubComponent(_args.predictorType); trainer = temp.CreateInstance(Host) as TScalarTrainer; } _trainer = null; _predictors[i] = TrainPredictor(ch, trainer, data, count); } } return(CreatePredictor()); }