您的位置 首页 制造

根据数据流核算图的卷积神经网络的理论和规划

谢仁杰 (英特尔战略合作和创新业务部 技术经理,人工智能开放创新平台联合学者,上海 200241)摘  要:近年来在许多信号处理应用领域中,深度卷积神经网络引起了学术界和工业界很大的关注,其中 基于数

谢仁杰 (英特尔战略合作和立异业务部 技能司理,人工智能敞开立异渠道联合学者,上海 200241)

摘  要:近年来在许多信号处理运用范畴中,深度卷积神经网络引起了学术界和工业界很大的重视,其间 依据数据流图的深度学习网络Tensorflow结构得到了很多人的喜爱。但在一些商业落地的研讨和查询中发 现,部分组织触及一些自开发的核算单元,而它不被大型网络结构所支撑,又出于技能的保密性往往需求 自行修正工业界的深度学习结构,这就造成了以下状况, ①工业级大型代码结构极端杂乱,各大库之间的 调用很深且一般没有注释,不容易读懂和修正,②对某一个单一运用来说,工业界绝大多数的代码都是有 冗余的,这就使得代码全体比较臃肿(厚),功用会受点影响。依据这种受限的状况下,本文提出了一种 依据信号处理数据流核算图模型的办法,在多个渠道多核下完成车辆分类。该办法在整个运用过程中,展 现了灵敏地规划完成优化转化才能,多渠道的兼容可施行性,可在有限的资源内依据自己的算法需求,分 立式地量身定制。在硬件电路加快或芯片的规划中,数据流所得到的高输出率、低延时特色是各厂家在写 RTL硬件规划言语时侧重提出的特色,其次依据数据流的软硬件规划易于算法代码之间的转化、完成、移 植、调试、剖析、归纳、集成、优化和验证。 

要害词:深度学习;数据流;核算图多核运算车辆分类

0  导言 

跟着国家进入人工智能年代,深度学习在嵌入式 和核算机运用范畴无处不在,例如轿车嵌入式体系和 物联网,然后激发了在资源受限的边际端做深度卷积 神经网络的规划办法和研讨。本文中以车辆分类作为 详细研讨事例,规划一种依据信号处理的数据流核算 图的模型结构和完成优化办法,迭代式的完成,试验 及优化,并在不同的渠道及有限的核算资源下完成针 对四种附近车辆的分类。本文以数据流核算图原理出 发,介绍不同数据流技能建模的原理和方式,后举一 个从零开端依据车辆分类的比如,从练习某个运用的网络,选取网络参数和神经元权重开端,进行Matlab 的仿真代码完成,并以此为参阅代码进行依据数据 流核算图C代码完成,随后对整个核算图进行深度优 化,最终单核和多核在不同渠道下的功用进行了逐个 比照。数据流核算图的简练,跨渠道,可扩展的彻底 自主的特性,可用于任何特定范畴,特别合适量身定 制的的嵌入图画和视频信号的操作。

1  数据流模型 (Dataflow Modeling) 

1.1 数据流模型原理 

在数据流建模模型中,数据流图可表明为有向图,由一系列Actors(极点)和edges(行进先出, FIFO)组成,其间actor表明恣意杂乱程度的核算单元 (可所以高节点的actor封装了一些核算图),edge表 示衔接各actors的连线,然后构成一组核算图,代表 一个函数功用体系,数据类型则封装在token,在一 个actor经过 edge输出至另一个actor输入端。数据流边 缘能够表明e =(v1; v2),表明数据从v1到v2。这儿 src(e)表明的v1称为源actor,sink(e)表明的v2称 为接收器。在一个数据流核算图中,一个actor在其接 受的数据足以核算该单元actor的算法时能够发动和调 用该actor经过其enable和invoke函数, 每个actor需求明 确界说其输进口耗费和输出口发生的 token的数量。 整个数据流核算图运转是一个离散的操作。在图1 中,Actor: FS1,FS2是2个源的参与者;Actor: Adder 是加法操作; Actor: FK是接收器。整个图表发生每个 actor触发(耗费)一个token到每个actor输出(输入) 端口上。

微信截图_20200306104403.png

1.2 数据流模型概述 

Core Functional Dataflow(CFDF)是一种可编程 的模型,常用于规划、剖析及完成信号处理体系,尤 其是一种确认耗费产出比和有着动态数据流份额的 的信号处理单元的体系开发;Synchronous Dataflow (SDF)是最简略最盛行的数据流模型,它有个限 制,即一个actor在每个传出边际上发生的数据值是个 数字常量,一起actor从进入边际耗费的数据值的数量 也需求是常量;Cyclo – Static Dataflow (CSDF) 是一 种类型的SDF,在一个 actor发生和耗费的token比是可变的,只需这个变值是一个固定的周期性的方式; Parameterized Dataflow (PDF) 是一种结合动态参数与 运转参数化的数据流核算图,尤其是那些有很明晰的 图迭代概念的图形;Boolean Dataflow (BDF) 是SDF的 扩展,其间一个actor发生和耗费的吞吐率取决于操控 的二值函数token,它源自于动态数据流actor中的一个 指定操控端口;Enable – Invoke Dataflow (EIDF)是另 一种动态数据流建模技能。它将actors分红一系列模 式,每个方式都有一个固定的耗费和生成的token 的 数量,代表一个分支能够在运转时切换多种方式。 

1.3  数据流模型环境: Lightweight Dataflow Environment – C (LIDE-C) 

LIDE-C(轻量级数据流环境C)是一个灵敏设 计的C言语的编程环境,答应规划人员发掘依据数据 流的技能信号处理体系的规划完成和优化,专心于 根本的运用程序编程接口(API)功用。在整个结构 供给广泛的完成信号处理体系功用的组件,以及跨 渠道操作,包含可编程门阵列(FPGA),图形处理 单元(GPU),可编程数字信号处理器(DSP)和服 务器作业站。LIDE-C软件包具有许多数据流图元素 (actor和edge)完成库,依据这些根本要素能够自在 规划自己的数据流图并界说元素,开发特定的运用程 序(例如,操控,参数化和仪器相关的模块),和触 发整个数据流图的调度程序,详解可参阅文章[1]。在 LIDE-C数据流核算图种actor和edge是要害2元素,其 中Actor规划包含四个接口函数:结构,发动,调用和 栽培函数(图2)。

微信截图_20200306104431.png

1)结构函数:创立actor的实例并衔接端口,经过函数参数列表进行算法处理后传递给相连的一 组边。 

2)启用功用:在运转时查看该actor是否有满足 的输入数据和空的缓冲区空间来支撑下一次调用。 

3)调用函数:为actor履行单次调用。 

4)停止功用:封闭此actor在核算图的作用,包 括开释相关的存储目标及其所占用的资源。 

LIDE-C中的FIFO规划构成的数据流图与其actors 自身彼此独立完成和优化,开发者可专心于Actor的设 计(如算法的完成和优化),然后经过明晰界说的接 口和fifos集成这些actors, 然后进行数据流图的调度 优化(并行,优先级), 这些可经过彼此交流完成整 个功用的体现。FIFO操作由C中的 接口函数封装。函数指针是指向这 些接口功用,以不同方式完成不同 的接口。LIDE-C中的规范FIFO有 以下履行操作: 

创立具有特定容量的新FIFO。 

从/向一个fifo读取和写入 token。 

查看FIFO的容量。 

查看FIFO中当时的token数。 

运用FIFO完成后,用FIFO免除 存储。 

在一个数据流核算图运用程序 中创立一切actors和fifos之后,逐渐 衔接并逐渐触发查看图形下一个关 键actor,然后验证查看调试整个系 统的当时运用状况。

2   依据图画的车辆辨认的网络架构 

本文以依据图画的车辆辨认网 络体系,从零开端一步一步得到相 应的网络,完成参阅的Matlab推理网络代码,然后进 一步完成优化依据数据流核算图的C代码完成,此方 法具有必定的普适性和扩展性,且依据不同的需求可量身定制其它的运用需求。事例中的CNN完成四种 车辆之间的分类——公共轿车,货车,面包车和汽 车,此源数据和作业依据之前的车辆分类作业[3],提 取了相关的有用信息,运用Caffe + Python 随机查找 来最优的超参数。在运用50组随机生成的超参数(图 3)进行一系列查找迭代之后,针对准确率和参数大 小及功用的特征平衡,推导出一套可施行的优化过的 超参数车辆分类体系, 比及练习模型安稳后,提取相 关的模型权重图4(注:本文意图是演示完成优化数 据流核算图的办法,所选取的类型为double型,读者 可依据深度学习相关常识,可相应地调整网络,例 如用全卷积网络或半精度数据类型或许8比特的整数类型)。 

1583462852710762.png

1583462852903917.png1583462852423724.png

练习好后得到的超参数所构成的CNN架构(见图 4)由五层组成——两个卷积层,两个全衔接层,最终是分类器层。第一层包含三个通道 (红绿蓝RGB通 道),每个输入图画96 x 96的三通道经过过滤后分化 成32个特征图,然后最大值池化为48×48。在第二层 中,有32组特征图再次卷积,然后下采样最大值池化 到24×24。第三层和第四层是两层全衔接层,每个节 点有100个节点。分类器层履行从100个元素到4个元 素并经过softmax运算符得到4个等级或许概率值。在 层于层相邻之间,运用整流线性单元非线性激活函数 (ReLU)。

3  依据数据流的网络架构核算图规划 

在得到整个网络拓扑图(图5)并提取出网络各 个神经元的权重(图4)后,先在Matlab环境中完成其 CNN 推理的图画分类代码,其主要意图其一是保证此 参数模型的最终作用,功用和准确性,其二是有一个 参阅代码并可搜集每一层运算后的数值,便于后续数 据流核算图C代码的完成、比较、调试和优化,这种 逐层式至最终巨大体系的检测有益于全体代码完成的 鲁棒性,并将或许的测验失利的原因显现化在详细的 某一层某个actor或fifo,进行更好更快速的完成代码设 计优化和迭代。 

在开发了依据Matlab的CNN车辆分类体系的仿真 参阅模型后(图6和图7),咱们持续开发依据数据流核算图LIDE-C的规划以及完成,并在多渠道多核上 进行功用测验,经过迭代式优化数据流核算图及actor 算法来进步全体功用。

作为数据流模型的第一步,把CNN网络拓图转 换了网络框图(图8),每个框图都能够当作带参数 的高阶actor, 高阶actor能够封装一个或多个带参数 subgraph体系子图,而其间或许存在不计其数的actor 互连,其方式类似于硬件模块的完成,所以能够进行 很好的软硬件结合,此网络包含了共10种不同类型 的actor:读通道actor,写通道actor,卷积actor,池化actor, 非线性激活函数actor,分类器actor, 聚合actor, 播送actor,乘加 actor,矩阵乘 法actor。针对这些actors,依照不同的图结 构进行封装规划,构成三种不同的数据流 核算图(图9,图10,图11)。 

1583462961561103.png

1583462997227963.png

1583462997281537.png

规划一的长处是整个架构与框图最接 近,且十分的明晰,易于了解和完成,验 证和查看整个数据流核算图很直接便利。 缺陷是当子图现已确认且封装为一个大的 actor后,难以进一步深层次地优化,若子 图来自于第三方组织,当整个程序有过错 时,很难进行调试;规划二相对简练,在 卷积层用到了循环展开(loop unrolling)和 流水线(pipeline)技能进行优化,添加推迟 但进步输出量。此办法很合适用于网络训 练图结构,但需求一些技巧,整体来说, 整个核算图依旧能够了解;规划三的长处 是整个数据流核算图能够恣意地在某一 步、某一个actor或fifo或缓冲区里盯梢,控 制,办理,验证,检测数据,除此之外, 规划三的颗粒度更细,能够更深层次进行 优化,自行操控的挑选地步比较多,相 反的,缺陷是不易于了解,构成,完成, 优化这颗粒度细且巨大杂乱的数据流计 算图。

参阅文献: 

[1] SHEN C,PLISHKER W,WU H,et al.A lightweight dataflow approach for design and implementation of SDR systems[C]. Proceedings of the Wireless Innovation Conference and Product Exposition,Washington DC, USA, November, 2010:640–645. 

[2] BHATTACHARYYA S S,PLISHKER W,SHEN C,et al.The DSPCAD integrative command line environment: Introduction to DICE version 1.1.Institute for Advanced Computer Studies, University of Maryland at College Park, Tech. Rep. UMIACSTR-2011-10, 2011. 

[3] HUTTUNEN H,YANCHESHMEH F, CHENK.Car type recognition with deep neural networks[C].ArXiv e-prints, February 2016, submitted to IEEE Intelligent Vehicles Symposium 2016. 

[4] BOUTELLIER J,LUNNIKIVI H.Design Flow for Portable Dataflow Programming of Heterogeneous Platforms[C].2018 Conference on Design and Architectures for Signal and Image Processing (DASIP):106-111. 

[5] Representative Projects of the Maryland DSPCAD Research Group[EB/OL]. https://ece.umd.edu/DSPCAD/ projects/toplevel/projects.htm.

本文来源于科技期刊《电子产品世界》2020年第03期第22页,欢迎您写论文时引证,并注明出处。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/zhizao/124984.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部