dotnet / machinelearning

ML.NET is an open source and cross-platform machine learning framework for .NET.
https://dot.net/ml
MIT License
8.93k stars 1.86k forks source link

OneDAL FastForest training has an IndexOutOfRange exception for ML.net 3 #6892

Open 80LevelElf opened 7 months ago

80LevelElf commented 7 months ago

System Information (please complete the following information): OS & Version: mcr.microsoft.com/dotnet/sdk:5.0 docker image (Linux Alpine) ML.NET Version: 3.0.0 .NET Version: NET 5.0

System.AggregateException: One or more errors occurred. (Index was outside the bounds of the array.)\n ---> 
System.IndexOutOfRangeException: Index was outside the bounds of the array.\n   at 
Microsoft.ML.Trainers.FastTree.InternalRegressionTree.PopulateThresholds(Dataset dataset)\n   at 
Microsoft.ML.Trainers.FastTree.FastForestBinaryTrainer.TrainCoreOneDal(IChannel ch, Factory cursorFactory, Int32 featureCount)\n   at 
Microsoft.ML.Trainers.FastTree.FastForestBinaryTrainer.TrainModelCore(TrainContext context)\n   at 
Microsoft.ML.Trainers.TrainerEstimatorBase`2.TrainTransformer(IDataView trainSet, IDataView validationSet, IPredictor initPredictor)\n   at 
Microsoft.ML.Trainers.TrainerEstimatorBase`2.Fit(IDataView input)\n   at Microsoft.ML.Data.EstimatorChain`1.Fit(IDataView input)\n   at 
Microsoft.ML.TrainCatalogBase.CrossValidateTrain(IDataView data, IEstimator`1 estimator, Int32 numFolds, String samplingKeyColumn, Nullable`1 seed)\n   at
 Microsoft.ML.BinaryClassificationCatalog.CrossValidateNonCalibrated(IDataView data, IEstimator`1 estimator, Int32 numberOfFolds, String labelColumnName, String samplingKeyColumnName, Nullable`1 seed)\n   at 
Microsoft.ML.AutoML.BinaryClassificationRunner.Run(TrialSettings settings)\n   at 
Microsoft.ML.AutoML.BinaryClassificationRunner.RunAsync(TrialSettings settings, CancellationToken ct)\n   at 
Microsoft.ML.AutoML.AutoMLExperiment.RunAsync(CancellationToken ct)\n   --- End of inner exception stack trace ---\n   at 
System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)\n   at System.Threading.Tasks.Task`1.get_Result()\n   at Microsoft.ML.AutoML.AutoMLExperiment.Run()\n   at
 Microsoft.ML.AutoML.BinaryClassificationExperiment.Execute(IDataView trainData, ColumnInformation columnInformation, IEstimator`1 preFeaturizer, IProgress`1 progressHandler)\n   at
 Microsoft.ML.AutoML.BinaryClassificationExperiment.Execute(IDataView trainData, String labelColumnName, String samplingKeyColumn, IEstimator`1 preFeaturizer, IProgress`1 progressHandler)
luisquintanilla commented 7 months ago

@rgesteve any thoughts?