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

使用 Intel 和 Anaconda 在 Python 中构建深度学习环境

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2022 年 10 月 19 日

CPOL

7分钟阅读

viewsIcon

6926

在本文中,我们将探讨如何使用优化的 Intel 包创建深度学习环境。

深度学习 (DL) 是一个快速发展的领域,模型复杂性以及试图解决它的软件生态系统都在迅速增长。数百万学生、开发人员和研究人员依靠计算机高效的深度学习生态系统来保持行业领先地位。为了支持该领域及其从业人员,Intel 和 Anaconda 已合作,为日常和高级深度学习任务提供持续改进和优化的工具。

Intel 开发了针对高速、高性能深度学习包优化的软件,其PythonTensorFlow 产品集成了来自oneMKLoneDNN 库的优化。Anaconda 可以轻松安装和更新这些包,而无需管理安装和依赖项,有助于使您的深度学习环境保持最新并针对现代处理器架构进行优化。

在本文中,我们将探讨如何使用优化的 Intel 包创建深度学习环境。我们将使用 Anaconda Navigator 桌面应用程序来构建深度学习环境。

在我们开始之前,请确保您已下载 Anaconda 并在您的计算机上进行设置。

创建深度学习环境

在本文中,我们将为计算机视觉 (CV) 构建深度学习环境。此环境包括用于处理 CV 深度学习应用程序中常见任务的工具,例如处理图像、创建神经网络、训练和测试神经网络模型。我们将使用以下组件来构建此环境:

首先,启动已安装的 Anaconda Navigator 应用程序,然后转到“环境”选项卡。

由于我们在环境中使用了 Intel 优化包,因此我们首先添加新的分发频道——Intel 频道。点击“频道”按钮,然后在打开的窗口中添加新频道intel。然后单击“更新频道”以完成操作。

现在,我们添加新环境。点击“创建”,然后在“创建新环境”文本框中输入环境名称。我们将使用 intel_dl_env

在窗口中确认创建新环境。Anaconda Navigator 应用程序会创建并激活该环境。

现在,我们可以在深度学习环境中安装所需的包了。

首先,让我们安装 Intel Distribution for Python。在包框中选择全部,然后在搜索区域中输入“intel”,如下图所示。Anaconda Navigator 会在网格中提供所有合适的包,并附有说明和版本。在列表中找到 intelpython3_coreintelpython3_full 包,并将其标记为安装。

点击应用继续。在此步骤中,Anaconda 会检查所有包的依赖关系,并在单独的窗口中显示安装的详细信息。

通过点击应用确认安装。该过程可能需要几分钟时间。

安装完成后,我们应该验证安装是否成功,以及是否在我们的环境中安装了合适的包。如下图所示,从该环境中运行终端。

在打开的终端中,执行以下命令:

python --version

我们看到 Intel 版本的 Python 在我们的深度学习环境中运行。

 

我们在环境中使用 Intel Distribution for Python 是因为它具有高速性能。Intel 通过优化的例程作为各种 Python 函数的后端实现来加速性能。

下一步是安装 Intel Optimization for TensorFlow。此安装与上一步类似。在搜索框中输入“tensorflow”,在列表中找到 tensorflowtensorflow-base 包,并将其标记为安装。

点击应用,应用程序再次显示一个窗口,其中包含要修改和安装的包。

确认安装并等待过程完成。

在这里,我们应该关注 Intel Optimization for TensorFlow 并将其与标准版本进行比较。这些优化主要分为两大类。第一类是执行图的优化。由于 TensorFlow 使用执行图处理任何深度神经网络 (DNN) 模型,因此优化图可以显著提高模型训练和测试的速度。

该包还通过使用 Intel® oneAPI Deep Neural Network Library (oneDNN) 来优化 TensorFlow。oneDNN 库为卷积神经网络 (CNN) 提供了构建块,例如卷积、池化和整流线性单元 (ReLU),这些构建块已针对最新的处理器架构进行了优化。

安装 Intel Optimization for TensorFlow 可以提高 DNN 模型训练和测试速度。Intel 和 Google 合作更新此包,以在 CPU、GPU 和其他处理器上进行改进。使用 Anaconda 保持此包的最新状态,可确保您的环境跟上最新的软件创新,以满足不断增长的深度学习模型需求。

环境的下一部分是 Pillow 库,这是一个图像处理库,支持许多基础图像文件格式,并提供翻转、旋转和调整大小等图像操作。TensorFlow 框架在该库的图像预处理模块中使用此库,并且为了处理图像数据,该库必须在我们的环境中可用。使用 Anaconda 将 Pillow 库安装到环境中。安装非常简单,因此我们在此不详述。

我们深度学习环境的最后一个组成部分是 Jupyter Notebook 应用程序,这是一款基于 Web 的软件,可用于开发科学 Python 程序。此应用程序的关键功能是交互式计算。交互式计算是按顺序执行代码,并实时显示所有中间结果。

要在此新环境中激活该应用程序,请转到“主页”选项卡,然后点击 Jupyter Notebook 图标下的“安装”。

现在,我们的深度学习环境已准备好处理日常图像识别任务!让我们启动 Jupyter Notebook 应用程序,探索如何在我们的深度学习环境中编写一个简单的程序。

首先,我们创建一个单独的工作目录来存储所有代码和数据文件。在我们的计算机上,我们为此目的创建了 C:\intel_dl_workfolder。在深度学习环境中启动终端,并将当前位置更改为该工作目录。然后执行以下命令:

jupyter notebook

应用程序将在工作文件夹中启动,如下图所示。

从终端复制 URL,然后在您喜欢的 Web 浏览器中打开它。通过点击“新建”,然后点击“Python 3”来创建一个新的 Notebook 文件。

最后,让我们编写并运行一些简单的 Python 代码,以确保深度学习环境具有由 oneDNN 驱动的 TensorFlow 版本,并且我们拥有所有必需的功能。在创建的 Notebook 中运行以下代码:

import os
os.environ['TF_ENABLE_ONEDNN_OPTS'] = '1'

import tensorflow as tf
print(tf.__version__)

t1 = tf.constant([[1., 2.], [3., 4.]])
print(t1)

当我们在计算机上运行代码时,会得到以下输出:

2.7.0
tf.Tensor(
[[1. 2.]
 [3. 4.]], shape=(2, 2), dtype=float32)

代码的前两行将系统变量 TF_ENABLE_ONEDNN_OPTS 设置为 1。从 TensorFlow 2.9 开始,oneDNN 优化默认启用。我们显式将此变量设置为 1,以确保我们在环境中启用了 TensorFlow 的 oneDNN 优化。

在代码的最后两行中,我们创建了一个 Tensor 实例并打印了它的值。目的是检查我们的 TensorFlow 版本。在终端输出中,我们收到以下消息:

该消息表明我们使用的是经过 oneDNN 库优化的 TensorFlow 版本。

接下来,让我们测试从文件加载图像:

from tensorflow.keras.preprocessing.image import load_img

img = load_img("c:\\intel_dl_work\\1.png", color_mode="grayscale")

print(img.mode)
print(img.size)

img

代码从指定文件 c:\intel_dl_work\1.png 读取图像,打印图像的属性,并绘制它。下图是我们 Notebook 中代码的输入和输出。

最后的测试代码将加载的图像转换为 NumPy 数组格式。

from tensorflow.keras.preprocessing.image import img_to_array
np_array = img_to_array(img)

print(np_array.dtype)
print(np_array.shape)

代码使用 img_to_array 函数从图像获取 NumPy 数组,然后打印该数组的属性。请注意,数组元素的类型是 float32。该数组有三个维度。因此,这是一个三维张量。TensorFlow 框架在解决图像分类、对象检测和识别问题时,将这种三维张量用作卷积神经网络 (CNN) 的常见输入。

结论

正如我们在本文中所发现的,Anaconda Navigator 桌面应用程序使我们能够轻松创建和管理 Python 环境,并通过其分发频道访问优化的 Intel 包。Intel 开发了用于深度学习的专用软件,包括 TensorFlow 扩展和 oneDNN 库,这些可以提高 DNN 模型的速度。使用这些 Intel 包构建的深度学习环境可确保您使用的软件针对最新的现代处理器架构进行了优化。此外,我们可以轻松地更新环境,从而始终保持在深度学习行业的前沿。

参考文献:Intel AI Software | AI Frameworks | Intel AI Tools

© . All rights reserved.