玄铁RISC-V处理器入门与实战-平头哥RISC-V 工具链-HHB神经网络模型部署工具

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 玄铁RISC-V处理器入门与实战-平头哥RISC-V 工具链


1概述

HHB(Heterogeneous Honey Badger)是针对玄铁全系列处理器、无剑SoC平台的神经网络模型部署工具集,包括了编译优化,性能分析,过程调试,结果模拟等一系列部署时所需的工具。该工具集通过向开发者提供从模型优化到部署调试全过程的辅助工具,简化AI模型应用落地到端侧设备的开发过程,从而缩短AI产品的开发周期。

 

HHB的功能与特性:

支持caffe,tensorflow,onnx和tflite对应格式的模型

支持8/16位定点和16位浮点等数据类型

支持对称和非对称定点量化,支持通道量化

可在部署前优化模型的网络结构

编译生成可在玄铁芯片平台上执行的二进制

支持在主机上做行为模拟

多组件形式的工具集方便二次开发

符合传统习惯的Unix命令行模式

2HHB层次结构

HHB已支持语音和视觉的多种不同业务算法,可导入Caffe和TensorFlow等不同训练框架的模型。

 

HHB以开源项目TVM为基础架构,添加了丰富的命令行选项提供命令模式;预置了多类量化算法适配不同平台可支持的数据类型;根据不同平台特点,输出调用CSI-NN2的C代码,或者直接输出可执行的二进制。

 

image.png 

 

3命令行工具集

HHB工具集包括了如下一些独立命令行工具:

import:模型导入工具,负责将现有的模型转换为HHB私有的格式。

quantize:量化工具,负责将import出来的文件量化,生成量化后的中间文件。

codegen:代码生成工具,调整中间文件为生成二进制做准备。

deploy:特定平台的部署工具,负责生成二进制及配套的头文件和源代码。

simulate:行为模拟工具,负责在主机上模拟模型执行。

profiler:性能分析工具,负责分析网络中的热点子图,以及提供在特定平台上的优化建议。

 

相互关系大致如下图所示,其中deploy和标灰的是暂时还不支持的部分:

 

image.png

 

4)获取安装

HHB版本发布时,提供独立的可执行程序包,也提供包含示例的完整docker环境。

推荐使用docker,docker安装参考附录《Docker安装和导入镜像》。

OCC站点下载:AI部署工具

 

环境要求

推荐使用已测试过的执行环境:

可执行程序包:ubuntu 18.04

docker:Docker version 19.03.4

HHB默认以docker镜像的方式发布,最简单的获取方式是docker官方的镜像仓库:dockerhub

获取HHB 2.0可以使用命令:

 

docker push hhb4tools/hhb:lastest

 

如果未安装docker,可以参考附录《Docker安装和导入镜像》先安装docker。更多关于HHB神经网络模型部署工具相关内容可以参考《HHB用户手册》。

相关文章
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
这篇文章介绍了如何使用PyTorch框架,结合CIFAR-10数据集,通过定义神经网络、损失函数和优化器,进行模型的训练和测试。
86 2
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
|
6月前
|
编解码 Android开发
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)1
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)
337 1
|
6月前
|
机器学习/深度学习 Python
【Python实战】——神经网络识别手写数字(三)
【Python实战】——神经网络识别手写数字
|
6月前
|
机器学习/深度学习 数据可视化 Python
【Python实战】——神经网络识别手写数字(二)
【Python实战】——神经网络识别手写数字(三)
|
6月前
|
编解码 开发工具 Android开发
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
381 2
|
5月前
|
机器学习/深度学习 数据采集 存储
神经网络案例实战
使用PyTorch解决手机价格分类问题:收集包含RAM、存储等特征的手机销售数据,将价格分为4个等级的分类任务。步骤包括数据预处理、特征工程、选择神经网络模型、训练、评估和预测。模型使用Sigmoid激活的三层网络,训练时采用交叉熵损失和SGD优化器。通过调整模型结构、优化器和学习率以优化性能。
|
5月前
|
机器学习/深度学习 自然语言处理 前端开发
深度学习-[源码+数据集]基于LSTM神经网络黄金价格预测实战
深度学习-[源码+数据集]基于LSTM神经网络黄金价格预测实战
133 0
|
6月前
|
机器学习/深度学习 数据采集 TensorFlow
TensorFlow实战:构建第一个神经网络模型
【4月更文挑战第17天】本文简要介绍了如何使用TensorFlow构建和训练一个简单的神经网络模型,解决手写数字识别问题。首先,确保安装了TensorFlow,然后了解神经网络基础、损失函数和优化器以及TensorFlow的基本使用。接着,通过导入TensorFlow、准备MNIST数据集、数据预处理、构建模型(使用Sequential API)、编译模型、训练和评估模型,展示了完整的流程。这个例子展示了TensorFlow在深度学习中的应用,为进一步探索复杂模型打下了基础。
|
6月前
|
机器学习/深度学习 数据可视化 Python
【Python实战】——神经网络识别手写数字(一)
【Python实战】——神经网络识别手写数字
|
6月前
|
机器学习/深度学习 算法 PyTorch
【PyTorch实战演练】深入剖析MTCNN(多任务级联卷积神经网络)并使用30行代码实现人脸识别
【PyTorch实战演练】深入剖析MTCNN(多任务级联卷积神经网络)并使用30行代码实现人脸识别
546 2

热门文章

最新文章