CreateML模块做在 iOS 上工作。它只是在 iOS 模拟器上不起作用。
您可以将所有训练代码包围起来
#if canImport(CreateML)
...
#endif
以便它仅在您使用真实设备时运行。不可否认,这很不方便......
至于如何使用CreateML API,可以参考here的指导。代码看起来像这样。请注意,我已经更新了指南中一些已弃用(自 iOS 16 起)的代码,以使用最新的 API。
let data = try DataFrame(contentsOfJSONFile: URL(fileURLWithPath: "/path/to/read/data.json"))
let (trainingData, _) = data.randomSplit(by: 0.8, seed: 5)
// training...
let sentimentClassifier = try MLTextClassifier(trainingData: DataFrame(trainingData),
textColumn: "text",
labelColumn: "label")
// write to file for later use...
let metadata = MLModelMetadata(author: "John Appleseed",
shortDescription: "A model trained to classify movie review sentiment",
version: "1.0")
try sentimentClassifier.write(to: URL(fileURLWithPath: "/path/to/save/SentimentClassifier.mlmodel"),
metadata: metadata)
// or use it immediately:
print(sentimentClassifier.prediction(from: "foo bar baz"))
//... at some later point
let model = try MLModel(contentsOf: URL(fileURLWithPath: "/path/to/save/SentimentClassifier.mlmodel"))
let nlModel = try NLModel(mlModel: model)
print(nlModel.predictedLabel(for: "foo bar baz") ?? "no label")