dotnet / machinelearning-modelbuilder

Simple UI tool to build custom machine learning models.
Creative Commons Attribution 4.0 International
260 stars 52 forks source link

Cant run mlnet on Linux #2529

Open SandroGreinecker opened 1 year ago

SandroGreinecker commented 1 year ago

Here is my training-config:

{
  "Scenario": "Regression",
  "DataSource": {
    "Type": "TabularFile",
    "Version": 1,
    "FilePath": "realcsv.txt",
    "Delimiter": ";",
    "DecimalMarker": ",",
    "HasHeader": false,
    "ColumnProperties": [
      {
        "ColumnName": "Date",
        "ColumnPurpose": "Feature",
        "ColumnDataFormat": "String",
        "IsCategorical": false,
        "Type": "Column",
        "Version": 3
      },
      {
        "ColumnName": "Scans",
        "ColumnPurpose": "Label",
        "ColumnDataFormat": "Single",
        "IsCategorical": false,
        "Type": "Column",
        "Version": 3
      }
    ]
  },
  "Environment": {
    "Type": "LocalCPU",
    "Version": 1
  },
  "RunHistory": {
    "Version": 2,
    "Type": "Result",
    "Trials": [
      {
        "Version": 1,
        "Type": "Trial",
        "TrainerName": "FastForestRegression",
        "Score": 0.0,
        "RuntimeInSeconds": 0.372,
        "Parameter": {
          "_SCHEMA_": "e0 * e1 * e3",
          "e0": {
            "OutputColumnNames": [
              "Date"
            ],
            "InputColumnNames": [
              "Date"
            ]
          },
          "e1": {
            "InputColumnNames": [
              "Date"
            ],
            "OutputColumnName": "Features"
          },
          "e3": {
            "NumberOfTrees": 4,
            "NumberOfLeaves": 4,
            "FeatureFraction": 1.0,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e2": {
            "NumberOfLeaves": 4,
            "MinimumExampleCountPerLeaf": 20,
            "NumberOfTrees": 4,
            "MaximumBinCountPerFeature": 255,
            "FeatureFraction": 1.0,
            "LearningRate": 0.099999999999999978,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e4": {
            "NumberOfLeaves": 4,
            "MinimumExampleCountPerLeaf": 20,
            "LearningRate": 1.0,
            "NumberOfTrees": 4,
            "SubsampleFraction": 1.0,
            "MaximumBinCountPerFeature": 255,
            "FeatureFraction": 1.0,
            "L1Regularization": 2E-10,
            "L2Regularization": 1.0,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e5": {
            "L1Regularization": 1.0,
            "L2Regularization": 1.0,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e6": {
            "L1Regularization": 1.0,
            "L2Regularization": 0.1,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          }
        }
      },
      {
        "Version": 1,
        "Type": "Trial",
        "TrainerName": "FastTreeRegression",
        "Score": 0.0,
        "RuntimeInSeconds": 0.04,
        "Parameter": {
          "_SCHEMA_": "e0 * e1 * e2",
          "e0": {
            "OutputColumnNames": [
              "Date"
            ],
            "InputColumnNames": [
              "Date"
            ]
          },
          "e1": {
            "InputColumnNames": [
              "Date"
            ],
            "OutputColumnName": "Features"
          },
          "e2": {
            "NumberOfLeaves": 4,
            "MinimumExampleCountPerLeaf": 20,
            "NumberOfTrees": 4,
            "MaximumBinCountPerFeature": 254,
            "FeatureFraction": 1.0,
            "LearningRate": 0.099999999999999978,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e3": {
            "NumberOfTrees": 4,
            "NumberOfLeaves": 4,
            "FeatureFraction": 1.0,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e4": {
            "NumberOfLeaves": 4,
            "MinimumExampleCountPerLeaf": 20,
            "LearningRate": 1.0,
            "NumberOfTrees": 4,
            "SubsampleFraction": 1.0,
            "MaximumBinCountPerFeature": 255,
            "FeatureFraction": 1.0,
            "L1Regularization": 2E-10,
            "L2Regularization": 1.0,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e5": {
            "L1Regularization": 1.0,
            "L2Regularization": 1.0,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e6": {
            "L1Regularization": 1.0,
            "L2Regularization": 0.1,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          }
        }
      },
      {
        "Version": 1,
        "Type": "Trial",
        "TrainerName": "FastForestRegression",
        "Score": 0.0,
        "RuntimeInSeconds": 0.024,
        "Parameter": {
          "_SCHEMA_": "e0 * e1 * e3",
          "e0": {
            "OutputColumnNames": [
              "Date"
            ],
            "InputColumnNames": [
              "Date"
            ]
          },
          "e1": {
            "InputColumnNames": [
              "Date"
            ],
            "OutputColumnName": "Features"
          },
          "e3": {
            "NumberOfTrees": 4,
            "NumberOfLeaves": 4,
            "FeatureFraction": 1.0,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e2": {
            "NumberOfLeaves": 4,
            "MinimumExampleCountPerLeaf": 20,
            "NumberOfTrees": 4,
            "MaximumBinCountPerFeature": 255,
            "FeatureFraction": 1.0,
            "LearningRate": 0.099999999999999978,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e4": {
            "NumberOfLeaves": 4,
            "MinimumExampleCountPerLeaf": 20,
            "LearningRate": 1.0,
            "NumberOfTrees": 4,
            "SubsampleFraction": 1.0,
            "MaximumBinCountPerFeature": 255,
            "FeatureFraction": 1.0,
            "L1Regularization": 2E-10,
            "L2Regularization": 1.0,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e5": {
            "L1Regularization": 1.0,
            "L2Regularization": 1.0,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e6": {
            "L1Regularization": 1.0,
            "L2Regularization": 0.1,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          }
        }
      },
      {
        "Version": 1,
        "Type": "Trial",
        "TrainerName": "FastTreeRegression",
        "Score": 0.0,
        "RuntimeInSeconds": 0.025,
        "Parameter": {
          "_SCHEMA_": "e0 * e1 * e2",
          "e0": {
            "OutputColumnNames": [
              "Date"
            ],
            "InputColumnNames": [
              "Date"
            ]
          },
          "e1": {
            "InputColumnNames": [
              "Date"
            ],
            "OutputColumnName": "Features"
          },
          "e2": {
            "NumberOfLeaves": 4,
            "MinimumExampleCountPerLeaf": 28,
            "NumberOfTrees": 4,
            "MaximumBinCountPerFeature": 575,
            "FeatureFraction": 0.99999999,
            "LearningRate": 0.083949019229038066,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e3": {
            "NumberOfTrees": 4,
            "NumberOfLeaves": 4,
            "FeatureFraction": 1.0,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e4": {
            "NumberOfLeaves": 4,
            "MinimumExampleCountPerLeaf": 20,
            "LearningRate": 1.0,
            "NumberOfTrees": 4,
            "SubsampleFraction": 1.0,
            "MaximumBinCountPerFeature": 255,
            "FeatureFraction": 1.0,
            "L1Regularization": 2E-10,
            "L2Regularization": 1.0,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e5": {
            "L1Regularization": 1.0,
            "L2Regularization": 1.0,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          },
          "e6": {
            "L1Regularization": 1.0,
            "L2Regularization": 0.1,
            "LabelColumnName": "Scans",
            "FeatureColumnName": "Features"
          }
        }
      }
    ],
    "Estimators": {
      "e0": "ConvertType",
      "e1": "Concatenate",
      "e2": "FastTreeRegression",
      "e3": "FastForestRegression",
      "e4": "LightGbmRegression",
      "e5": "LbfgsPoissonRegressionRegression",
      "e6": "SdcaRegression"
    },
    "Schema": "e0 * e1 * (e2 + e3 + e4 + e5 + e6)",
    "MetricName": "RSquared"
  },
  "Type": "TrainingConfig",
  "Version": 3,
  "TrainingOption": {
    "Version": 0,
    "Type": "RegressionTrainingOption",
    "TrainingTime": 10,
    "LabelColumn": "Scans",
    "Seed": 0
  }
}

And here is my dataset(realcsv.txt):

Date;Scans
01.01.2023;10
02.01.2023;15
03.01.2023;8
04.01.2023;7
05.01.2023;15
06.01.2023;30
07.01.2023;10
08.01.2023;20
09.01.2023;17
10.01.2023;0

When running mlnet train --training-config MLModelExample.mbconfig on Linux I get following Error:

System.ArgumentException: The path is empty. (Parameter 'path')
   at System.IO.Path.GetFullPath(String path)
   at System.IO.FileInfo..ctor(String fileName)
   at Microsoft.ML.ModelBuilder.AutoMLEngine.SaveModel(MLContext context, ITransformer model, DataViewSchema dataViewSchema, String location) in /_/src/Microsoft.ML.ModelBuilder.AutoMLService/AutoMLEngineService/AutoMLEngine.cs:line 365
   at Microsoft.ML.ModelBuilder.AutoMLEngine.StartTrainingAsync(ITrainingConfiguration config, PathConfiguration pathConfig, CancellationToken userCancellationToken) in /_/src/Microsoft.ML.ModelBuilder.AutoMLService/AutoMLEngineService/AutoMLEngine.cs:line 153
   at Microsoft.ML.CLI.Runners.AutoMLRunner.ExecuteAsync() in /_/src/mlnet/Runners/AutoMLRunner.cs:line 89
   at Microsoft.ML.CLI.Program.TrainAsync(TrainingConfiguration trainingConfiguration, PathConfiguration pathConfig, AutoMLServiceLogLevel logLevel) in /_/src/mlnet/Program.cs:line 350
   at Microsoft.ML.CLI.Program.<>c.<<CreateRootCommandLineBuilder>b__4_4>d.MoveNext() in /_/src/mlnet/Program.cs:line 178
--- End of stack trace from previous location ---
   at System.CommandLine.Invocation.CommandHandler.GetExitCodeAsync(Object value, InvocationContext context)
   at System.CommandLine.Invocation.ModelBindingCommandHandler.InvokeAsync(InvocationContext context)
   at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass23_0.<<UseParseErrorReporting>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.ML.CLI.Program.<>c__DisplayClass4_0.<<CreateRootCommandLineBuilder>b__9>d.MoveNext() in /_/src/mlnet/Program.cs:line 292
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__24_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass22_0.<<UseParseDirective>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass11_0.<<UseDebugDirective>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__10_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass14_0.<<UseExceptionHandler>b__0>d.MoveNext()
luisquintanilla commented 1 year ago

@SandroGreinecker does this still happen on the latest version of the ML.NET CLI?