2

我目前正在创建一个 hello world,以便大致了解 CoreML 和 CreateML 的强大功能。我的目标是在我的 hello world 项目中使用Apples 数据表示例,以便使用给定的参数(如作者、页数和标题)来预测歌词的类型:

let data: [String: MLDataValueConvertible] = [
    "title": ["Alice in Wonderland", "Hamlet", "Treasure Island", "Peter Pan"],
    "author": ["Lewis Carroll", "William Shakespeare", "Robert L. Stevenson", "J. M. Barrie"],
    "pageCount": [124, 98, 280, 94],
    "genre": ["Fantasy", "Drama", "Adventure", "Fantasy"]
]

我能够在操场上使用 CreateML 创建一个 mlmodel,并使用这些额外的代码行:

let bookTable = try MLDataTable(dictionary: data)
let genreRegressor = try MLRegressor(trainingData: bookTable, targetColumn: "genre")
let meta = MLModelMetadata(author: "John Doe", shortDescription: "A model used to determine the genre of a book.", version: "1.0")
try genreRegressor.write(to: URL(fileURLWithPath: "/Path/MyModel.mlmodel"), metadata: meta)

通过这种方式,您可以提供标题、作者以及页数等输入,模型将使用以下代码行将类型预测为输出:

let model = MyModel().model

// Create the input
let modelInput = MyModelInput(author: "Mark Twain", title: "Tom Sawyer", pageCount: 245)

// Predict the genre
let modelOutput = try? model.prediction(from: modelInput)
let genre = modelOutput?.featureValue(for: "genre")
print(genre)

现在我想在设备上进行这个模型创建/训练,以便每次用户在应用程序中添加新数据时创建一个新模型或更新现有模型。我将代码粘贴到我的应用程序中,但不幸的是,所需的 CreateML 框架在设备上不可用。

我阅读了有关表格分类设备训练的信息,并尝试了表情符号智能示例,但不幸的是,我无法在设备表格分类中创建自己的。但是通过我从这些文章中收集到的信息,看起来应该是可能的,因为数据集非常小,所需的计算非常基础和快速。表情符号智能、TouchID 或照片应用程序等现有示例表明,它必须同时实现。

如果有人有示例或提示如何为任何示例(还有图像分类等)进行设备上的训练,我将非常高兴,我不仅仅关注表格数据。

先感谢您!

4

1 回答 1

0

目前您的选择是:

  • 使用 Metal Performance Shaders 在设备上进行训练
  • 编写自己的训练代码

两者都与 Core ML 不兼容(尽管如果你真的想要,你可以编写自己的 mlmodel 文件,然后在设备上编译它)。

于 2018-08-04T15:31:17.473 回答