一维卷积与一维平均池化的时间复杂度

news2024/11/15 12:37:19

计算请参考这篇文章:

(284条消息) 卷积神经网络的时间、空间复杂度以及数据流的变化_卷积的时间复杂度_Briwisdom的博客-CSDN博客

1. 时间复杂度
时间复杂度即模型的运行次数。

单个卷积层的时间复杂度:Time~O(M^2 * K^2 * Cin * Cout)

//有的好奇小宝宝可能问到为什么计算复杂度是O(M^K^2),请往下读,读到最后你会知道。

M:输出特征图(Feature Map)的尺寸。
K:卷积核(Kernel)的尺寸。
Cin:输入通道数。
Cout:输出通道数。
注1:为了简化表达式变量个数,统一假设输入和卷积核的形状是正方形,实际中如果不是,则将M ^2替换成特征图的长宽相乘即可;

注2:每一层卷积都包含一个偏置参数(bias),这里也给忽略了。加上的话时间复杂度则为:O(M^2 * K^2 * Cin * Cout+Cout)。

在咱们这个1维度情况里面,M与K都是一维度,可以理解为长为M,宽为1的情况,K也同理,Cin=Cout=1。那么1D-CNN的时间复杂度为Time~O(M*K*1*1)

举个例子,长度为L的序列,经过1D-卷积[kernel=stride=i,padding=i/2],(i∈{L/2,L/4,...}),

为了方便理解,我们假设i=L/2,那么经过计算得到M=2(该计算过程请参考下方输出长度计算),

又∵K=i=L/2 ∴ 该情况下的1D-CNN时间复杂度为Time~O(2*(L/2))=O(L)

//回到上一个话题,关于为什么计算复杂度是O(M^K^2),那你目前肯定知道1D-CNN的Time~O(M*K*1*1)怎么来的了,你又好奇为什么M是输出长度,K是卷积核了吧,其实你可以这么理解,你知道时间复杂度就是加法或者乘法的总数,输出长度为M,就说明有M次计算,而每次计算都会分别有K次加法和K次乘法,只不过2是常数可以忽略不计,在计算时间复杂度的时候,这样理解了吧!还不理解欢迎评论留言。

2.输出长度

输出长度看Pytorch官方文档就懂了: 一维全局平均池化的输出长度是1维卷积dilation=1(default)的情况

1维卷积

 1维平均池化

参考资料

Conv1d — PyTorch 2.0 documentation

AvgPool1d — PyTorch 2.0 documentation(284条消息) 神经网络时间复杂度和空间复杂度(参数量计算和计算量计算)_放牛娃不吃草的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/465487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring(11. 循环依赖 - 周阳)学习笔记

上一篇 :10. 面试问题简析 文章目录 1. Spring AOP1.1. Aop 常用注解1.2 测试前的准备工作1.2.1 业务类1.2.2 切面类 1.3 Spring4 下的测试1.3.1 POM 文件1.3.2 创建测试类1.3.3 Aop 测试结果 1.4 Spring 5 下的测试1.4.1 POM 文件1.4.2 创建测试类1.4.3 Aop 测试结…

e签宝,「进化」在2023

精准布局生态化、统一化、智能化、信创化,辅以具体产品落地;加速产业、行业、企业、业务,“四业”互通互联,提高产业数字化渗透率。电子签“群战”时代,e签宝再次进化。 作者|斗斗 出品|产业家 “印章在谁手上&…

Camtasia 2023版强悍来袭,会哪些新功能呢?

Camtasia Studio 是一款专门录制屏幕动作的工具,它能在任何颜色模式下轻松地记录 屏幕动作,包括影像、音效、鼠标移动轨迹、解说声音等等,另外,它还具有即时播放和编 辑压缩的功能,可对视频片段进行剪接、添加转场效果…

享受简单上传体验:将Maven仓库迁移到GitHub

前言:我为什么放弃了Maven Central 之前我写过一篇《Android手把手,发布开源组件至 MavenCentral仓库》,文中详细介绍了如何发布组件到Maven Central中供所有开发者共用。但是最近使用下来,发现Sonatype JIRA 的Maven Center上传…

python接口自动化测试 requests库的基础使用

目录 简单介绍 Get请求 Post请求 其他类型请求 自定义headers和cookies SSL 证书验证 响应内容 获取header 获取cookies 简单介绍 requests库简单易用的HTTP库 Get请求 格式: requests.get(url) 注意:若需要传请求参数,可直接在 …

c++STL标准库排序函数std::sort使用

Qt系列文章目录 文章目录 Qt系列文章目录前言一、错误原因二、修改后的代码 前言 C sort()排序函数 C STL 标准库中的 sort() 函数,本质就是一个模板函数。正如表 1 中描述的,该函数专门用来对容器或普通数组中指定范围内的元素进行排序,排序…

【ML】windows 安装使用pytorch

使用pytorch需要python环境,建议是直接装anaconda ,IDE用visual studio anaconda安装 Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包 官网链接anaconda 本人下载…

(转)maven安装及配置(详细版)

1.下载: 方式一可以从官方下载,下载页面:http://maven.apache.org/download.cgi 方式二:或者题主提供的版本下载maven安装包 提取码:ysns 下载好后是一个压缩文件 2.安装: maven压缩包解压到一个没有中文&a…

AI 编程

GitHub Copilot(收费) 开发者:微软 openAI 2022年8月22日之后开始收费,10美元/月,100美元/年。 CodeGeeX(免费) CodeGeeX 可以根据自然语言注释描述(支持中英文注释&#xff09…

20.$refs

$refs是vue操作DOM用的,每一个vue组件实例上,都包含一个$refs对象,里面存储对应的DOM元素或组件的引用,默认情况下$refs对象为空 目录 1 $refs在哪 2 使用ref操作DOM 3 使用ref操作组件 3.1 使用组件方法 3.2 操作组件…

13 JS04——运算符

目标: 1、运算符 2、算数运算符 3、递增和递减运算符 4、比较运算符 5、逻辑运算符 6、赋值运算符 7、运算符优先级 一、运算符 1、概念 运算符(operator)也被称作操作符,是用于实现赋值、比较和执行算数运算等功能的符号。 2…

解决java普通项目读取不到resouces目录下资源文件的办法

现象如下: 可以看到resources目录已经在idea中标记成了资源目录resources root,而且target/classes目录下也编译出了resources目录下的pci.properties文件,换句话说:java在编译时是读取到了resources下的文件的。 可是为什么new F…

App性能优化方案——布局层级太多怎么优化?

作者:小海编码日记 View整体布局是通过深度优先的方式来进行组织的,整体形似一颗树,所以优化布局层级主要通过三个方向来实施: 降低布局深度:使用merge标签或者布局层级优化等手段来减少View树的深度;布局…

代码随想录算法训练营第四十三天|1049. 最后一块石头的重量 II 、494. 目标和、474.一和零

文章目录 背包问题题型1049. 最后一块石头的重量 II494. 目标和474.一和零 背包问题题型 等和子集 —0-1背包能否装满最后一块石头—0-1背包尽量装满目标和—0-1背包装满,且有多少种装的方式(组合问题) 1049. 最后一块石头的重量 II 题目链…

网页爬虫之WebPack模块化解密(JS逆向)

WebPack打包: webpack是一个基于模块化的打包(构建)工具, 它把一切都视作模块。 概念: webpack是 JavaScript 应用程序的模块打包器,可以把开发中的所有资源(图片、js文件、css文件等)都看成模块,通过loade…

Java中Lambda表达式(面向初学者)

目录 一、Lambda表达式是什么?什么场景下使用Lambda? 1.Lambda 表达式是什么 2.函数式接口是什么 第二章、怎么用Lambda 1.必须有一个函数式接口 2.省略规则 3.Lambda经常用来和匿名内部类比较 第三章、具体使用场景举例() …

水果店(库)管理系统 —— 实现了管理员模式与顾客模式 JAVA

水果店(库)管理系统 1.前言:2.功能简介及部分测试视频:3.本管理系统的构建原理(简介):(1).如何跳转页面:(2).如何让控制台能输出彩色字体:(3).如何稳定存储数据:(4).如何…

误操作清空了回收站文件如何找到文件

我们在删除文件的时候,文件都是先跑到回收站里的,这样的防止我们出现误删的情况,但往往也会出现我们要恢复删除的文件却误操作清空了回收站的情况,那么误操作清空了回收站如何找到呢,下面小编给大家分享误操作清空了回…

window 10 安装node.js时遇到2502 2503错误(已解决)

node安装失败2503的解决办法:1、在WIN搜索框搜索powershell并右击;2、点击使用管理员身份运行powershell命令行工具;3、输入“msiexec /package node”;4、打开安装包,根据提示安装即可。 本文操作环境:Win…

9.Join的应用

1.reduceJoin的应用 案例:将两个表合并成一个新的表 需求分析:通过将关联条件作为Map输出的key(此处指pid),将两表满足Join条件的数据并携带数据所来源的文件信息,发往同一个ReduceTask,在Redu…