CoreML - Как создать простой класс MLFeatureProvider - PullRequest
0 голосов
/ 29 января 2019

У меня есть 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?

Ответы [ 2 ]

0 голосов
/ 29 января 2019

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
  }
}
0 голосов
/ 29 января 2019

Примерно так:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...