【问题标题】:ML.NET c# 'Can't bind the IDataView column 'Score' of type 'Single' to field or property 'Score' of type 'System.Single[]'.'ML.NET c#'无法将'Single'类型的 IDataView 列'Score'绑定到'System.Single []'类型的字段或属性'Score'。
【发布时间】:2022-06-11 00:59:25
【问题描述】:

这是代码:

public class Program
   {
       static void Main(string[] args)
       {
           string fullPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Resources");
           foreach (string file in Directory.GetFiles(fullPath))
           {
               MLContext mlContext = new MLContext();
               IDataView data = mlContext.Data.LoadFromTextFile<HousingData>(file, separatorChar: ',', hasHeader: true);

               var pipeline = mlContext.Transforms.CopyColumns(outputColumnName: "Label", inputColumnName: nameof(HousingData.Brightness_Level))
                       .Append(mlContext.Transforms.NormalizeMeanVariance(outputColumnName: nameof(HousingData.IsReserved)))
                       .Append(mlContext.Transforms.NormalizeMeanVariance(outputColumnName: nameof(HousingData.SolarAltitude)))
                       .Append(mlContext.Transforms.NormalizeMeanVariance(outputColumnName: nameof(HousingData.SolarAzimuth)))
                       .Append(mlContext.Transforms.NormalizeMeanVariance(outputColumnName: nameof(HousingData.SunPower)))
                       .Append(mlContext.Transforms.Concatenate("Features", nameof(HousingData.Brightness_Level),
                        nameof(HousingData.IsReserved), nameof(HousingData.SolarAltitude), nameof(HousingData.SolarAzimuth), nameof(HousingData.SunPower)))
                       .Append(mlContext.Regression.Trainers.FastForest(labelColumnName: "Label", featureColumnName: "Features"));
               ITransformer trainedModel = pipeline.Fit(data);

               mlContext.Model.Save(trainedModel, data.Schema, "MLModel1.zip");

               IEnumerable<HousingData> housingDataEnumerable =
                   mlContext.Data.CreateEnumerable<HousingData>(data, reuseRowObject: true);

               

               foreach (HousingData row in housingDataEnumerable)
               {
                   MLModel1.ModelInput sampleData = new MLModel1.ModelInput()
                   {
                       IsReserved = row.IsReserved,
                       SolarAltitude = row.SolarAltitude,
                       SolarAzimuth = row.SolarAzimuth,
                       SunPower = row.SunPower
                   };
                   Console.WriteLine($"IsReserved: {row.IsReserved}");
                   Console.WriteLine($"SolarAltitune: {row.SolarAltitude}");
                   Console.WriteLine($"SolarAzimuth: {row.SolarAzimuth}");
                   Console.WriteLine($"SunPower: {row.SunPower}");

                   var prediction = MLModel1.Predict(sampleData);
                   Console.WriteLine($"\nPredicted Brightness_Level: {prediction.Prediction}\n");
                   Console.WriteLine("--------------------------------------------------");
               }
           }
           Console.ReadKey();
       }
       public class HousingData
       {
           [ColumnName("Brightness_Level"), LoadColumn(1)]
           public float Brightness_Level { get; set; }

           [ColumnName("IsReserved"), LoadColumn(29)]
           public float IsReserved { get; set; }

           [ColumnName("SolarAltitude"), LoadColumn(31)]
           public float SolarAltitude { get; set; }

           [ColumnName("SolarAzimuth"), LoadColumn(32)]
           public float SolarAzimuth { get; set; }

           [ColumnName("SunPower"), LoadColumn(33)]
           public float SunPower { get; set; }
       }
   }

当我启动程序时,它总是给我同样的错误,我不知道如何修复它,我正在使用 ml net 库,我正在处理 csv 文件。

System.InvalidOperationException H结果=0x80131509 Messaggio=无法将“Single”类型的 IDataView 列“Score”绑定到“System.Single[]”类型的字段或属性“Score”。 Origine=Microsoft.ML.Data

【问题讨论】:

标签: c# machine-learning ml.net


猜你喜欢
  • 1970-01-01
  • 2015-06-25
  • 1970-01-01
  • 2020-12-02
  • 2016-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多