在查看新的CoreML API时,我看不到在生成.mlmodel并将其捆绑到您的应用程序后继续训练模型的任何方法 . 这让我觉得我无法对用户的内容或动作进行机器学习,因为模型必须事先经过完全训练 .
发货后有没有办法将训练数据添加到我训练过的模型中?
编辑:我刚刚注意到你可以从URL初始化生成的模型类,所以也许我可以将新的训练数据发布到我的服务器,重新生成训练模型并将其下载到应用程序中?看起来它会起作用,但这完全打败了在没有用户数据离开设备的情况下能够使用ML的隐私方面 .
.mlmodel文件由Xcode编译为.mlmodelc结构(实际上是应用程序包中的一个文件夹) .
您的应用程序可能能够从服务器下载新的.mlmodel,但我认为您不能从应用程序内部运行Core ML编译器 .
也许您的应用程序可以从服务器下载已编译的.mlmodelc数据,将其复制到应用程序的Documents目录中,并从中实例化模型 . 试试看 . ;-)
(这假定App Store在打包应用程序并将其发送给用户之前不会对.mlmodelc数据进行任何其他处理 . )
Apple最近为设备上的模型编译添加了new API . 现在您可以下载模型并在设备上进行编译
为了动态更新模型(不更新整个应用程序),您需要直接使用MPS(金属性能着色器)而不是依赖.mlmodel,它必须与应用程序捆绑在一起 .
这意味着你需要通过编写一些Swift代码来手动构建神经网络(而不是使用coremltools直接转换现有模型),并为每一层提供各种权重,这有点工作,但不是火箭科学 .
如果您想了解更多关于MPS的信息,这是一个很好的视频 .
https://developer.apple.com/videos/play/wwdc2017/608/
Core ML支持推理,但不支持设备培训 .
您可以通过从服务器替换新模型来更新模型,但这值得提出自己的问题 .
现在使用iOS11 beta4,您可以编译模型,从服务器下载 .
(Details)
5 回答
.mlmodel文件由Xcode编译为.mlmodelc结构(实际上是应用程序包中的一个文件夹) .
您的应用程序可能能够从服务器下载新的.mlmodel,但我认为您不能从应用程序内部运行Core ML编译器 .
也许您的应用程序可以从服务器下载已编译的.mlmodelc数据,将其复制到应用程序的Documents目录中,并从中实例化模型 . 试试看 . ;-)
(这假定App Store在打包应用程序并将其发送给用户之前不会对.mlmodelc数据进行任何其他处理 . )
Apple最近为设备上的模型编译添加了new API . 现在您可以下载模型并在设备上进行编译
为了动态更新模型(不更新整个应用程序),您需要直接使用MPS(金属性能着色器)而不是依赖.mlmodel,它必须与应用程序捆绑在一起 .
这意味着你需要通过编写一些Swift代码来手动构建神经网络(而不是使用coremltools直接转换现有模型),并为每一层提供各种权重,这有点工作,但不是火箭科学 .
如果您想了解更多关于MPS的信息,这是一个很好的视频 .
https://developer.apple.com/videos/play/wwdc2017/608/
Core ML支持推理,但不支持设备培训 .
您可以通过从服务器替换新模型来更新模型,但这值得提出自己的问题 .
现在使用iOS11 beta4,您可以编译模型,从服务器下载 .
(Details)