请选择 进入手机版 | 继续访问电脑版

集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1794|回复: 3

开源工具助你在FPGA上轻松实现二值化神经网络

[复制链接]
zxopenhl 发表于 2017-12-19 09:42:28 | 显示全部楼层 |阅读模式
        神经网络技术起源于上世纪五、六十年代,当时叫感知机,拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果,早期感知机的推动者是Ronsenblatt。后来又发展到多层感知机,而多层感知机在摆脱早期离散传输函数的束缚,在训练算法上使用Werbos发明的反向传播BP算法,这个就是现在大家常数的神经网络NN,而目前存在的神经网络最常见的有:ANN,RNN,以及CNN。CNN是一种多层神经网络,擅长处理图像特别是大图像的相关机器学习问题,它可以通过一系列方法,成功将数据量庞大的图像识别问题不断将维,最终使其能够被训练。

GUNNESS开源工具
        一个叫做GUNNESS的全新的开源工具,可以帮助用户通过SDSoC 开发环境很轻松的将二值化神经网络(BNNs)实现在Zynq SoC芯片和Zynq UltraScale+ MPSoC芯片上。GUINNESS基于GUI工具而开发,内部实现利用深度学习框架来训练一个二值的CNN。关于这部分内容在今年IEEE的国际并行和分布式处理的workshop上有一篇论文对此进行了较为全面的介绍(论文名为“on-chip Memory Based binarized Convolutional Deep Neural Network Applying Batch Normalization Free Technique on an FPGA”),论文中,作者Haruyoshi Yonekawa和Hiroki Nakahara描述了一个他们实现的系统:他们通过在Xilinx ZCU102 Eval 套件上实现一个用于运行VGG-16 benchmark的二值化CNN逻辑系统,其中ZCU102套件其实是基于Zynq UltraScale+ MPSoC芯片而搭建的。在后来比利时 Ghent的FPL2017中作者Nakahara就GUINNESS工具再次进行了介绍。

根据IEEE中发表的这篇paper所述,在Zynq上实现的CNN相比较与在ARM Cortex-A57处理器上运行CNN,运行速度加快了136.8倍,并且功率有效性也提高了44.7倍之多。与在Nvidia Maxwell GPU上运行同样的CNN相比较,基于Zynq实现的BNN速度加快了4.9倍之多,功耗效率也增长了3.8倍。

不过,对于我们这些游离爱好者来说最值得庆幸的是整个GUINNESS工具可以在Github上access到( https://github.com/HirokiNakahara/GUINNESS )。
       

       
图:Xilinx ZCU102 Zynq UltraScale+ MPSoC Eval Kit


        目前的比较火的概念莫过于机器学习,深度学习,人工智能这三方面了,而这些技术的实现都离不开神经网络的训练,可以说当前技术的热点非神经网络莫属。但是神经网络算法往往较为复杂,软件实现速度往往无法达到需求,专用芯片设计又功能单一且成本高,而通过FPGA实现的话,不仅避免的单用途高成本的投入,同时得到了用户期望的运算速度,一举两得。也相信在以后FPGA将会为神经网络的研究实现方面有更大的发挥空间。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
zhangyukun 发表于 2017-12-20 09:01:20 | 显示全部楼层
开源工具助你在FPGA上轻松实现二值化神经网络
zxopenljx 发表于 2020-10-12 17:08:28 | 显示全部楼层
开源工具助你在FPGA上轻松实现二值化神经网络
zxopenljx 发表于 2024-3-10 16:00:03 | 显示全部楼层
开源工具助你在FPGA上轻松实现二值化神经网络
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-3-29 20:16 , Processed in 0.091920 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表