f# - 未处理的异常:System.ArgumentOutOfRangeException:特征列“特征”的架构不匹配:预期向量, 得到向量
问题描述
我正在尝试编写一个基本的“hello world”类型程序来预测 XOR 函数的值。这是我收到的错误消息:
Unhandled Exception: System.ArgumentOutOfRangeException: Schema mismatch for feature column 'Features': expected Vector<R4>, got Vector<R8>
参数名称:inputSchema 这是我的代码:
type Sample = {
X: float
Y: float
Result: float
}
let createSample x y result = {X = x; Y = y; Result = result}
let solveXOR() =
let problem =
[
createSample 0.0 0.0 0.0
createSample 1.0 0.0 1.0
createSample 0.0 1.0 1.0
createSample 1.0 0.0 0.0
]
let context = new MLContext()
let data = context.Data.ReadFromEnumerable(problem)
let pipeline =
context.Transforms
.Concatenate("Features", "X", "Y")
.Append(context.Transforms.CopyColumns(inputColumnName = "Result", outputColumnName = "Label"))
//.Append(context.Transforms.Conversion.MapKeyToVector("X"))
//.Append(context.Transforms.Conversion.MapKeyToVector("Y"))
.AppendCacheCheckpoint(context)
.Append(context.Regression.Trainers.FastTree())
let model = pipeline.Fit(data)
let predictions = model.Transform(data)
let metrics = context.BinaryClassification.Evaluate(predictions)
printfn "Accuracy %f" metrics.Accuracy
任何关于我做错了什么的指针将不胜感激。
解决方案
它似乎在抱怨浮点数的大小。AC#float
等价于 F#float32
并且 adouble
等价于 F# float
。所以尝试用 or 替换你float
的float32
,single
然后0.0
用0.0f
.
A在 F#float32
中也称为 asingle
- C#
float
等价于 F#single
或float32
- C#
double
等价于 F#float
或double
推荐阅读
- python - Beautifulsoup 解析 python 使用表
- java - 有什么办法可以解决这里造成的死锁吗?
- mysql - 错误 1690 (22003):BIGINT UNSIGNED 值超出
- javascript - 重新加载页面时如何隐藏vue js代码?
- python-3.x - BeautifulSoup 4 是否解析外部 DTD 实体?
- angular - Mat-select 更改值不会通过双向绑定传播
- c++ - 在嵌套循环中使用迭代器通过两个向量来匹配元素并从向量中擦除
- http - OAuth 客户端 - 如何根据请求将 javascript 源从 http 更改为 https?
- java - Spring Resttemplate 交换方法调用 PATCH 请求
- c# - 如何从 Dispatcher.Invoke 返回值,使用委托函数作为参数