c# - 显示哪个分数与哪个标签相关的 ML.Net 错误

标签 c# ml.net

我想确定哪个分数与哪个标签相关,但出现运行时错误。

我有一个方法负责...

public static List<string> GetSlotNames(string name)
{
    var schema = predEngine.OutputSchema;
    var column = schema.GetColumnOrNull(name);

    var slotNames = new VBuffer<ReadOnlyMemory<char>>();
    column.Value.GetSlotNames(ref slotNames); //here is the error
    var names = new string[slotNames.Length];
    var num = 0;
    foreach (var denseValue in slotNames.DenseValues())
    {
        names[num++] = denseValue.ToString();
    }

    return names.ToList();
}

但是我得到一个运行时异常:

System.InvalidOperationException: '对 'GetValue' 的调用无效'

编辑:我用模型构建器训练模型,所以代码是 ml.net 使用的标准代码,在我的例子中是三类分类。GetSlotNames 的参数是“Score”

public class ModelOutput
{        
    [ColumnName("PredictedLabel")]
    public Single Prediction { get; set; }
    [ColumnName("Score")]
    public float[] Score { get; set; }
}

最佳答案

我知道这是一个老问题,您已经放弃或以其他方式解决了它,但我希望这对某人有所帮助。

我也为此苦苦挣扎。我从“github tag”示例项目中获取了代码。我发现它只适用于“文本”数据类型。根据我的需要,如果我将我的输入(自然是单一的)输入到字符串中,上面的“GetSlotNames”f(x) 就起作用了。如果我把它换回去,它就坏了。

我只能假设这是底层框架没有正确 GetValue 的问题,因为如果您检查数据,键映射就在那里。

关于c# - 显示哪个分数与哪个标签相关的 ML.Net 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58778466/

相关文章:

c# - 系统无效操作异常: The asynchronous operation has not completed

c# - 编程 float 运动

c# - EF 迁移后 NPGSQL MapEnum 失败

c# - 将位图保存到内存流时可以将位图转换为 jpeg 吗?

c# - 如何使用 ML.NET 预测多列

f# - 未处理的异常 : System. ArgumentOutOfRangeException : Schema mismatch for feature column 'Features' : expected Vector<R4>, 得到 Vector<R8>

python - Numpy,.Net 或 .Netcore 中的 Pandas 对应物

c# - EndOfStreamException 与简单的 BinaryWriter 和 BinaryReader

c# - 如何将参数传递给asp.net web api get方法?

c# - ML.NET 无需拟合即可转换数据