我想确定哪个分数与哪个标签相关,但出现运行时错误。
我有一个方法负责...
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/