加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 1.1 英特尔® 锐炫™ 独立显卡简介
    • 1.2 蝰蛇峡谷简介
    • 搭建训练 TensorFlow 模型的开发环境,Windows 版本要求
    • 下载并安装最新的英特尔显卡驱动
    • 下载并安装Anaconda
    • 安装TensorFlow2
    • 安装 tensorflow-directml-plugin
    • 在英特尔独立显卡上训练 TensorFlow 模型
    • 下载训练代码启动训练
    • 总结
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

在英特尔独立显卡上训练TensorFlow模型

2023/01/13
2992
阅读需 11 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

文章作者:武卓,张晶

本文将基于蝰蛇峡谷(Serpent Canyon) 详细介绍如何在英特尔独立显卡上训练 TensorFlow 模型的全流程。

1.1 英特尔® 锐炫™ 独立显卡简介

英特尔® 锐炫™ 显卡基于 Xe-HPG 微架构,Xe HPG GPU 中的每个 Xe 内核都配置了一组 256 位矢量引擎,旨在加速传统图形和计算工作负载,以及新的 1024 位矩阵引擎或 Xe 矩阵扩展,旨在加速人工智能工作负载

1.2 蝰蛇峡谷简介

蝰蛇峡谷(Serpent Canyon) 是一款性能强劲,并且体积小巧的高性能迷你主机,搭载全新一代混合架构的第 12 代智能英特尔® 酷睿™ 处理器,并且内置了英特尔® 锐炫™ A770M 独立显卡

搭建训练 TensorFlow 模型的开发环境,Windows 版本要求

训练 TensorFlow 所依赖的软件包 TensorFlow-DirectML-Plugin 包要求:

Windows 10的版本≥1709

Windows 11的版本≥21H2

用“Windows logo 键+ R键”启动“运行”窗口,然后输入命令“winver”可以查得Windows版本。

下载并安装最新的英特尔显卡驱动

到英特尔官网下载并安装最新的英特尔显卡驱动。驱动下载链接:

https://www.intel.cn/content/www/cn/zh/download/726609/intel-arc-iris-xe-graphics-whql-windows.html

下载并安装Anaconda

下载并安装 Python 虚拟环境和软件包管理工具Anaconda:

https://www.anaconda.com/

安装完毕后,用下面的命令创建并激活虚拟环境tf2_a770:

conda create --name tf2_a770 python=3.9conda activate tf2_a770

安装TensorFlow2

在虚拟环境 tf2_a770 中安装 TensorFlow 2.10。需要注意的是:tensorflow-directml-plugin软件包当前只支持TensorFlow 2.10

pip install tensorflow-cpu==2.10

安装 tensorflow-directml-plugin

在虚拟环境 tf2_a770 中安装 tensorflow-directml-plugin,这是一个在 Windows 平台上的机器学习训练加速软件包。

  // @brief 加载推理数据        // @param input_node_name 输入节点名        // @param input_data 输入数据数组        public void load_input_data(string input_node_name, float[] input_data) {            ptr = NativeMethods.load_input_data(ptr, input_node_name, ref input_data[0]);        }        // @brief 加载图片推理数据        // @param input_node_name 输入节点名        // @param image_data 图片矩阵        // @param image_size 图片矩阵长度        public void load_input_data(string input_node_name, byte[] image_data, ulong image_size, int type) {            ptr = NativeMethods.load_image_input_data(ptr, input_node_name, ref image_data[0], image_size, type);        }

向右滑动查看完整代码

到此,在 Windows 平台上用英特尔独立显卡训练 TensorFlow 模型的开发环境配置完毕

在英特尔独立显卡上训练 TensorFlow 模型

下载并解压 flower 数据集

用下载器(例如,迅雷)下载并解压 flower 数据集,下载链接:

https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz

下载训练代码启动训练

请下载 tf2_training_on_A770.py 并放入 flower_photos 同一个文件夹下运行。链接:

https://gitee.com/ppov-nuc/training_on_intel_GPU/blob/main/tf2_training_on_A770.py

from pathlib import Pathimport tensorflow as tfdata_dir  = Path("flower_photos")image_count = len(list(data_dir.glob('*/*.jpg')))print("Number of image files:", image_count)# 导入Flower数据集train_ds = tf.keras.utils.image_dataset_from_directory(data_dir, validation_split=0.2,  subset="training", seed=123, image_size=(180, 180), batch_size=32)val_ds = tf.keras.utils.image_dataset_from_directory(data_dir, validation_split=0.2, subset="validation", seed=123, image_size=(180, 180), batch_size=32)# 启动预取和数据缓存train_ds = train_ds.cache().shuffle(1000).prefetch(buffer_size=tf.data.AUTOTUNE)val_ds = val_ds.cache().prefetch(buffer_size=tf.data.AUTOTUNE)# 创建模型model = tf.keras.Sequential([  tf.keras.layers.Rescaling(1./255),  tf.keras.layers.Conv2D(16, 3, padding='same', activation='relu'),  tf.keras.layers.MaxPooling2D(),  tf.keras.layers.Conv2D(32, 3, padding='same', activation='relu'),  tf.keras.layers.MaxPooling2D(),  tf.keras.layers.Conv2D(64, 3, padding='same', activation='relu'),  tf.keras.layers.MaxPooling2D(),  tf.keras.layers.Dropout(0.2),  tf.keras.layers.Flatten(),  tf.keras.layers.Dense(128, activation='relu'),  tf.keras.layers.Dense(5)])# 编译模型model.compile(optimizer='adam',  loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),  metrics=['accuracy'])#训练模型model.fit(train_ds,validation_data=val_ds,epochs=20)

总结

英特尔独立显卡支持 TensorFlow 模型训练。下一篇文章,我们将介绍在英特尔独立显卡上训练 PyTorch 模型。

英特尔

英特尔

英特尔在云计算、数据中心、物联网和电脑解决方案方面的创新,为我们所生活的智能互连的数字世界提供支持。

英特尔在云计算、数据中心、物联网和电脑解决方案方面的创新,为我们所生活的智能互连的数字世界提供支持。收起

查看更多

相关推荐

电子产业图谱

英特尔致力于加快智能设备的开发和部署,通过智能多层系统和端到端分析,在智能驾驶、智能零售、智能安防、智能制造等领域,推动企业业务转型,改善人们的生活和工作方式,英特尔驱动物联网变革。