问题标签 [ml.net-model-builder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3523 浏览

c# - ML.Net 重新训练现有模型而不是训练新模型

我正在训练一个 ML.Net 机器学习模型。我可以训练它并从中预测,然后从磁盘保存/加载它。但是我需要能够从磁盘上加载它,然后重新训练它,或者添加新信息以随着时间的推移对其进行改进。

有谁知道这是否可能?我在 MS 文档中没有找到任何关于如何做到这一点的内容,但这对于 ML 来说是一件非常标准的事情,所以如果这不可能,我会感到惊讶。

谢谢

0 投票
0 回答
270 浏览

asp.net-web-api - ml.net 模型适用于控制台应用程序,但不适用于 web api

我已经使用 ml.net 模型构建器创建了一个 MLModel,它可以与“使用”控制台应用程序和硬编码值一起使用。我想进入下一步并使用 web api 提供值。我正在使用他们在 web api 中使用 mlmodel 的教程示例的修改版本。当我将邮递员与 webapi 一起使用时,出现以下错误;

System.InvalidOperationException:'无法将类型为'Single'的映射应用于列'PG',因为它的类型为'String''

mlmodel 从模型构建器成功构建,并且默认代码是从模型构建器生成的。在模型上运行带有硬编码值的消费控制台应用程序是可行的。

这是modelinput的相关代码

//************************************************ ***************************************** //* * //* 这是Microsoft ML.NET CLI(命令行界面)工具自动生成的文件。* //* * //************************************************ ************************************************

这里是模型输出

//************************************************ ***************************************** //* * //* 这是Microsoft ML.NET CLI(命令行界面)工具自动生成的文件。* //* * //************************************************ ************************************************

我分别在jobclassdata和jobclassprediction的等效webapi类中克隆了modelinput和modeloutput类

有效的控制台应用程序:

这是预测控制器的代码

这是发布的json正文代码

预期结果将是预测的工资等级,例如 PG03。相反,错误是

System.InvalidOperationException:'无法将类型为'Single'的映射应用于列'PG',因为它的类型为'String''

在线

没有编译错误并且控制台应用程序正常工作是json输入的格式吗?

谢谢

0 投票
2 回答
1150 浏览

c# - 模型生成器无法加载 ML.Net Data.SaveAsText CSV 文件

我使用此功能将当前的 ML.Net 数据导出到 CSV

保存的数据看起来不错,但是当我尝试使用ML.Net 模型生成器加载 CSV 时,我收到此错误:

数据错误:无法推断所提供文件的列类型。

注意:我在 CSV 中也有向量列

CSV 文件看起来像这样(我删除了一些更小的列)。

如果我使用 mlContext.Data.LoadFromTextFile("c:\temp\aidata.csv"); 加载数据文件 它加载它没有任何错误,但模型生成器无法加载它。

0 投票
1 回答
192 浏览

visual-studio-2019 - ML.NET 图像分类训练冻结

我在 Windows 10 PC 上的 Visual Studio 2019 中使用最新版本的 ML.NET 图像分类来检测不适当的图像。我使用了一个包含 3000 个 SFW 和 3000 个 NSFW 图像的数据集来训练它,但它在训练时卡住了。没有输出错误,它只是停止使用 CPU 并停止输出到控制台。

它经常在一行之后随机停止,例如:

[Source=ImageClassificationTrainer; ImageClassificationTrainer, Kind=Trace] Phase: Bottleneck Computation, Dataset used: Train, Image Index: 1109

或者

[Source=ImageClassificationTrainer; MultiClassClassifierScore; Cursor, Kind=Trace] Channel disposed

停止使用 CPU 后,机器学习模型构建器上的训练页面保持不变:

在此处输入图像描述

我也尝试过使用每种类型的 700 张图像的较小数据集,但最终得到了相似的结果。这是什么原因造成的?

0 投票
0 回答
61 浏览

image-processing - ML.Net 是否允许训练多输入模型?

我的要求是同时使用图像和文本输入来训练模型。

目前我使用图像分类模型来预测使用给定的图像。

但我也希望使用一些文本输入来训练模型。

有没有办法使用 ML.net 来做到这一点?

0 投票
1 回答
369 浏览

c# - 在哪里指定 ML.NET 中的训练时间

我正在评估 ML.NET 模型生成器(预览版)16.1.0.2027905。当我去训练时,生成器让我指定“训练时间(秒)”(见图):

在此处输入图像描述

但是,当我到达第 6 步并生成代码时,我似乎找不到指定“训练时间”的位置......

ML.NET Builder 在 ModelBuilder.cs 文件中自动为我创建了这个函数:

但我在调试器中查看了 mlContext、trainingDataView、trainingPipeline 对象,并没有立即看到我可以在哪里指定训练时间。另外,我对 3600(这是我训练的时间)进行了全局文本搜索,但我没有找到任何有趣的代码。

ML.NET 中是否有一些简单的方法可以在几秒钟内指定“训练时间”?

我问这个问题是因为我想使用用户指定的训练间隔手动调用 ModelBuilder.TrainModel。我不想总是被要求使用 ML.NET Builder GUI 来重新训练我的模型。

0 投票
0 回答
834 浏览

c# - 为什么实际上无法加载onnxruntime.dll?

使用 Microsoft 开发人员提供的教程,我按照https://docs.microsoft.com/en-us/dotnet/machine-learning/tutorials/object-detection-onnx创建的教程进行操作。

我确保从 Nvidia 的站点安装 CUDA V10.1.243 和 cuDNN 7.6.5。

然而不知何故,即使在将 的全部内容复制C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin到我的项目二进制目录之后machinelearning-samples\samples\csharp\end-to-end-apps\ObjectDetection-Onnx\OnnxObjectDetectionApp\bin\Debug\netcoreapp3.0,我在编译 MS 提供的示例程序时仍然遇到以下错误Exception thrown: 'System.DllNotFoundException' in System.Private.CoreLib.dll An exception of type 'System.DllNotFoundException' occurred in System.Private.CoreLib.dll but was not handled in user code Unable to load DLL 'onnxruntime' or one of its dependencies: The specified module could not be found. (0x8007007E)

这应该确保它们可以从 PATH 访问,对吗?我还将它们的原始位置包括NVIDIA GPU Toolkit在系统 PATH 中。我正在使用最新版本的 Visual Studio 2019 来加载和编译此解决方案。有没有人能够成功运行此代码,如果是,如何?

0 投票
2 回答
274 浏览

c# - 获取 ML NET 模型 zip 文件流时 Blazor 中的错误

我对 Blazor 有疑问。我尝试按照文档中有关从远程源加载现有模型的内容进行操作。(https://docs.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/save-load-machine-learning-models-ml-net

这就是我想出的:

初始化页面的时候,出现了错误,唯一明白的就是第32行有错误,

我找不到有同样问题的人。这是错误代码:

我真的不知道该怎么办。

我用了:

  • ASP.NET 核心 3.1
  • 机器学习网络 1.5
  • .NET 标准 2.1

我发现有人似乎在类似类型的项目上取得了成功,我们的程序在结构上是相同的:https ://www.luisquintanilla.me/2020/03/01/deploy-machine-learning-mlnet-models-blazor-网络组装

我在 DigitalOcean 和 wwwroot 上都托管了我的 ML 模型,但它有相同的错误。

0 投票
0 回答
28 浏览

ml.net - 具有太多标签的 ML.NET 模型生成器

我有一个 12k 样本的训练集。每个样本都是我的模型的结果。

例如,我有 2 个特征和一个标签(f1 是一个类别,f2 是一个文本):

我会在 ALPHA_114 而不是 BETA_213 中匹配“ALPHA 113”(我会更正用户的输入)。

我在大约 40 秒内训练了 40 个样本。之后,我想训练 120 个样本,但 360 秒后没有找到模型。

我需要训练多长时间才能从 12k 个样本中学习?

我想问题可能是我有太多的标签

第一个解决方案:我会将我的训练集拆分为彼此相距较远的较小集,例如一组 where F1 like 'A*'F1 like 'B*'依此类推。然后,为每个集合建立一个模型并合并这些模型以创建一个独特的大模型。

这个对吗?是否存在合并不同模型的方法?有没有更聪明的方法?

第二种解决方案可能是创建n 个随机集合(300 个集合,每组 40 个样本?),从单个集合中学习并合并模型。问题都是一样的

0 投票
1 回答
647 浏览

onnx - ML.NET 导出到 ONNX

NET GUI 工具来训练模型。该模型适用于 C# 应用程序,但我希望它采用 ONNX 格式。我找到了在模型格式之间进行转换的工具,但找不到 ML.NET 生成格式的任何东西。显然这是一些 zip 文件,我对此一无所知。有谁知道转换为 ONNX 的工具。谢谢

微软的 ML.Net 模型生成器生成代码

我已经修改了。我正在获取 onnx 文件,但我无法运行它(推理)。同样,我尝试使用 WinML Dashboard 打开它,但它也无法运行生成的 onnx。我想知道它可能是它生成的 onnx 版本吗?该模型是简单回归,所有输入浮点数并输出一个浮点数。