Core ML与iOS设备上的深度学习模型

在当今时代,深度学习模型的计算结果曾经需要数百万美元和一个研究团队花费十年的时间才能获得,但现在任何拥有半体面的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明确说明了它将对环境做什么,并在继续之前等待确认(与标准的pip不同)
  • 它处理Python和非Python依赖项,这简化了许多复杂情况下的安装
  • Conda正在成为许多环境中管理Python包的事实标准,包括Azure;它也被苹果推荐用于与其coremltools Python库一起工作(尽管仍然需要使用pip安装它)

拥有一个工具来执行两项任务可以减少工具包数量。

并非所有包都在Conda中可用,所以偶尔需要使用默认的Python包管理器——pip。

Conda有两种口味:

  • Anaconda——一个完整的Python发行版,包含许多场景中使用的精选Python库,包括数据科学和机器学习项目
  • Miniconda——一个最小化的包和环境管理器

使用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!")
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485