小编cra*_*aig的帖子

ML.Net保留现有模型而不是培训新模型

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

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

谢谢

.net c# ml.net ml.net-model-builder

6
推荐指数
2
解决办法
968
查看次数

C#8 什么是“默认!” 对泛型类型做什么?

只是尝试使用 C# 8.0 Beta 并更新一些代码以使用可为 null 的引用类型。

我有一个用于 Trie 实现的节点样式类。每个节点都有一个类型为 的值T。根节点的构造函数不需要值,因此我将其设置为default

这是一个简短的版本:

public class Trie<T>
{
    public readonly bool caseSensitive;
    public readonly char? letter;
    public readonly Dictionary<char, Trie<T>> children;
    public readonly Trie<T>? parent;
    public readonly int depth;
    public bool completesString;
    public T value;

    public Trie(bool caseSensitive = false)
    {
        this.letter = null;
        this.depth = 0;
        this.parent = null;
        this.children = new Dictionary<char, Trie<T>>();
        this.completesString = false;
        this.caseSensitive = caseSensitive;
        this.value = default;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果 ctor …

c# generics non-nullable c#-8.0 nullable-reference-types

6
推荐指数
2
解决办法
5189
查看次数

C#扩展方法比链接更慢替换,除非在紧密循环中.为什么?

我有一个扩展方法从字符串(电话号码)中删除某些字符,这些字符的执行速度比我认为应该比链接的替换调用慢得多.奇怪的是,如果循环运行大约3000次迭代,它会在循环中超过替换物,之后它会更快.低于此并且链接替换更快.这就像我的代码有一个固定的开销,而Replace没有.这可能是什么!?

快速浏览.当仅测试10个数字时,我的大约需要0.3毫秒,而替换只需要0.01毫秒.巨大的差异!但是当运行500万时,我需要大约1700毫秒,而替换需要大约2500毫秒.

电话号码只有0-9,+, - ,(,)

以下是相关代码:构建测试用例,我正在使用testNums.

        int testNums = 5_000_000;
        Console.WriteLine("Building " + testNums + " tests");
        Random rand = new Random();
        string[] tests = new string[testNums];
        char[] letters =
        {
            '0','1','2','3','4','5','6','7','8','9',
            '+','-','(',')'
        };
        for(int t = 0; t < tests.Length; t++)
        {
            int length = rand.Next(5, 20);
            char[] word = new char[length];
            for(int c = 0; c < word.Length; c++)
            {
                word[c] = letters[rand.Next(letters.Length)];
            }
            tests[t] = new string(word);
        }

        Console.WriteLine("Tests built");
        string[] stripped = new string[tests.Length];
Run Code Online (Sandbox Code Playgroud)

使用我的扩展方法:

        Stopwatch …
Run Code Online (Sandbox Code Playgroud)

c# optimization

5
推荐指数
1
解决办法
118
查看次数

AddNewtonsoftJson没有覆盖System.Text.Json

我将.Net Core的版本从预览2升级到了预览6,这打破了两件事。最重要的是,我不能再使用newtonsoft JSON。

ConfigureServices中的AddNewtonsoftJson似乎什么也不做,新的Json序列化器似乎仅对属性起作用,而对字段不起作用。它没有看到JSONIgnoreAttribute。

在ConfigureServices中(在Startup中),我有一行

services.AddMvc(x => x.EnableEndpointRouting = false).AddNewtonsoftJson();

似乎没有做应做的事情。在我的应用程序中,仅属性被序列化,而不是字段,并且[JSONIgnore]属性不执行任何操作。

我可以通过推广所有需要成为属性的公共领域来解决缺少的领域,但是我必须能够忽略一些领域。

还有其他人吗?如何获得新的JSON序列化程序以忽略某些属性并序列化公共字段,或者返回Newtonsoft?

c# asp.net-mvc json.net .net-core system.text.json

5
推荐指数
1
解决办法
244
查看次数

ML.NET 显示哪个分数与哪个标签相关

使用 ML.Net,我使用分类器进行文本解释。预测有一个作为 float[] 的分数列和一个预测标签。这是因为最高分数与预测标签相关,但其他分数只是没有特定顺序的浮点数。我怎么知道哪个分数与哪个标签相关?我怎样才能看到权重第二高的标签是什么?

例如,我得到这个: 0.00005009 0.00893076 0.1274763 0.6209787 0.2425644

0.6 是我预测的标签,但我还需要查看 0.24 是哪个标签,这样我才能明白为什么它会被混淆。

标签是诸如“Greeting”或“Joke”之类的文本字符串,它们在管道中被字典化,所以也许这就是为什么它们的顺序不正确的原因?

ML.Net 有没有办法将两者联系在一起?显示哪个分数与哪个标签相关?

c# artificial-intelligence ml.net

4
推荐指数
2
解决办法
1282
查看次数