繁体   English   中英

准备更新核心ML模型

[英]Prepping to update a Core ML Model

Core ML 3现在使我们能够执行设备上的培训。 创建可更新的核心ML模型后,我们需要使用MLUpdateTask函数执行一些功能以在设备上对其进行更新,该函数需要3个参数: Model URLMLBatchProviderMLModelConfiguration

由于Core ML 3刚刚发布,因此其文档非常有限。 特别是关于如何准备培训数据或MLBatchProvider

问题:您如何准备训练数据或创建MLBatchprovider

要向Core ML提供数据,您可以创建MLFeatureProvider对象。 这将返回一个或多个MLFeatureValue对象,对于模型中的每个输入,一个。 通常,自动生成的类会在后台执行此操作。

如果你想用一个批处理工作,你创建一个MLBatchProvider具有多个MLFeatureProviders ,每个实例。

使MLBatchProvider进行预测并不难:只需将MLFeatureProviders放入数组中,然后使用MLArrayBatchProvider 同样,自动生成的类为此提供了一个辅助方法。

为了进行训练,您可能希望即时加载数据,进行随机扩充等。 在这种情况下,您需要创建一个采用MLBatchProvider协议的新类。 它应该为每个示例返回MLFeatureProvider 这次MLFeatureProvider不仅为示例提供了MLFeatureValue ,还为目标/ true标签提供了MLFeatureValue (自动生成的类具有用于此培训功能提供者的帮助程序类,但不适用于培训批处理提供者。)

我实际上还没有任何新的培训API能够正常工作(它们在Beta 2上崩溃),因此我不确定100%是否MLBatchProvider如何在整个培训示例中循环。

如果您的模型名为TestModel应该有TestModelTrainingInput类。

let singleTrainingData = try TestModelTrainingInput(input: .init[1,2,3], output_true: .init([4,5,6]))
let trainingData = MLArrayBatchProvider(array: [singleTrainingData])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM