65.9K
CodeProject 正在变化。 阅读更多。
Home

为 ML 和 AI 开发设置 macOS

starIconstarIconstarIconstarIconstarIcon

5.00/5 (5投票s)

2020年8月26日

CPOL

4分钟阅读

viewsIcon

9909

downloadIcon

81

在本文中,我们将准备我们的开发环境。

引言

深度神经网络在图像分类等任务上非常棒。 过去需要花费数百万美元和一个完整的研究团队十年时间才能获得的结果,现在任何拥有半体面 GPU 的人都可以轻松获得。 然而,深度神经网络有一个缺点。 它们可能非常庞大且缓慢,因此它们并不总是在移动设备上运行良好。 幸运的是,Core ML 提供了一个解决方案:它使您能够创建在 iOS 设备上运行良好的模型。

在本系列文章中,我们将向您展示如何以两种方式使用 Core ML。 首先,您将学习如何将预训练的图像分类器模型转换为 Core ML 并在 iOS 应用程序中使用它。 然后,您将训练您自己的机器学习 (ML) 模型,并使用它来制作一个 Not Hotdog 应用程序——就像您可能在 HBO 的硅谷中看到的那样。

必备组件

我们将使用 macOS 10.15.6、Xcode 11.6 和 iOS 13.5。 大多数代码示例应与早期版本兼容,但 iOS 除外,它必须至少为 13.0。

虽然 macOS 包含 Python,但它是一个旧版本 – 2.7。 我们不会使用这个过时的且不再受官方支持的版本。

使用 Python 意味着使用包管理器和虚拟环境。 我们的首选是使用 Conda 进行包和虚拟环境管理。 原因如下

  • Conda 明确说明它将对环境执行什么操作,并等待确认后再继续(与标准 pip 相比)
  • 它处理 Python 和非 Python 依赖项,这简化了许多复杂情况下的安装
  • Conda 正在成为在许多环境(包括 Azure)中管理 Python 包的事实标准; Apple 也建议使用它来处理其 coremltools Python 库(即使您仍然需要使用 pip 安装它)。
  • 使用一个工具执行两个任务可以将我们的工具包减少一个。

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

Conda 有两种类型

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

我们使用 Miniconda 是因为它使我们能够仅选择我们需要的组件。 但是,如果您更喜欢“瑞士军刀”选项,请随时获取完整的 Anaconda 发行版。

创建环境

要设置我们将在本系列中使用的 Python 环境,首先 下载并安装 macOS 包。 您可以使用 Conda 用户指南 中描述的替代方案之一。

创建包含以下内容的 env-coreml.yml 文件(确保每级缩进使用两个空格)

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 notebook

$ jupyter notebook

如果一切都成功完成,您的终端窗口应与此类似

此外,一个新的浏览器选项卡会打开,其中包含 Jupyter Notebook 实例

如果浏览器没有自动启动,请使用终端中记录的带有令牌的 URL。

如果您无法激活您的 Conda 环境,请按照 Conda 显示的说明进行操作。 这通常相当于执行以下命令

$ conda init {shell name - e.g. "bash"}

Jupyter Notebook 允许您在浏览器中以交互方式编写代码,并将其与结果和注释一起保存在一个文档中 – 一个 notebook。 数据科学家和 ML 专家广泛使用它,所以让我们效仿。

要继续,请单击新建按钮,然后从下拉列表中选择第一个项目(Python 3)。 现在单击突出显示的行,然后输入此代码片段

print("Hello, World!")

使用 Shift+Return 执行代码。

代码执行,焦点移动到新单元格

摘要

恭喜:您现在拥有了使用 iOS 应用程序的 ML 模型所需的所有工具。

下一篇文章中,我们将使用这些工具将为图像分类训练的 ONNX 模型转换为 Core ML 格式。

© . All rights reserved.