在当今时代,深度学习模型的计算结果曾经需要数百万美元和一个研究团队花费十年的时间才能获得,但现在任何拥有半体面的GPU的人都可以轻松获得。然而,深度神经网络也有一个缺点,它们可能非常庞大且运行缓慢,因此并不总是能在移动设备上很好地运行。幸运的是,Core ML提供了一个解决方案:它允许创建在iOS设备上运行良好的模型。
将展示如何以两种方式使用Core ML。首先,将学习如何将预训练的图像分类器模型转换为Core ML,并在iOS应用程序中使用它。然后,将训练自己的机器学习(ML)模型,并使用它来制作一个“不是热狗”应用程序——就像可能在HBO的《硅谷》中看到的那样。
将使用macOS 10.15.6、Xcode 11.6和iOS13.5。大多数代码示例应该与早期版本兼容,除了iOS,它至少必须是13.0。
虽然macOS包括Python,但它是一个较旧的版本——2.7。不会使用这个版本,因为它已经过时且不再得到官方支持。
使用Python意味着要使用包管理器和虚拟环境。首选是使用Conda来管理包和虚拟环境。原因如下:
拥有一个工具来执行两项任务可以减少工具包数量。
并非所有包都在Conda中可用,所以偶尔需要使用默认的Python包管理器——pip。
Conda有两种口味:
使用Miniconda,因为它使能够选择所需的组件。然而,如果更喜欢“瑞士军刀”选项,请随意获取完整的Anaconda发行版。
要设置本系列中将使用的Python环境,请首先下载并安装macOS包。也可以使用Conda用户指南中描述的替代方法之一。
创建env-coreml.yml文件,内容如下(确保每级缩进使用两个空格):
Python:
name: coreml
channels:
- defaults
- conda-forge
dependencies:
- python=3.8.3
- jupyter=1.0.0
- onnx=1.7.0
- numpy=1.19.1
- pandas=1.0.5
- tqdm=4.48.2
- pip
- pip:
- coremltools==4.0b1
- pillow==7.2.0
在终端中执行以下命令以创建coreml环境:
$ conda env create -f env-coreml.yml
几分钟后,应该会看到类似这样的消息:
在终端中,创建一个新的空文件夹并移动到该文件夹:
$ mkdir fun-with-coreml
$ cd fun-with-coreml
激活创建的环境:
$ conda activate coreml
确认Python版本(预期值:3.8.3):
$ python --version
启动Jupyter笔记本:
$ jupyter notebook
如果一切顺利完成,终端窗口应该看起来类似这样:
此外,一个新的浏览器标签页会打开Jupyter Notebook实例:
如果浏览器没有自动启动,请使用终端中记录的令牌的URL。
如果无法激活Conda环境,请按照Conda显示的说明进行操作。这通常意味着执行以下命令:
$ conda init {shell name - e.g. "bash"}
Jupyter Notebook允许在浏览器中交互式编写代码,并将其与结果和注释保存在单个文档——笔记本中。数据科学家和ML专家广泛使用它,所以让跟随他们的脚步。
要继续,请单击“New”按钮,然后从下拉列表中选择第一项(Python 3)。现在单击突出显示的行并输入此代码片段:
print("Hello, World!")