Zynqnet(四)fgpa_top模块的weights.bin和input.bin的结构 VS darknet中权值和输入的结构

本文详细探讨了Zynqnet FPGA加速模块中weights.bin和input.bin的存储结构,并与Darknet中的权值和输入结构进行了对比。input.bin的存储方式是先存储所有通道同一坐标位置的元素,而weights.bin则是先存储所有卷积核的同一通道元素。针对Darknet的l.weights,其存储顺序为卷积核、通道、行、列。文章旨在帮助理解如何将Darknet的权值和输入转换为Zynqnet所接受的格式。
摘要由CSDN通过智能技术生成

背景:对于FPGA加速模块的使用,除了知道如何设置一些宏变量和全局变量之外,对于卷积核权值的存储和输入数据的存储顺序是另外一个非常重要的问题。为了尽快将其源码移植到自己的项目中,需要构造这两个部分,原论文中是使用的python脚本将caffermode转化成相应的weight.bin。那么,如果对于非caffemodel,或者想对自己的CNN程序进行局部加速,怎么办?这里就需要搞清楚weights.bin和input.bin二者是如何排列的。

方法:搜索作者github->issue,发现蛛丝马迹

(一)首先对于input.bin的结构 https://github.com/dgschwend/zynqnet/issues/4

研读代码之后发现,

    for y in range(H):
        for x in range(W):
            for c in range(CH):
                pixel = data[c,x,y]
                if pixel is None: pixel = 99999
                pixels.append(pixel);

对于input的存储并不是,按照每个通道,一个通道一个通道来存储的。而是先存储所有通道的(0,0)坐标位置的元素,再存储(0,1)坐标的元素,再存储(0,2)的元素,直到(0,w),然后是(1,0),(1,1),……(1,w)直到(h,w)。这样则完成了所有通道的输入。

(二

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值