随着人工智能技术的快速发展,深度学习(DL)已经成为计算机视觉、自然语言处理等多个领域的核心技术。为了保持在行业的前沿,数百万学生、开发者和研究人员依赖于高效的计算机深度学习生态系统。为了支持这一领域以及在其中工作的人们,Intel和Anaconda合作,提供了持续改进和优化的工具,以满足日常和高级深度学习任务的需求。
Intel开发了针对高速、高性能深度学习软件包的优化软件,其Python和TensorFlow产品集成了oneMKL和oneDNN库的优化。Anaconda使得安装和更新这些软件包变得简单,无需管理安装和依赖关系,有助于保持深度学习环境更新和优化,以适应现代处理器架构。
在本文中,将探讨如何使用优化的Intel软件包创建深度学习环境。将使用Anaconda Navigator桌面应用程序来构建深度学习环境。
在开始之前,请确保已经下载并安装了Anaconda。
在本文中,将为计算机视觉(CV)构建一个深度学习环境。这个环境包括处理深度学习应用中常见任务的工具,例如处理图像、创建神经网络、训练和测试神经网络模型。使用以下组件来构建环境:
首先,启动已安装的Anaconda Navigator应用程序,然后转到“环境”标签页。
由于在使用Intel优化的软件包,让首先添加新的分发渠道——Intel渠道。点击“渠道”按钮,并在打开的窗口中添加新的渠道“intel”。然后点击“更新渠道”以完成操作。
现在,让添加新的环境。点击“创建”并在“创建新环境”文本框中输入环境名称。使用“intel_dl_env”。
在窗口中确认新环境的创建。Anaconda Navigator应用程序创建并激活环境。
现在,准备在深度学习环境中安装所需的软件包。
首先,让安装IntelDistribution for Python。在软件包框中选择“全部”,并在搜索区域输入“intel”,如下图所示。Anaconda Navigator在网格中提供了所有合适的软件包及其描述和版本。在列表中找到“intelpython3_core”和“intelpython3_full”软件包,并标记它们进行安装。
点击“应用”继续。在这一步中,Anaconda检查所有软件包的依赖关系,并在单独的窗口中显示安装的详细信息。
通过点击“应用”确认安装。该过程可能需要几分钟。
安装完成后,应该验证它是否成功,并且已经在环境安装了适当的软件包。从环境中运行终端,如下图所示。
在打开的终端中,执行以下命令:
python --version
看到Intel版本的Python在深度学习环境中工作。
在环境使用Intel Distribution for Python,因为它的高速性能。Intel通过优化的例程作为各种Python函数的后端实现来加速性能。
下一步是安装Intel Optimization forTensorFlow。这个安装与之前的类似。在搜索框中输入“tensorflow”,在列表中找到“tensorflow”和“tensorflow-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应用程序,这是一个网络软件,可以使用它来开发科学Python程序。这个应用程序的关键特性是交互式计算。交互式计算是顺序代码执行,在线可视化所有中间结果。
要激活新环境中的应用程序,请转到“主页”标签页,然后点击Jupyter Notebook图标下的“安装”。
现在深度学习环境已经准备好处理日常的图像识别任务了!让启动Jupyter Notebook应用程序,并探索如何在环境中编写一个简单的程序。
首先,创建一个单独的工作目录来存储所有代码和数据文件。在计算机上,为此目的创建了C:\intel_dl_workfolder。在深度学习环境中启动一个终端,并将当前位置更改为此工作目录。然后执行以下命令:
jupyter notebook
应用程序在工作文件夹中启动,如下图所示。
从终端复制URL并在喜欢的网络浏览器中打开它。通过点击“新建”然后“Python 3”创建一个新的笔记本文件。
最后,让编写并运行一些简单的Python代码,以确保深度学习环境有TensorFlow版本,由oneDNN提供支持,并且拥有所有所需的功能。在创建的笔记本中运行以下代码:
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读取图像,打印图像的属性,并绘制它。下图是代码在笔记本中的输入和输出。
最终测试代码将加载的图像转换为NumPy数组格式。
from tensorflow.keras.preprocessing.image import img_to_array
np_array = img_to_array(img)
print(np_array.dtype)
print(np_array.shape)