【发布时间】: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
【问题讨论】:
-
您可能缺少输出类。但是,不要保存模型,而是尝试创建一个预测引擎 - docs.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/…
-
请阅读ML标签的description。
标签: c# machine-learning ml.net