Dispose() public method

public Dispose ( ) : void
return void
Exemplo n.º 1
0
        public void Dispose()
        {
            Booster?.Dispose();
            Booster = null;

            DisposeParallelTraining();
        }
Exemplo n.º 2
0
        public Predictors <TOutput> Train(Datasets data
                                          , Func <int, double> learningRateSchedule = null  // optional: learning rate as a function of iteration (zero-based)
                                          )
        {
            // For multi class, the number of labels is required.
            if (!(PredictionKind != PredictionKind.MultiClassClassification || Objective.NumClass > 1))
            {
                throw new Exception("LightGBM requires the number of classes to be specified in the parameters for multi-class classification.");
            }

            if (PredictionKind == PredictionKind.Ranking)
            {
                if (data.Training.GetGroups() == null)
                {
                    throw new Exception("Require Groups training data for ObjectiveType.LambdaRank");
                }
                if (data.Validation != null && data.Validation.GetGroups() == null)
                {
                    throw new Exception("Require Groups validation data for ObjectiveType.LambdaRank");
                }
            }

            TrainMetrics.Clear();
            ValidMetrics.Clear();
            Booster?.Dispose();
            Booster = null;

            Datasets = data;

            var args = GetParameters(data);

            Booster = Train(args, data.Training, data.Validation, TrainMetrics, ValidMetrics, learningRateSchedule);

            (var model, var argsout) = Booster.GetModel();
            TrainedEnsemble          = model;
            FeatureCount             = data.Training.NumFeatures;

            // check parameter strings
            if (learningRateSchedule != null)
            {
                argsout.Learning.LearningRate = args.Learning.LearningRate;
            }
            var strIn  = args.ToString();
            var strOut = argsout.ToString();

            if (strIn != strOut)
            {
                throw new Exception($"Parameters differ:\n{strIn}\n{strOut}");
            }

            var managed = CreateManagedPredictor();
            var native  = CreateNativePredictor();

            return(new Predictors <TOutput>(managed, native));
        }
Exemplo n.º 3
0
 public void Dispose()
 {
     Booster.Dispose();
 }