我正在创建一个hello world,以便了解CoreML和CreateML的强大功能 . 我的目标是在我的hello world项目中使用Apples data table example,以便使用给定参数(如作者,页数和 Headers )预测歌词的类型:
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)
通过这种方式,您可以提供 Headers ,作者以及页数等输入,模型将使用以下代码行预测类型作为输出:
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框架 .
我阅读了tabular classification和on device training以及尝试emoji intelligence示例,但遗憾的是我无法在设备表格分类上创建自己的 . 但是通过我从这些文章中收集到的信息,它看起来应该是可能的,因为数据集非常小,所需的计算非常基础和快速 . 表情符号智能,TouchID或照片应用程序等现有示例表明它必须是meanwhile .
如果有人有任何示例或提示如何进行任何示例的设备培训(也包括图像分类等),我会非常高兴,我不仅仅关注表格数据 .
先感谢您!
1 回答
目前您的选择是:
使用金属性能着色器在设备上训练
编写自己的培训代码
两者都不兼容Core ML(尽管如果你真的想要,你可以编写自己的mlmodel文件,然后在设备上编译) .