《中国人工智能学会通讯》——2.18 深度学习算法的计算与访存特征

简介: 本节书摘来自CCAI《中国人工智能学会通讯》一书中的第2章,第2.18节, 更多章节内容可以访问云栖社区“CCAI”公众号查看。

2.18 深度学习算法的计算与访存特征

图 1 是一个用于手写识别的深度卷积神经元网络 LeNet5 [6] ,以此为例讨论深度学习算法的计算特征。在 LeNet5 中,包括了卷积层 C1、C3、C5 和Subsampling 层 S2、S4,以及全连接层 F6。其中卷积层是最为费时的操作。

image

对 于 有 R 个 输 入 feature map 和 Q 个 输 出feature map 的卷积层,假设 feature map 的大小为 M×N,卷积核的大小为 K×L,则该卷积层的代码大致可以表示为如下的循环嵌套[7] (为表示简洁起见, featuremap 的循环界未考虑卷积带来的大小缩减),其中 Y 是最后生成的 feature map,X 是输入的 feature map,W 则是卷积核。
image

可 以 看 到, 卷 积 层 的 计 算 复 杂 度 为O(R×Q×M×N×K×L)。 以 LeNet5 的 C1 层 为 例,其卷积核为 5×5(K×L), 输入 feature map 个数为1(Q),大小为 32×32(M×N), 输出 featuremap 个数为 6(R)。即每生成目标 featuremap 的一个元素,需要读取数组 W 和 X 分别 25 次,并进行 25 次乘法运算和加法运算。

对于给定的 m 和 n,在 k、l 变化时,访问了数组 Y 的固定元素,说明数组 Y 的访问具有较好的局部性;W 是一个较小的数组(因为卷积核通常远小于 feature map),而且对于给定的 m 和 n,变化k 和 l 时,对数组 W 的访问是连续的;对数组 X 的访问在 l 变化时是连续的,但在 k 变化时会产生不连续的内存访问,地址的间隔约为 N 个元素。

由上面分析可以看出,CNN 为代表的深度学习神经元网络中,占主要计算时间的卷积层具有较好的访存局部性特征,仅在访问输入 feature map(X)时会产生一定比例的非连续访问(约为 1/L)。整个卷积的计算由规则的多层紧嵌循环完成,循环体内也没有引入很多复杂的条件分支等。

更进一步,卷积层的计算没有任何循环间的先读后写依赖,仅对目标数组 Y 在 r、m、n 相同时存在写 - 写依赖。因此,卷积层的计算可以在 r、m、n 循环直接进行循环级并行,如果需要进一步在 q、k、l层进行并行化,可以通过规约来消除写-写依赖,进一步提高并行度。

相关文章
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
1094 55
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
592 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
5月前
|
机器学习/深度学习 传感器 数据采集
【23年新算法】基于鱼鹰算法OOA-Transformer-BiLSTM多特征分类预测附Matlab代码 (多输入单输出)(Matlab代码实现)
【23年新算法】基于鱼鹰算法OOA-Transformer-BiLSTM多特征分类预测附Matlab代码 (多输入单输出)(Matlab代码实现)
386 0
|
8月前
|
机器学习/深度学习 存储 监控
上网管理监控软件的 Go 语言流量特征识别算法实现与优化
本文探讨基于Go语言的流量特征识别算法,用于上网管理监控软件。核心内容涵盖AC自动机算法原理、实现及优化,通过路径压缩、哈希表存储和节点合并策略提升性能。实验表明,优化后算法内存占用降低30%,匹配速度提升20%。在1000Mbps流量下,CPU利用率低于10%,内存占用约50MB,检测准确率达99.8%。未来可进一步优化高速网络处理能力和融合机器学习技术。
223 10
|
9月前
|
数据采集 人工智能 缓存
深挖“全栈智算”之力 中兴通讯开启AI普惠新纪元
深挖“全栈智算”之力 中兴通讯开启AI普惠新纪元
282 1
|
10月前
|
机器学习/深度学习 存储 算法
基于MobileNet深度学习网络的活体人脸识别检测算法matlab仿真
本内容主要介绍一种基于MobileNet深度学习网络的活体人脸识别检测技术及MQAM调制类型识别方法。完整程序运行效果无水印,需使用Matlab2022a版本。核心代码包含详细中文注释与操作视频。理论概述中提到,传统人脸识别易受非活体攻击影响,而MobileNet通过轻量化的深度可分离卷积结构,在保证准确性的同时提升检测效率。活体人脸与非活体在纹理和光照上存在显著差异,MobileNet可有效提取人脸高级特征,为无线通信领域提供先进的调制类型识别方案。
|
11月前
|
机器学习/深度学习 算法 安全
基于深度学习的路面裂缝检测算法matlab仿真
本项目基于YOLOv2算法实现高效的路面裂缝检测,使用Matlab 2022a开发。完整程序运行效果无水印,核心代码配有详细中文注释及操作视频。通过深度学习技术,将目标检测转化为回归问题,直接预测裂缝位置和类别,大幅提升检测效率与准确性。适用于实时检测任务,确保道路安全维护。 简介涵盖了算法理论、数据集准备、网络训练及检测过程,采用Darknet-19卷积神经网络结构,结合随机梯度下降算法进行训练。
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
|
机器学习/深度学习 人工智能 数据挖掘
|
机器学习/深度学习 人工智能 数据挖掘

热门文章

最新文章