PowerSensor AI教程1.2 - 数字识别 - dnndk模型编译

准备工作

  1. 安装vmware,vmware在我们的百度网盘可以下载到
    链接:https://pan.baidu.com/s/1nhXQxRgYh9cDEFMw5sMvAQ
    提取码:z1dm

  2. 下载我们准备好的虚拟机
    地址:
    链接:https://pan.baidu.com/s/1mdZV9jn74RCxKp_pUh4mew 提取码:623k

  3. 本章的例程与上一节的相同,请移步
    Powersensor AI教程1.1-数字识别-tf模型训练下载。

介绍

本章主要介绍的PowersensorAI部署的第二个环节,通过xilinx的DNNDK,将tensorflow训练好的模型进行固化、编译等操作。最终生成powersensor可以运行的elf文件。这个环节称为dnndk环节。

编译过程

  1. 打开虚拟机,登录密码是123
    在这里插入图片描述

  2. 在虚拟机的/home/xiaobo/powersensor目录下新建ministNumber文件夹(随教程发布的案例会已经存在),并把案例目录下的dnndk文件夹和dataset_valid文件夹复制到新建的文件夹下面。如果要使用自己新训练的模型,需要把自己的模型(在案例目录/pc/run下面的2个模型文件)替换掉我们准备好的文件。
    dnndkDir

  3. 在虚拟机里的dnndk文件夹里在打开终端:
    在这里插入图片描述

  4. 第一步,模型固定,把tensorflow的权值固定到结构中,指令是./1_vitisAI_keras2frozon.sh

xiaobo@ubuntu:~/powersensor/fashion-minist/dnndk$ ./1_vitisAI_keras2frozon.sh
############################################
Convert keras h5 model to frozon model begin
Vitis AI 1.1
############################################
I0515 05:22:53.318743 139635748165376 keras_to_tensorflow.py:146] Converted output node names are: [u'dense_out/Softmax']
INFO:tensorflow:Froze 8 variables.
I0515 05:22:53.326545 139635748165376 tf_logging.py:115] Froze 8 variables.
INFO:tensorflow:Converted 8 variables to const ops.
I0515 05:22:53.329962 139635748165376 tf_logging.py:115] Converted 8 variables to const ops.
I0515 05:22:53.332588 139635748165376 keras_to_tensorflow.py:178] Saved the freezed graph at frozon_result/model.pb
############################################
Convert completed
############################################

frozon完模型,工具会把网络节点的名称打印出来。一般地,第一个是输入节点,最后一个是输出节点。
在这里插入图片描述

  1. 第二步,量化,注意把2_vitisAI_tf_quantize.sh中的input_nodesinput_shapesoutput_nodes改成与第一步打印的节点名称一致。
    在这里插入图片描述
    在这里插入图片描述
xiaobo@ubuntu:~/powersensor/fashion-minist/dnndk$ ./2_vitisAI_tf_quantize.sh 
#####################################
Quantize begin
Vitis AI 1.1
#####################################
('../dataset/fashion-mnist/t10k-images-idx3-ubyte.gz', '../dataset/fashion-mnist/t10k-labels-idx1-ubyte.gz')
t10k labels:10000
t10k datas shape:(10000,28,28)
INFO: Checking Float Graph...
INFO: Float Graph Check Done.
INFO: Calibrating for 100 iterations...
100% |#########################################################################|
INFO: Calibration Done.
INFO: Generating Deploy Model...
INFO: Deploy Model Generated.
********************* Quantization Summary *********************      
INFO: Output:       
  quantize_eval_model: ./quantize_results/quantize_eval_model.pb       
  deploy_model: ./quantize_results/deploy_model.pb
#####################################
QUANTIZATION COMPLETED
#####################################

  1. 第三步,编译模型
./3_vitisAI_tf_compile.sh 

在这里插入图片描述

记住这两个节点的名称和模型的名称,在Powersensor上的edge阶段就使用这两个名称来引用节点。
编译完成后会在当前目录的compile_result目录下生成dpu_testModel_0.elf文件,这个就是最终要在DPU上运行的二进制库,把它从虚拟机里拷贝出来备用:
dnndkElfFile

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
低功耗方法论手册是用于系统级芯片设计的指南。随着技术的发展,SoC设计变得越来越复杂,功耗管理变得愈发重要。低功耗方法论手册的目的是为SoC设计人员提供一种系统化的方法来优化芯片的功耗性能。 该手册涵盖了一系列低功耗设计原则和技术。首先,它介绍了功耗分析和模型建立的方法。通过对芯片不同模块的功耗进行分析,设计人员可以确定哪些部分是功耗的主要来源,并制定相应的优化策略。其中,模型建立有助于准确预测芯片在不同工作负载下的功耗消耗情况。 其次,在芯片架构层面,手册提供了多种优化技术。例如,通过采用低功耗处理器核心、功耗感知的内存管理和优化的总线结构等手段,可以降低芯片整体的功耗。此外,为了进一步降低功耗,手册还呼吁采用节能的外设和模块,以及灵活的功率管理策略,如动态电压频率调整和睡眠模式。 最后,手册也建议设计人员在设计过程中采用系统级的优化方法。例如,可以利用功耗仿真工具和电源管理软件来评估和优化芯片的功耗性能。此外,手册还提醒设计团队在早期设计阶段考虑功耗因素,采用分层设计和功耗约束等策略。 综上所述,低功耗方法论手册为SoC设计人员提供了一种系统化的方法来优化芯片的功耗性能。通过采用其中的原则和技术,设计人员可以在满足功能需求的同时,实现更低的功耗消耗。这有助于延长设备电池寿命,降低系统散热需求,并提高系统可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linxiaobo110

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值