[英]Prepping to update a Core ML Model
Core ML 3现在使我们能够执行设备上的培训。 创建可更新的核心ML模型后,我们需要使用MLUpdateTask
函数执行一些功能以在设备上对其进行更新,该函数需要3个参数: Model URL
, MLBatchProvider
和MLModelConfiguration
。
由于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.