如何在英特尔独立显卡上训练TensorFlow模型的全流程

本文将基于蝰蛇峡谷(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 模型。


乐视股东大会敞开谈:乐视手机还有“生态梦”但是难逃信任危机
如何在Windows物理机上构建Linux开发环境
STM32单片机定时器的时钟源设置
便携式移动电视接收系统浅析
拆解A股中半导体“大基金”的资本版图
如何在英特尔独立显卡上训练TensorFlow模型的全流程
SynQor的高性能滤波器
利用用激光活化的一种丝绸和金纳米材料成功修复了动物身上的伤口
科学家探索AI“选择性失忆”问题
探索高光谱技术在油炸食品中的应用-莱森光学
“六一”节来电科技助力公益环保 共享绿色生活从儿童开始
欧盟委员会证实镉基量子点技术的环境效益
什么是电力电容器,电力电容器的基本知识介绍
双十一首战,华为麒麟手机力压苹果iPhone
简单的对讲电路分享
[图文]18W D类单片音频放大器TDA7481
工信部完善政策解决新能源汽车充电难问题
比1纳秒光速更快的图像识别技术研究
2019新iPhone将新增绿色并改用Type-C接口
三星Galaxy Indulge 4G智能手机曝光