? 嵌入式中的人工神经网络_CQITer_重庆IT人之家 亚博APP入口,亚博vip体育官网,yabo88亚博app ?

嵌入式中的人工神经网络

人工神经网络在AI中具有举足轻重的地位,除了找到最好的神经网络模型和训练数据集之外,人工神经网络的另一个挑战是如何在嵌入式设备上实现它,同时优化性能和功率效率。 使用云计算并不总是一个选项,尤其是当设备没有连接的时候。 在这种情况下,需要一个能够实时进行信号预处理和执行神经网络的平台,需要最低功耗,尤其是在一个电池设备上运行的时候。

通过使用不同的工具(如 python 脚本) ,可以训练一个数据格式的网络(在 Caffe 和 Tensorflow),然后使用Snapdragon 神经处理引擎的SDK将其转换为可在Snapdragon 平台上运行的神经网络。

概述

高通的Snapdragon 平台和Snapdragon 神经处理引擎SDK是一个非常好的选择,可以在低功耗和小规模设备上创建一个定制的神经网络。 Snapdragon NPE 是为了给开发者提供工具,使他们能够轻松地将智能从云端迁移到边缘设备。

Snapdragon NPE 为开发者提供软件工具,深度神经网络上的工作负载在移动和其他边缘物联网(IoT)设备上,由 Snapdragon 处理器提供软件工具。 开发者可以为所需的用户体验选择最佳的 Snapdragon 核心—— Qualcomm Kryo CPU、 Qualcomm Adreno GPU 或Hexagon DSP。

本文探讨了利用 Matlab 工具在 Snapdragon 平台上开发和实现神经网络,并主要关注 ONNX 格式。 同时,我们还研究了 Snapdragon 平台如何通过使用 Snapdragon 核心和 SNPE SDK 提供的工具来帮助减少电力和处理时间。

设计并开发简单的 DNN

设计和培训深度神经网络开始,使用 Matlab并移植带Snapdragon的设计,寻找Snapdragon上最好的子系统来完成这项工作。

手写数字识别系统

从使用 DNN 的手写数字识别系统开始。 这个网络与(音频数字识别系统)之间的主要区别之一是这个系统没有对输入信号进行任何预处理。 具有异构计算架构的 Snapdragon 平台拥有强大的音频和图像处理引擎,使用数字信号处理(dsp)和图形处理单元(GPU)进行音频和图像处理。

该网络是一个基于三层卷积的网络。为了开发和训练这个网络,可以使用 Matlab,还可以使用 Matlab 的手写数据库(与 MNIST 数据库相同; 关于该数据库的资料,请查看 Matlab 文档)。

编写脚本

选择数据库

[XTrain,YTrain]?=?dig亚博APP入口Train4DArrayData;?

[XValidation,YValidation]?=?dig亚博APP入口Test4DArrayData;?

设置图层

layers?=?[????imageInputLayer([28?28?1],'Name','input',?'Normalization',?'none')?

?

convolution2dLayer(5,16,'Padding','same','Name','conv_1')?

?

batchNormalizationLayer('Name','BN_1')?

?

reluLayer('Name','relu_1')?

?

convolution2dLayer(3,32,'Padding','same','Name','conv_2')?

?

batchNormalizationLayer('Name','BN_2')?

?

reluLayer('Name','relu_2')?

?

fullyConnectedLayer(10,'Name','fc')?

?

softmaxLayer('Name','softmax')?

?

classificationLayer('Name','classOutput')];?

建立网络

options?=?trainingOptions('sgdm',...?

?

'MaxEpochs',6,...?

?

'Shuffle','every-epoch',...?

?

'ValidationData',{XValidation,YValidation},...?

?

'ValidationFrequency',20,...?

?

'Verbose',false,...?

?

'Plots','training-progress');?

进行训练(有关训练过程的细节,参见 Matlab的相关文档)。

?

嵌入式中的人工神经网络

?

图1 训练结果

为了验证网络,使用这个图像作为分类器,网络可以正确地对它进行分类。

?

嵌入式中的人工神经网络

?

图2 分类器

现在,在将网络转换为 ONNX 格式之后,进入了下一步,即使用 SNPE 工具。

首先,需要将 ONNX 格式转换为 DLC。

snpe-onnx-to-dlc?-m?handwritten-onnx?--debug?

这将创建一个 DLC 格式网络,可用于SNPE。

然后使用此命令,可以验证网络结构与在 Matlab 中创建的结构是否匹配。

?

嵌入式中的人工神经网络

?

图3 拓扑对比(左侧 SNPE DLC,右侧 Matlab)

现在使用相同的测试图像并在 Snapdragon 目标板上验证它。 以下是 ARM,cDSP 和 GPU 的结果摘要,使用了以下步骤:

拉取平台上不同核(使用 dsp 和使用 gpu)的 snpe-net-run 结果

?

嵌入式中的人工神经网络

?

比较结果表明,DSP 和 GPU 关系密切,但在这些平台上,与 GPU 相比,cDSP 没有较大负载(特别是当有图形应用程序运行时).

使用信号预处理子系统

到目前为止,已经实现的 DNN 网络不需要对输入信号进行任何预处理(比如从输入图像中提取特征)。 然而,并不是所有的实现都是这样。

相关推荐
新闻聚焦
猜你喜欢
热门推荐
  • 微软AI面试题有多难?这里有一份样卷

      究竟什么样的AI人才能被微软这样的巨头聘用呢?今天,文摘君就淘来了几道微软AI 面试题,同时给出了最基本的解答......

    06-25????来源:澎湃新闻网

    分享
  • 全球最聪明的大脑怎么看AI?他们预测了

      2017年AI领域取得了诸多成果。2018年AI又将何去何从?以下是来自世界顶级研究人员和行业领军人物对2018年AI领域发展作......

    02-20????来源:虎嗅网

    分享
  • 2017JavaScript框架战报 - React分战场

      我们来看看与React有关的软件包的生态系统。当Facebook构建React时,就有许多来自开源社区的第三方软件包。为提供完......

    02-27????来源:湖北新闻网

    分享
  • 小白学数据:教你用Python实现简单监督学

      监督学习作为运用最广泛的机器学习方法,一直以来都是从数据挖掘信息的重要手段。即便是在无监督学习兴起的近......

    03-05????来源:今日头条

    分享
  • 现代编程语言Swift、Kotlin等十大有趣功能

      最近学习了一些现代编程语言,比如Reason,Swift,Kotlin和Dart。这些编程语言提供了许多新功能,本文主要分享了我认......

    04-29????来源:祁东新闻网

    分享
  • 领域场景分析的6W模型

      组成场景的要素常常被称之为6W模型,即描写场景的过程必须包含Who,What,Why,Where,When与hoW这六个要素。......

    04-30????来源:砍柴网

    分享
  • 开源应用服务器WildFly 12发新季度交付模式

      WildFly 12 Final版本现在已经可以下载了,WildFly是一款灵活的开源应用服务器,支持开发人员构建轻量级应用程序。支持......

    05-10????来源:青岛新闻网

    分享
  • 基于Spring Cloud的微服务落地

      微服务架构模式的核心在于如何识别服务的边界,设计出合理的微服务。但如果要将微服务架构运用到生产项目上,......

    06-04????来源:广西新闻网

    分享
  • 为什么阿里工程师纷纷在内网晒代码?

      前阵子,在阿里一个小黑屋里,5名对代码有着极致追求的工程师参与阿里代码领域最高荣誉“多隆奖”的最终角逐。......

    06-08????来源:四川新闻网

    分享
  • 超级大汇总!200多个最好的机器学习、

      我把这篇文章分为了四个部分:机器学习,自然语言处理,python和数学。在每个部分中我都列举了一些主题,但是因......

    09-25????来源:洛阳新闻网

    分享
返回列表
Ctrl+D?将本页面保存为书签,全面了解最新资讯,方便快捷。