文章

缩减 Core ML App 的大小

缩减 app 套装中被 Core ML 模型占用的存储容量。

概览

在 app 中捆绑机器学习模型是开始使用 Core ML 最简单的方法。随着模型变得越来越高级,它们可能会越来越大,因此会占用相当多的存储空间。对于基于神经网络的模型,可以考虑让权重参数使用较低精度表示法来减小占用空间。如果模型不是能够使用较低精度的神经网络模型,或者需要进一步缩减 app 的大小时,您可以增加在设备上下载和编译模型的功能,而不要将模型捆绑到 app 中。

转换为较低精度模型

Core ML 工具 (英文) 提供的实用程序可将神经网络模型的浮点权重从全精度值转换为半精度值 (将表示法中使用的位数从 32 位缩减至 16 位),或者转换为更低精度的值 (1 到 8 位)。有关使用这些实用程序的更多信息,请参阅“Core ML 工具神经网络量化”文档 (英文)

下载和编译模型

另一个缩减 app 大小的做法是让 app 将模型下载到用户设备,然后在后台编译模型。例如,如果用户只使用 app 支持的一小部分模型,则无需将所有可能的模型都捆绑到 app 中。这时可以选择根据用户行为下载模型。请参阅“在用户设备上下载并编译模型 (英文)”。