我有一个MLModel
,其中包含一个名为length
的输入列和一个名为depth
的输出列。
您给它一个长度,它可以预测深度。
我知道还有其他方法可以做到这一点,但这完全是为了学习CoreML。
我需要构建一个MLFeatureProvider
类以获取该长度并输出深度。
我不确定如何创建该类,因为这是我第一次与CoreML打交道,并且因为与往常一样,Apple不在乎创建体面的文档。
这就是我所拥有的
class FeatureProviderX: MLFeatureProvider {
var featureNames: Set<String> {
get {
return ["length", "depth"]
}
}
func featureValue(for featureName: String) -> MLFeatureValue? {
guard featureName == "length" else {
return MLFeatureValue(????????????) \\1
}
}
}
我不确定此类在远程上是否正确。
如果正确,应该如何写\\1
?
答案 0 :(得分:1)
类似这样的东西:
class FeatureProviderX: MLFeatureProvider {
let length: Double
init(length: Double) {
self.length = length
}
func featureValue(for featureName: String) -> MLFeatureValue? {
guard featureName == "length" else {
return MLFeatureValue(double: length)
}
}
...
要使用它进行预测,请创建一个FeatureProviderX
的新实例,并将其传递给您的MLModel
类。
答案 1 :(得分:0)
Matthijs Hollemans处在正确的轨道上,为我提供了解决方法的线索,但不幸的是,他的解决方案缺少很多东西。
过一会儿,我想出了正确的解决方案...
class FeatureProviderX: MLFeatureProvider {
var featureNames: Set<String> {
get {
return ["length"]
}
}
var sorteio: Double
init(length: Double) {
self.length = length
}
func featureValue(for featureName: String) -> MLFeatureValue? {
if featureName == "length" {
return MLFeatureValue(double: length)
}
return nil
}
}