常用组件详解(二):torchsummary

文章目录

  • 一、基本使用
  • 二、常见指标
    • 2.1Input size
    • 2.2Forward/backward pass size


一、基本使用

  torchsummary库是一个好用的模型可视化工具,用于帮助开发者把握每个网络层级的细节,包括其中的连接和维度。使用方法:

from torchsummary import summary

库中仅有一个函数:

summary(model, input_size, batch_size=-1, device="cuda"):
  • model:模型对象。
  • input_size:输入数据的格式,使用(C,H,W)格式。
  • batch_size:批数据的数量。
  • device:使用的设备。

  以自定义的LeNet网络模型为例:

import torch
from torch import nn
from torchsummary import summaryclass LeNet(nn.Module):def __init__(self):super(LeNet, self).__init__()# 手写数字图片大小为32*32,故需填充2个像素self.model = nn.Sequential(nn.Conv2d(in_channels=1, out_channels=6, kernel_size=5, padding=2),nn.Sigmoid(),nn.AvgPool2d(kernel_size=2, stride=2),nn.Conv2d(in_channels=6, out_channels=16, kernel_size=5),nn.AvgPool2d(kernel_size=2, stride=2),nn.Flatten(),nn.Linear(in_features=16 * 5 * 5, out_features=120),nn.Linear(in_features=120, out_features=84),nn.Linear(in_features=84, out_features=10),)def forward(self, x):return self.model(x)myLeNet = LeNet().to(device)
print(summary(myLeNet, input_size=(1, 28, 28), batch_size=64, device='cuda'))

在这里插入图片描述

二、常见指标

2.1Input size

  Input size表示输入数据的大小。在上述例子中,batch_size=64,每张图片大小为(1,28,28),而Pytorch默认使用float32(双精度浮点数)占4字节,则每个batch所用内存大小为:
64 x 1 x 28 x 28 x 4 = 200 , 704 ( B y t e s ) 64x1x28x28x4=200,704(Bytes) 64x1x28x28x4=200,704Bytes
转化为以MB为单位:
200 , 704 / 102 4 2 ( B y t e s ) = 0.19140625 ( B y t e s ) 200,704/1024^2(Bytes)=0.19140625(Bytes) 200,704/10242Bytes=0.19140625Bytes
约等于0.19MB。

2.2Forward/backward pass size

https://blog.csdn.net/weixin_43589323/article/details/137105988?ops_request_misc=&request_id=&biz_id=102&utm_term=torchsummary&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-5-137105988.142v100pc_search_result_base2&spm=1018.2226.3001.4187

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

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

相关文章

ubuntu 安装docker

目录 docker 打包与加载 加载 Docker 镜像: ubuntu 安装docker 系统版本 检查卸载老版本docker 安装步骤 运行docker docker 打包与加载 打包成 .tar 文件: tar -cvf my-docker-image.tar * 加载 Docker 镜像: docker load -i my-d…

微信小程序写一个可以滚动虚拟列表(瀑布流),减少dom渲染的优化,解决内存问题。

为什么要写这个? 因为在写小程序的时候首页功能比较多,造成渲染的dom有很多,一直setdata跳转到其他页面或者一直滑动就会卡顿,白屏。官方文档上那个不适用于瀑布流。官方文档 理解 刚开始在写这个的时候,就在想微信…

Access Levels in Swift

Access Levels (访问级别) Swift provides six different access levels for entities(实体) within your code. These access levels are relative to the source file in which an entity is defined, the module(模块) that source file belongs to, and the package that …

分享一个超级实用的东西——巴比达远程访问

前言 🎈家人们,今天我要和你们分享一个超级实用的东西——巴比达远程访问!🎉 💻有了它,无论你身在何处,都能轻松访问家中的电脑💻,就像在身边一样方便!&…

短视频电商源码如何选择

在数字时代的浪潮下,短视频电商以其直观、生动、互动性强的特点,迅速崛起成为电商行业的一股新势力。对于有志于进军短视频电商领域的创业者来说,选择一款合适的短视频电商源码至关重要。本文将从多个角度探讨如何选择短视频电商源码&#xf…

OCR 技术来实现图片文字识别 [C#]

需要具备的东西 智能手机:用于拍摄试卷照片。服务器或云服务:用于处理图像和运行OCR算法。C#开发环境:如Visual Studio。第三方库:用于图像处理和OCR。 主要步骤 图像采集:使用智能手机拍摄试卷照片。图像预处理&am…

Dify与RAGFlow结合:智能应用开发与深度文档理解的优化

文章目录 引言RAGFlow与Dify简介1.1 RAGFlow:深度文档理解的RAG引擎1.2 Dify:LLM应用开发平台与RAG集成混合检索与深度文档理解2.1 混合检索的原理与设置2.2 混合检索在Dify与RAGFlow中的应用 Dify与RAGFlow结合的优势3.1 补充功能:提升文档解…

携程礼品卡能转出去吗?

携程的卡好像只能在旅游的时候用 像买车票啊,机票啊,酒店,景点门票啥的,但是如果我没有出游计划的话 这个卡是不是就要被闲置下来? 这个问题一直让我感到很苦恼,还好有收卡云,不然我的携程卡…

模型部署:C++libtorch实现全连接模型10分类和卷积模型ResNet18的四分类的模型部署推理

Clibtorch实现模型部署推理 模型 全连接模型:公开mnist手写识别数字的十分类卷积模型:自行采集的鲜花四分类 部署 语言环境:C 对比Python python是解释性语言,效率很慢,安全性很低 系统开发一般是java、C/C&…

在 CentOS 上安装 Docker Engine

前言 Docker 是啥之类的就不必多说了,直接上安装步骤。 官网安装教程地址:https://docs.docker.com/engine/install/centos/ 1.Uninstall old versions (卸载旧版本) Older versions of Docker went by docker or docker-engin…

NLP特征提取的惊人历史演变

NLP特征提取的惊人演变 1.理解特征提取2. 文本表示的演变2.1.词袋的简单性2.2. N-Gram 模型的进步2.3. TF-IDF 的崛起 3. 深入研究词嵌入3.1.探索 Word2Vec3.2.深入了解 GloVe3.3.深入研究 FastText 4. 上下文嵌入的影响4.1 ELMo 的突破4.2 理解 BERT 的机制4.3 Transformer的出…

44 - 50题高级字符串函数 / 正则表达式 / 子句 - 高频 SQL 50 题基础版

目录 1. 相关知识点2.例子2.44 - 修复表中的名字2.45 - 患某种疾病的患者2.46 - 删除重复的电子邮箱2.47 - 第二高的薪水2.48 - 按日期分组销售产品2.49 - 列出指定时间段内所有的下单产品2.50 - 查找拥有有效邮箱的用户 1. 相关知识点 相关函数 函数含义concat()字符串拼接upp…

Ollama中文版部署

M1部署Ollama Ollama中文网站: Featured - 精选 - Ollama中文网 下载网址: Download Ollama on macOS 安装后运行llma3模型: ollama run llama3:8b 界面使用: GitHub - open-webui/open-webui: User-friendly WebUI for LLMs (Formerly Ollama WebUI) 部署open-webui: do…

两个li标签之间有空格这是什么原因

<li> 标签之间出现的空格可能由多种原因造成。以下是一些常见的原因&#xff1a; HTML源代码中的空格&#xff1a;如果你在HTML源代码中直接在两个 <li> 标签之间输入了空格或制表符&#xff08;Tab&#xff09;&#xff0c;这些空格可能会被浏览器渲染出来。不过&…

烟台网站建设前需要了解哪些

在进行烟台网站建设之前&#xff0c;需要了解以下几个重要的方面&#xff1a; 1. 目标和定位&#xff1a;在建设网站之前&#xff0c;需要明确网站的目标和定位。是为了展示公司业务&#xff0c;还是为了销售产品&#xff0c;或者是为了提供信息和服务等。根据不同的目标和定位…

界面组件DevExpress WPF v24.1 - 增强的可访问性 UI自动化

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExpress WPF控件日…

mqtt介绍和环境安装

Mqtt介绍 MQTT是机器对机器(M2M)/物联网(IoT)连接协议。它被设计为一个极其轻量级的发布/订阅消息传输协议。对于需要较小代码占用空间和/或网络带宽非常宝贵的远程连接非常有用&#xff0c;是专为受限设备和低带宽、高延迟或不可靠的网络而设计。 下载一个开源的emqx服务器和…

造一个交互式3D火山数据可视化

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 使用 Plotly.js 创建交互式 3D 火山数据可视化 应用场景 本代码用于将火山数据库中的数据可视化&#xff0c;展示火山的高度、类型和状态。可用于地质学研究、教育和数据探索。 基本功能 该代码使用 Plotly…

【代码随想录——单调栈】

1.每日温度 func dailyTemperatures(temperatures []int) []int {stack : list.New()//入栈&#xff1a;stack.PushBack()//出栈&#xff1a;stack.Remove(stack.Back())dp : make([]int, len(temperatures))for i : 0; i < len(temperatures); i {if stack.Len() 0 {stack…

深入解析Linux的使用(上)

深入解析Linux的使用&#xff08;上&#xff09; Linux作为一种开源操作系统&#xff0c;广泛应用于服务器、桌面计算机和嵌入式设备。它以稳定、安全和高效著称。对于新手来说&#xff0c;学习如何使用Linux是一个非常有价值的技能。本文将带你从基础开始&#xff0c;逐步深入…