简单2招GET模型参数量计算和输入尺寸随卷积大小变化推导

news2024/11/26 2:27:14

本文将介绍两种简单且实用的方法,用于计算深度学习模型的参数量,并推导了输入尺寸随卷积大小的变化过程。这些方法可以帮助读者更好地理解模型的复杂度和输入尺寸的变化,为模型设计和优化提供指导。

比如论文中,通常会比较几种模型的参数量
在这里插入图片描述
又比如在设计模型时,需要确定我们的输入尺寸大小是否合适,以及想经过每个卷积层后尺寸的变化。我们想看到下面的信息👇
在这里插入图片描述
基本上每个项目我都会过一遍这些信息,更好的掌握模型。

方法一:直接计算

对于卷积神经网络(CNN)中的每一层,我们需要考虑卷积核的大小、输入通道数、输出通道数以及偏置项的数量。以一个卷积层为例,该层的参数量可以通过以下公式计算:

参数量 = 卷积核高度 × 卷积核宽度 × 输入通道数 × 输出通道数 + 输出通道数

对于整个模型来说,我们只需要将所有层的参数量相加即可得到总参数量。

该代码是一个 Python 函数,用于打印 PyTorch 模型的可训练参数数量,并且可以选择是否打印该模型的网络结构。以下是该函数的完整代码:

def print_networks(model, verbose):
    """Print the total number of parameters in the network and (if verbose) network architecture

    Parameters:
        model (torch.nn.Module): 要打印的PyTorch模型
        verbose (bool): 是否打印模型的网络结构
    """
    # 打印模型总参数数量
    num_params = sum(p.numel() for p in model.parameters() if p.requires_grad)
    print(f"Number of trainable parameters in the model: {num_params}, {num_params / 1e6:.3f} M")

    # 如果需要,打印模型的网络结构
    if verbose:
        print(model)

下面是函数的参数和使用说明:

  • model:要打印的 PyTorch 模型。
  • verbose:布尔值,指定是否打印模型的网络结构。

使用时,把 model 作为函数的第一个参数传递给该函数。如果要打印模型的网络结构,可以将 verbose 参数设置为 True;否则,将其设置为 False。

该函数计算模型的可训练参数数量并将其打印到屏幕上,总参数数量有两种显示方法。如果 verbose 参数为 True,则还将打印模型的网络结构。

举例:

from monai.networks.nets import UNet
model = UNet(
                spatial_dims=3,
                in_channels=1,
                out_channels=1,
                channels=(4, 8, 16, 32, 64),
                strides=(2, 2, 2, 2),
            )
print_networks(model, verbose=True)

方法二:调用三方工具

手动计算模型的参数数量和输出形状是一项繁琐而容易出错的任务。为了解决这个问题,我们可以使用torchsummary库来自动打印模型的详细信息,包括每个层的类型、输出形状以及参数数量。本文将介绍如何使用torchsummary库打印UNet模型的详细信息,并解释每个输出所代表的含义。

使用 torchsummary 库打印 model 详细信息,如果没有,用下面语句进行安装
pip install torchsummary

使用举例:

from torchsummary import summary
model = UNet(
            spatial_dims=3,
            in_channels=1,
            out_channels=1,
            channels=(4, 8, 16, 32, 64),
            strides=(2, 2, 2, 2),
        )
summary(model, (1, 128, 128, 96), device='cpu')

在这段代码中,首先导入了 summary 函数,然后创建了一个 UNet 模型,接下来,调用 summary 函数来打印模型的详细信息。summary 函数的第一个参数是要打印信息的模型,第二个参数是输入数据的尺寸,这里是一个 4 维的张量,表示批次大小为 1,高度为 128,宽度为 128,深度为 96 的图像。最后,通过设置 device=‘cpu’ 来指定使用 CPU 运行模型。

运行这段代码后,summary 函数会打印出模型的总参数数量、每个层的输出形状,以及模型参数的统计信息,如下所示:


文章持续更新,可以关注微信公众号【医学图像人工智能实战营】获取最新动态,一个关注于医学图像处理领域前沿科技的公众号。坚持已实践为主,手把手带你做项目,打比赛,写论文。凡原创文章皆提供理论讲解,实验代码,实验数据。只有实践才能成长的更快,关注我们,一起学习进步~

我是Tina, 我们下篇博客见~

白天工作晚上写文,呕心沥血

觉得写的不错的话最后,求点赞,评论,收藏。或者一键三连
在这里插入图片描述

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

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

相关文章

机器学习概论

一、机器学习概述 1、机器学习与人工智能、深度学习的关系 人工智能:机器展现的人类智能机器学习:计算机利用已有的数据(经验),得出了某种模型,并利用此模型预测未来的一种方法。深度学习:实现机器学习的一种技术 2…

龙迅LT6911UXC替换LT6911UXE 支持单PORT 4K60HZ 带HDCP

LT6911UXC 描述: 龙迅LT6911UXC是一个高性能的HDMI2.0到MIPI DSI/CSI & LVDS转换器。HDMI2.0输入支持高达6Gbps的数据速率,这为60Hz的视频提供了足够的带宽。同时,还支持使用HDCP2.2来进行数据解密。对于MIPI DSI/CSI输出,LT…

【二进制转换和与其有关的操作符详解】

文章目录 1.二进制与进制转换2. 2进制转8、10、16进制2.1 2进制转10进制2.2 2进制转8进制2.3 2进制转16进制 3. 8、10、16进制转2进制3.1 10进制转2进制3.2 8进制转2进制3.3 16进制转2进制 4.原码、反码、补码5.移位操作符&#xff08;<< >>&#xff09;5.1左移操作…

英飞凌TLF35584规格书中文

官网&#xff1a; 英飞凌TLF35584QVVS2 TLF35584_SPI&#xff1a; 1 Overview2 Block Diagram3 Pin Configuration3.1 Pin Assignment - PG-VQFN-48 4 General Product Characteristics4.1 Absolute Maximum Ratings 绝对最大额定值4.2 Functional Range4.3 Thermal Resistance…

制造业企业设备管理常见的三个问题及对应的解决方案

当今的市场如同茫茫大海&#xff0c;既充满机遇&#xff0c;也伴随着波动的风险。在现代制造业中&#xff0c;企业常常面临着各种挑战&#xff0c;这些挑战可能妨碍其发展和竞争力。但制造企业往往具备能够解决挑战的能力&#xff0c;借助软件工具的力量&#xff0c;可以更好地…

vue3中router和route的区别(使用场景)

1.router router是用来对路由进行操作的&#xff1b; 多用于路由跳转、路由守卫、页面刷新、给路由文件添加路由路径或者移除路由路径等等 2.route route是用来获取路由信息的&#xff1b; 多用于获取路由路径、路由传参数据、路由文件配置的属性信息等等

2000-2022年“宽带Z国“试点城市名单匹配数据

2000-2022年“宽带Z国“试点城市名单匹配数据 1、时间&#xff1a;2000-2022年 2、指标&#xff1a;行政区划代码、年份、地区、所属省份、所属地域、试点城市、最早试点年份、DID 3、来源&#xff1a;来自工信部和国家发改委在2014年、2015年和2016年分别遴选的“宽带中国”…

x86汇编代码学习-计算机工作原理2

文章目录 前言1.mov2.内存分段3.调试5.注释6.标号7.add sub8.inc dec自增&#xff0c;自减9.adc sbb10 乘法栈11 栈寄存器push pop12 jz jnz13 section 16字节对齐14 CALL15 逻辑运算16 启动MBR以外的程序174. 前言 视频教程 x86汇编代码学习-计算机工作原理1 1.mov 因为ah是…

C++ 信息学奥赛 2048:【例5.18】串排序

#include<bits/stdc.h> using namespace std; int main() {string s[25];//string类数组 int n;cin >> n;for(int i 1; i < n; i)cin >> s[i];sort(s1, s1n);//默认升序 调用函数默认排序 for(int i 1; i < n; i)cout << s[i] << endl;…

Python实现Labelme的Json标注文件与YOLO格式的TXT标注文件相互转换

Python实现Labelme的Json标注文件与YOLO格式的TXT标注文件相互转换 前言前提条件相关介绍实验环境Labelme的Json标注文件与YOLO格式的TXT标注文件相互转换convert_labelme_json_to_txtjsons/000000000009.json代码实现输出结果labels/000000000009.txt convert_txt_to_labelme_…

Flink(一)【WordCount 快速入门】

前言 学完了 Hadoop、Spark&#xff0c;本想着先把 Kafka、Flume 这些工具先学完的&#xff0c;但想了想还是把核心的技术先学完最后再去把那些工具学学。 最近心有点累哈哈哈&#xff0c;偷偷立个 flag&#xff0c;反正也没人看&#xff0c;明年的今天来这里还愿哈&#xff0c…

C语言100~200中不能整除3的数

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h> int main() {int n;for (n 100; n < 200; n){if (n%3 0){continue;}printf("%d\n",n);}}

RFC使用与WebService

RFC连接 CSDN RFC中引用类型组 http://t.csdnimg.cn/wQWAYhttp://t.csdnimg.cn/wQWAY 远程目标系统维护SM59 这里的类型指的是目标系统的系统类型(目标系统即rfc函数存在的系统). 类型2&#xff08;R/2连接&#xff09;&#xff0c;只需给出主机名&#xff0c;所有通信信息…

软件系统设计方法和工具介绍

软件系统设计方法和工具介绍 在构建系统时&#xff0c;尤其是一些大项目实施的过程中&#xff0c;可以接触和学习一些高阶层面分析问题和系统架构的方法论&#xff0c; 如麦肯锡的解决问题7步法&#xff1a;定义问题、分解问题、排定优先级、制定工作计划、分析问题、综合分析…

比SAM小60倍的分割一切模型:MobileSAM

1 MobileSAM SAM就是一类处理图像分割任务的通用模型。与以往只能处理某种特定类型图片的图像分割模型不同&#xff0c;SAM可以处理所有类型的图像。 在SAM出现前&#xff0c;基本上所有的图像分割模型都是专有模型。比如&#xff0c;在医学领域&#xff0c;有专门分割核磁图…

Python批量下载ERA5数据

1. ERA5数据简介 ERA5是第五代ECMWF大气再分析全球气候数据(ECMWF)&#xff0c;该数据集的第一部分现在可以公开使用(1979年到3个月内)。ERA5数据提供每小时的大气、陆地和海洋气候变量的估计值&#xff0c;地球数据精确到了30km网格&#xff0c;包括了137层的大气数据。 网址…

【教3妹学编程-算法题】最大单词长度乘积

3妹&#xff1a;哇&#xff0c;今天好冷啊&#xff0c; 不想上班。 2哥&#xff1a;今天气温比昨天低8度&#xff0c;3妹要空厚一点啊。 3妹 : 嗯&#xff0c; 赶紧把我的羽绒服找出来穿上&#xff01; 2哥&#xff1a;哈哈&#xff0c;那倒还不至于&#xff0c; 不过气温骤降&…

使用Anaconda安装TensorFlow环境以及没有搜到的报错的解决方法

1.在官网下载Anaconda 这一步几乎不会有人报错 下稳定的版本 或者最新的版本都可以 2.TensorFlow分两个版本 一个是用cpu跑 另一个是用gpu跑 显而易见 cpu的计算性能已经比不上现在主流的显卡了 所以有独显的电脑尽量安装gpu版本 CPU版本: 先给出cpu版本的安装方法: 打开A…

体坛巨星商业价值完美呈现,B体育等超巨品牌堪称经典案例

近几年&#xff0c;伴随着互联网的发展&#xff0c;我们惊喜的发现体坛巨星的商业代言越来越多&#xff0c;他们代言的广告已经融入到我们的生活之中&#xff0c;陪伴很多人度过了美妙的时刻。越来越多的品牌也意识到&#xff0c;比起娱乐明星&#xff0c;体坛巨星的全球属性对…