0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

全新开源工具,助力FPGA上轻松实现二值化神经网络

YCqV_FPGA_EETre 来源:互联网 作者:佚名 2017-10-17 09:49 次阅读

神经网络技术起源于上世纪五、六十年代,当时叫感知机,拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果,早期感知机的推动者是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将会为神经网络的研究实现方面有更大的发挥空间。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21302

    浏览量

    593110
  • 神经网络
    +关注

    关注

    42

    文章

    4570

    浏览量

    98714
  • 人工智能
    +关注

    关注

    1776

    文章

    43801

    浏览量

    230572

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

文章出处:【微信号:FPGA-EETrend,微信公众号:FPGA开发圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MATLAB神经网络工具箱函数

    MATLAB神经网络工具箱函数说明:本文档中所列出的函数适用于MATLAB5.3以上版本,为了简明起见,只列出了函数名,若需要进一步的说明,请参阅MATLAB的帮助文档。1. 网络创建函数newp
    发表于 09-22 16:10

    脉冲耦合神经网络FPGA实现谁会?

    脉冲耦合神经网络(PCNN)在FPGA实现实现数据分类功能,有报酬。QQ470345140.
    发表于 08-25 09:57

    labview BP神经网络实现

    请问:我在用labview做BP神经网络实现故障诊断,在NI官网找到了机器学习工具包(MLT),但是里面没有关于这部分VI的帮助文档,对于”BP神经网络分类“这个范例有很多不懂的地方,
    发表于 02-22 16:08

    【PYNQ-Z2申请】基于PYNQ的神经网络自动驾驶小车

    作品简介这次试用PYNQ-Z2作品“基于PYNQ平台的神经网络自动驾驶小车”,在PYNQ平台上对车载摄像头图像高速采集、预处理,并在FPGA搭建神经网络,使用图像输入生成小车运动的控
    发表于 12-19 11:36

    【PYNQ-Z2申请】基于PYNQ的卷积神经网络加速

    ,得到训练参数2、利用开发板arm与FPGA联合的特性,在arm端实现图像预处理已经卷积核神经网络的池、激活函数和全连接,在FPGA
    发表于 12-19 11:37

    【PYNQ-Z2试用体验】基于PYNQ的神经网络自动驾驶小车 - 项目规划

    神经网络技术的第三次发展浪潮仍在继续,在其背后,高性能CPU、GPU和FPGA、ASIC以强大的算力为技术的应用落地提供了有力的支持。然而目前基于FPGA平台搭建神经网络作为控制器,
    发表于 03-02 23:10

    【PYNQ-Z2试用体验】神经网络基础知识

    能在外界信息的基础改变内部结构,是一种自适应系统,通俗的讲就是具备学习功能。现代神经网络是一种非线性统计性数据建模工具。简单来说,就是给定输入,神经网络经过一系列计算之后,输出最终结
    发表于 03-03 22:10

    基于赛灵思FPGA的卷积神经网络实现设计

    FPGA 实现卷积神经网络 (CNN)。CNN 是一类深度神经网络,在处理大规模图像识别任务以及与机器学习类似的其他问题方面已大获成功。
    发表于 06-19 07:24

    如何设计BP神经网络图像压缩算法?

    (Digital Signal Processor)相比,现场可编程门阵列(Field Programma-ble Gate Array,FPGA)在神经网络实现更具优势。DSP处
    发表于 08-08 06:11

    如何移植一个CNN神经网络FPGA中?

    训练一个神经网络并移植到Lattice FPGA,通常需要开发人员既要懂软件又要懂数字电路设计,是个不容易的事。好在FPGA厂商为我们提供了许多
    发表于 11-26 07:46

    基于FPGA神经网络的性能评估及局限性

    FPGA实现神经网络关键问题分析基于FPGA的ANN实现方法基于FPGA
    发表于 04-30 06:58

    matlab实现神经网络 精选资料分享

    神经神经网络,对于神经网络实现是如何一直没有具体实现一下:现看到一个简单的神经网络模型用于训
    发表于 08-18 07:25

    FPGA实现大型神经网络的设计

    1、加速神经网络的必备开源项目  到底纯FPGA适不适合这种大型神经网络的设计?这个问题其实我们不适合回答,但是FPGA厂商是的实际操作是很
    发表于 10-24 16:10

    基于FPGA的RBF神经网络硬件实现

    基于FPGA的RBF神经网络硬件实现说明。
    发表于 04-28 11:24 25次下载

    基于FPGA神经网络硬件实现方法

    基于FPGA神经网络硬件实现方法说明。
    发表于 06-01 09:35 37次下载
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>神经网络</b>硬件<b class='flag-5'>实现</b>方法