卷积层计算量(FLOPS)和参数量的计算

2023-11-09

1.卷积参数量的计算,若卷积层的输入featuremap的维度为Cin×Hin×Win,卷积核的大小为K1×K2, padding=P1×P2, stride=S1×S2,卷积核(filter)的数量为Cout,则输出特征图的大小为Cout×Hout×Wout,其中:

Hout=⌊(H−K1+2P1)/S1⌋+1

Wout=⌊(W−K2+2P2)/S2⌋+1

⌊⋅⌋表示向下取整。

参数量的计算,由于卷积层共享参数的特性,做一次卷积只和输入通道数Cin,卷积核的大小K1和K2有关,而与输入高度Hin和宽度Win无关。因此,当输出通道数为Cout时,卷积核的参数量为:

Cout×Cin×K1×K2
bias的参数为:Cout
因此,总的参数量为:

Cout×Cin×K1×K2+Cout

2.卷积层浮点数操作(FLOPS)计算量,卷积操作本质上是个线性运算,通常可表示为:

y=Wx+b
这里面涉及到了乘法运算和加法运算,下面将进行一一说明。

乘法运算:

为了得到输出特征图中的某一个像素,需要Cin×K1×K2次乘法运算,而特征图总共有Cout×Hout×Wout个像素,则总计需要的乘法运算量为:

Cout×Hout×Wout×(Cin×K1×K2)

加法运算

当前主流的浮点运算次数(floating point operations,FLOPs)的计算,一般只考虑加上bias的一次加法。
bias=True,则加法运算次数为Cout×Hout×Wout×1;
bias=False,则加法运算次数为0。

综上,bias为True时,总的FLOPS为:

Cout×Hout×Wout×(Cin×K1×K2+1)

bias为False时,总的FLOPS为:

Cout×Hout×Wout×(Cin×K1×K2)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

卷积层计算量(FLOPS)和参数量的计算 的相关文章

  • 【深度学习基础】

    最终效果如上图所示 xff1a 真不知道这一路有多艰难 众所周知CHATGPT 可以做表格和 公式 xff0c 但它输出的文本是直接渲染好的 你是直接复制不了的 xff0c 你只能复制它出来的字体 于是我尝试了各种 想让它输出表格和文字的方
  • 深度学习入门资料整理

    深度学习基础总结 无一句废话 附完整思维导图 深度学习如何入门 知乎 深度学习入门基础讲义 shuzfan的博客 CSDN博客 深度学习入门 神经网络15分钟入门 足够通俗易懂了吧 知乎 深度学习基础知识点梳理 知乎
  • jittor框架

    sudo apt install python dev sudo pip install https github com Jittor jittor git python3 m jittor test test example http
  • vscode中mmgeneration的分布式训练的调试文件设置

    受知乎博主的启发 没弄软连接 直接把launch py的路径放到了program参数中了 还需要把train py中的参数设置为默认值 launch json文件的代码 使用 IntelliSense 了解相关属性 悬停以查看现有属性的描述
  • 深度学习基础--finetune

    finetune 就是用别人训练好的模型 加上我们自己的数据 来训练新的模型 finetune相当于使用别人的模型的前几层 来提取浅层特征 然后在最后再落入我们自己的分类中 finetune的好处在于不用完全重新训练模型 从而提高效率 因为
  • kl散度学习笔记python实现

    KL Divergence KL Kullback Leibler Divergence中文译作KL散度 从信息论角度来讲 这个指标就是信息增益 Information Gain 或相对熵 Relative Entropy 用于衡量一个分布
  • SPP原理和代码

    空间金字塔池化 Spatial Pyramid Pooling SPP 原理和代码实现 Pytorch 一 为什么需要SPP 首先需要知道为什么需要SPP 我们都知道卷积神经网络 CNN 由卷积层和全连接层组成 其中卷积层对于输入数据的大小
  • 理解机器学习/深度学习的正则化Regularization概念

    通过防止过拟合来优化预测模型 目录 前言 正文 L2正则化或岭回归 这是如何实现的 改变 值所带来的影响 如何选择lambda的值 多维数据集 L1 Regularization or LASSO regression 改变lambda的效
  • 目标检测——概述

    学习视觉与深度学习有一年了 想把以前看到的文章和资料整理一下 不知道从哪些开始 这个暑假 趁着刚刚开完题 稍微闲一些 把目标检测相关的经典论文逐一记录一下 有时间跑一下作者的原码 水平有限 如涉及的内容有误 恳请大家指出 前言 计算机视觉领
  • 【深度学习基础】损失函数

    深度学习基础 性能评估指标 超参数介绍 损失函数 前言 本文主要总结一下常见目标检测的损失函数以及一些基础的函数 主要损失函数为mask rcnn涉及到的损失函数包括 MSE均方误差损失函数 Cross Entropy交叉熵损失函数 目标检
  • 机器学习(一)——K-近邻(KNN)算法

    机器学习 一 K 近邻 KNN 算法 最近在看 机器学习实战 这本书 因为自己本身很想深入的了解机器学习算法 加之想学python 就在朋友的推荐之下选择了这本书进行学习 一 K 近邻算法 KNN 概述 最简单最初级的分类器是将全部的训练数
  • 深度学习入门基础CNN系列——卷积计算

    卷积计算 卷积是数学分析中的一种积分变换的方法 在图像处理中采用的是卷积的离散形式 这里需要说明的是 在卷积神经网络中 卷积层的实现方式实际上是数学中定义的互相关 cross correlation 运算 与数学分析中的卷积定义有所不同 这
  • 注意力&Transformer

    注意力 注意力分为两步 计算注意力分布 alpha 其实就是 打分函数进行打分 然后softmax进行归一化 根据 alpha 来计算输入信息的加权平均 软注意力 其选择
  • 深度卷积神经网络(CNN)

    CNN简述 卷积神经网络 Convolutional Neural Network CNN 它是属于前馈神经网络的一种 其特点是每层的神经元节点只响应前一层局部区域范围内的神经元 全连接网络中每个神经元节点则是响应前一层的全部节点 一个深度
  • dropout层

    深度神经网 DNN 中经常会存在一个常见的问题 模型只学会在训练集上分类 过拟合现象 dropout就是为了减少过拟合而研究出的一种方法 一 简介 当训练模型较大 而训练数据很少的话 很容易引起过拟合 一般情况我们会想到用正则化 或者减小网
  • CNN中特征融合的一些策略

    Introduction 特征融合的方法很多 如果数学化地表示 大体可以分为以下几种 X Y textbf X textbf Y X Y X
  • pytorch crossentropy为nan

    pytorch crossentropy为nan 交叉熵损失函数的具体为 loss x ln z 1 x ln 1 z z softmax pred x 这样当z为0 0时会出现loss为nan的情况 本人的具体原因 网络中用了MultiH
  • 懒人式迁移服务器深度学习环境(完全不需要重新下载)

    换服务器了 想迁移原来服务器上的深度学习环境 但又觉得麻烦懒得重新安装一遍anaconda pytorch 有没有办法能不费吹灰之力直接迁移 接下来跟着我一起 懒汉式迁移 本方法适用于在同一内网下的两台服务器之间互相迁移 不在同一局域网下的
  • mmpose 使用笔记

    目录 自己整理的可以跑通的代码 图片demo 检测加关键点 自己整理的可以跑通的代码 最强姿态模型 mmpose 使用实例 CSDN博客 图片demo python demo image demo py tests data coco 00
  • 最强Pose模型RTMO开源 | 基于YOLO架构再设计,9MB+9ms性能完爆YOLO-Pose

    实时多人在图像中的姿态估计面临着在速度和精度之间实现平衡的重大挑战 尽管两阶段的上下文方法在图像中人数增加时会减慢速度 但现有的单阶段方法往往无法同时实现高精度和实时性能 本文介绍了RTMO 这是一个单阶段姿态估计框架 通过在YOLO架构中

随机推荐

  • mysql innodb引擎什么时候表锁什么时候行锁?

    mysql innodb引擎什么时候表锁什么时候行锁 InnoDB基于索引的行锁 InnoDB行锁是通过索引上的索引项来实现的 这一点 ySQL与Oracle不同 后者是通过在数据中对相应数据行加锁来实现的 InnoDB这种行锁实现特点意味
  • 用Java写一个小游戏

    源码地址 https pan baidu com s 18y8Et8QnahhDdz7N 0Rsg 提取码 b3tr 游戏开始图片 如下 游戏胜利图片 如下 游戏分析 玩家控制键盘上下左右键 当数字按照从小到大依次排列的时候则玩家获胜 游戏
  • MATLAB如何将文本与数字进行线性回归比较?(已经解决)

    2 虽然导入进去了 但是文本是无法和数值进行比较的 所以我采用了一个替换的方式 就是把sex里面的male与female换成数字的 1 和 2 这样再把 1 和 2 换成double型就可以进行回归分析了 因为sex是cell型 是无法与d
  • LeetCode-109.有序链表转换二叉搜树

    二叉搜索树 二叉查找树又称二叉搜索树或者二叉排序树 它可以是一个空树或者是一个二叉树 既有链表的快速插入与删除的特点 又有数组快速查找的优势 具有以下性质 若左子树非空 则左子树所有节点均小于根节点的值 若右子树非空 则右子树所有节点均大于
  • 反转链表(双指针+递归)

    本题出自LeetCode第206题 最普通的方法 无非是找一中间量 用于二者之间的置换 采用双指针 class Solution public ListNode reverseList ListNode head ListNode cur
  • IsBadReadPtr函数和异常处理

    起因是优化代码性能 注意到这个函数 搜了一下发现是微软弃用的函数 说是有线程安全问题 经过一系列操作发现 处理大文件时这个函数会导致耗时变长 于是就研究一下这个函数 首先看函数开头 mov edi edi push ebp mov ebp
  • 右脑记忆法的个人理解

    先写个提纲 右脑记忆法 王峰 袁文魁等的记忆方法基础 也是大脑锦标赛 记忆大师的通用方法学 说是右脑记忆 其实就是图像记忆 因为形象化的信息 更容易记忆 最强大脑节目 记忆是很关键的一项能力 走进科学 记忆有魔方 http tv peopl
  • linux安装南大通用数据库 GBase 8s V8.8

    linux安装南大通用数据库 GBase 8s V8 8 1 操作系统 数据库 2 下载链接 3 安装文档 4 安装前准备 4 1 以root用户创建 gbasedbt 组和用户 4 2 创建 GBase 8s 数据库安装目录 4 3 上传
  • 缠论的基本原理

    缠论的基本原理 飞吻 短期均线略略走平后继续按原来趋势进行下去 14课 唇吻 短期均线靠近长期均线但不跌破或升破 然后按原来趋势继续下去 14课 湿吻 短期均线跌破或升破长期均线甚至出现反复缠绕 如胶似漆 14课 女上位 短期均线在长期均线
  • 【Unity技巧】Unity中的优化技术

    原文地址 写在前面 这一篇是在Digital Tutors的一个系列教程的基础上总结扩展而得的 Digital Tutors是一个非常棒的教程网站 包含了多媒体领域很多方面的资料 非常酷 除此之外 还参考了Unity Cookie中的一个教
  • 【论文学习】Fast R-CNN

    论文地址 Fast R CNN 1 Abstract Fast R CNN也是主要应用在目标检测的一种方法 它建立在前人工作的基础上 利用深度卷积网络更加高效地对目标进行分类 与之前的工作相比 Fast R CNN采用了一些在提升检测精度的
  • springBoot的分页插件

    目录 1 加入依赖 2 配置分页插件 3 使用分页插件 1 加入依赖
  • 初识小熊派——小熊派功能简介

    小熊派功能简介 小熊派IoT开发板一款由南京小熊派智能科技有限公司联合华为技术有限公司基于STM32L431RCT6设计的高性能物联网开发板 开发板充分考虑物联网感知层设备的多样性 具有强大的可扩展性 用于提供给开发者评估及快速设计相关物联
  • UDP和TCP的区别

    UDP User Datagram Protocol 和 TCP Transmission Control Protocol 是两种常见的传输层协议 它们在设计和用途上有很大的区别 以下是它们的主要差异 连接性 TCP 是一个连接导向的协议
  • mysql安装教程【安装版】

    一 下载 进入mysql官方网站MySQL MySQL Downloads 下载社区版 MySQL Community GPL Downloads MySQL Installer for Window 第一个 大小是10多M 是联网在线安装
  • IDEA中控制台乱码解决方法

    文章目录 1 在设置中的 文件编码 中将3个位置设为UTF 8 注 此处设置与控制台乱码无关 3处可均设为UTF 8或均设为系统默认值 2 在Tomcat的 编辑配置 中 将VM options设为 Dfile encoding GBK 与
  • git创建空白分支,并将本地文件上传到分支

    git创建空白分支 并将本地文件上传到分支 1 创建一个空白的分支的需求 在Git中创建分支 是必须有一个父节点的 也就是说必须在已有的分支上来创建新的分支 如果工程已经进行了一段时间 这个时候是无法创建空分支的 但是有时候就是需要创建一个
  • 分布式系统的时间

    分布式系统的时间 事件的顺序 大家都知道 Linearizability在一些系统 譬如分布式数据库 里面是非常重要的 我们不能允许数据更新之后仍然能读到原先的值 譬如银行转账 用户A有100元 转给用户B 10元 这个操作之后用户A只可能
  • 开发提效小技巧分享(二)

    前言 在日常开发中 影响我们开发效率的因素很多 有时候不仅仅会影响开发效率 还会搞崩我们的心态 为了提高工作效率 保持愉悦心情 腾出更多的时间来进行摸鱼大业 前辈们折腾出了很多有用的小技巧 我在这里记录一下自己常用的几个小技巧 快速拉取 G
  • 卷积层计算量(FLOPS)和参数量的计算

    1 卷积参数量的计算 若卷积层的输入featuremap的维度为Cin Hin Win 卷积核的大小为K1 K2 padding P1 P2 stride S1 S2 卷积核 filter 的数量为Cout 则输出特征图的大小为Cout H