将控制台应用程序转换为 UWP 应用程序错误 ML.NET

Convert Console app to UWP app error ML.NET

我正在尝试将 ML.NET 应用程序从 win 控制台转换为 UWP,但我没有将文件加载到我的 ML 管道中。我收到“找不到文件”错误。

这是我的代码:

 public static double ProcessDataBtn_Click(float tempOPS)
    {
        double rpg = 0;

        var dataset = GetDataPathByDatasetName("OPSData.csv");
        var testDataset = GetDataPathByDatasetName("OPSData-test.csv");

        var pipeline = new LearningPipeline
        {
            new TextLoader(dataset).CreateFrom<OPSData>(useHeader: true, separator: ','),
            new ColumnConcatenator("Features", "OPS"),
            new GeneralizedAdditiveModelRegressor()
        };

        var model = pipeline.Train<OPSData, OPSPrediction>();

        model.WriteAsync(GetModelFilePath("model.zip"));

获取文件代码如下:

 public static string GetDataPathByDatasetName(string datasetName)
    {
        var appPath = Path.GetDirectoryName(Environment.GetCommandLineArgs().First());
        var parentDir = Directory.GetParent(appPath).Parent.Parent.Parent.Parent;
        var datasetPath = Path.Combine(parentDir.FullName, "datasets", datasetName);
        return datasetPath;
    }

    public static string GetModelFilePath(string fileName)
    {
        var appPath = Path.GetDirectoryName(Environment.GetCommandLineArgs().First());
        var parentDir = Directory.GetParent(appPath).Parent.Parent.Parent.Parent;
        var fileDir = Path.Combine(parentDir.FullName, "models");
        if (!Directory.Exists(fileDir))
        {
            Directory.CreateDirectory(fileDir);
        }
        var filePath = Path.Combine(parentDir.FullName, "models", fileName);
        return filePath;
    }

这是我的物品。

 public class OPSData
    {
        [Column("0")]
        public float OPS;

        [Column("1", name: "Label")]
        public float RunsPerGame;
    }

    public class OPSPrediction
    {
        [ColumnName("Score")]
        public float PredictedRPG;
    }

我在以下行收到错误:

var model = pipeline.Train();

不是您希望得到的答案,但这是 ML.NET 较新版本的一个已知错误: https://github.com/dotnet/corefx/issues/33434

作为此错误的解决方法,在解决此问题之前,您必须暂时使用 0.6.0 版。

不幸的是,如果您尝试通过 Microsoft Store 发布应用程序,您可能会遇到另一个错误:https://github.com/dotnet/machinelearning/issues/1736(您将在发布版本中看到该错误,而不是在调试版本中)