基于华为自研NPU Ascend 910的TensorFlow 1.x训练脚本迁移和使能混合精度记录

简介

基于 TesorFlow 1.x 以 Sess.run 形式搭建入门级——手写数字分类网络,并迁移到 华为自研NPU Ascend 910,同时使能混合精度。

硬件介绍

华为自研 NPU Ascend 910,即昇腾 910 AI 处理器(简称NPU),根据官方介绍,是在2019年发布的人工智能(AI)专用的神经网络处理器,其算力高达256T,最新款算力高达310T,是业界主流芯片算力的2倍。当前业界大多数训练脚本基于 TensorFlow 的 Python API 开发,默认运行在 CPU/GPU/TPU 上,为了使其能够利用昇腾910 AI处理器的澎湃算力执行训练,提升训练性能,需要对训练网络脚本进行简单的迁移适配工作。当前昇腾910 AI处理器上支持 TensorFlow 1.15 的三种 API 开发的训练脚本迁移:分别是Estimator,Sess.run,Keras。 这里以一个Sess.run的手写数字分类网络为例,介绍如何迁移TensorFlow 1.15训练脚本,以支持NPU训练。

同时,华为还推出了自研 AI 计算框架 MindSpore,充分释放 Ascend 910 的澎湃算力,构建全栈全场景 AI 解决方案,有兴趣的同学可以试试。此外,还有Ascend 310,是一款高能效、灵活可编程的人工智能处理器,在典型配置下可以输出 16TOPS@INT8, 8TOPS@FP16,功耗仅为8W。采用自研华为达芬奇架构,集成丰富的计算单元, 提高 AI 计算完备度和效率,进而扩展该芯片的适用性。全 AI 业务流程加速,大幅提高AI全系统的性能,有效降低部署成本。

搭建网络

这里,我们使用华为云 ModelArts 提供的免费资源:Ascend:1*Ascend 910 规格。

下载训练数据集

直接执行以下命令下载手写数字数据集,这个数据集非常经典,可以很方便地下载到。

!wget -N -P /home/ma-user/work/Data https://modelarts-train-ae.obs.cn-north-4.myhuaweicloud.com/train/Data/t10k-images.idx3-ubyte
!wget -N -P /home/ma-user/work/Data https://modelarts-train-ae.obs.cn-north-4.myhuaweicloud.com/train/Data/t10k-labels.idx1-ubyte
!wget -N -P /home/ma-user/work/Data https://modelarts-train-ae.obs.cn-north-4.myhuaweicloud.com/train/Data/train-labels.idx1-ubyte
!wget -N -P /home/ma-user/work/Data https://modelarts-train-ae.obs.cn-north-4.myhuaweicloud.com/train/Data/train-images.idx3-ubyte

image.png

导入库文件

要使基于 TensorFlow 开发的训练脚本在昇腾910 AI处理器上训练,需要借助 Tensorflow 框架适配插件(即 TF Adapter),TF Adapter 中提供了适配 Tensorflow 框架的用户 Python 接口,用于 CANN 软件与 TensorFlow 框架对接。因此在训练之前,需要在训练代码中增加:

from npu_bridge.npu_init import *

导入相关库文件。具体代码:

import tensorflow as tf
import numpy as np
import struct
import os
import time 
from npu_bridge.npu_init import *

处理MNIST数据集

此部分代码应该很常见了,和在 GPU 或在 CPU 上运行基本一致,除为了特定需求或性能优化外,一般无需改造。

首先是加载数据集,原始数据为了节省保存空间,也为了加载的快速,一般保存为二进制文件。


                
要在华为NPU上安装conda,可以按照以下步骤进行操作: 1. 首先,连接到华为提供的NPU服务器,例如使用Xshell或其他远程连接工具。 2. 登录服务器后,创建自己的文件夹,用于安装管理conda环境。 3. 接下来,复制一份pt-1.5的conda环境,可以使用命令`conda create -n your_env_name --clone pt-1.5`,这将创建一个与pt-1.5环境相同的新环境。 4. 安装所需的包,可以使用命令`conda activate your_env_name`激活新环境,然后使用`conda install package_name`安装需要的包。 5. 在设置好环境并安装完所需的包后,可以运行自己的程序。确保先激活自己的conda环境,使用命令`source env_npu.sh`,然后运行你的代码。 6. 另外,建议使用nohup命令后台运行代码,以确保代码可以持续运行。可以使用`nohup python your_code.py &`命令来运行代码。 7. 在运行代码后,可能会生成许多日志文件。为了方便访问修改,建议将运行代码的sh脚本文件放在单独的文件夹中,这样在使用WinSCP等工具进行访问时会更加方便。 这是一个大致的步骤,你可以根据具体情况适当调整。通过这些步骤,你可以在华为NPU上成功安装conda并运行代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [华为Ascend众智计划项目--3DMPPE_ROOTNET--Pytorch模型迁移NPU(三)](https://blog.csdn.net/KingGugu/article/details/120738467)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值