pytorch打印模型结构和参数

两种方式

当我们使用pytorch进行模型训练或测试时,有时候希望能知道模型每一层分别是什么,具有怎样的参数。此时我们可以将模型打印出来,输出每一层的名字、类型、参数等。

常用的命令行打印模型结构的方法有两种:

  • 一是直接print
  • 二是使用torchsummary库的summary
    但是二者在输出上有着一些区别。首先说结论:
    print输出结果是每一层的名字、类别、以及构造时的参数,例如对于卷积层,还包括用户定义的stride、bias等;而torch summary则会打印类别、深度、输出Tensor的形状、参数数量等。
    这也是很重要的一点,print打印的每一层顺序,是模型init函数中定义的顺序,而torchsummary则是模型执行起来输入张量真正计算的顺序。

torch summary 安装:

示例

print:

summary:

打印每一层的输入输出结构

python 复制代码
import torch
from torch import nn
#from d2l import torch as d2l

net1D = nn.Sequential(nn.Conv1d(1,6,kernel_size=5,padding=2),nn.Sigmoid(),
                    nn.AvgPool1d(kernel_size=2,stride=2),
                    nn.Conv1d(6,16,kernel_size=5),nn.Sigmoid(),
                    nn.AvgPool1d(kernel_size=2,stride=2),
                    nn.Flatten(),
                    nn.Linear(16*5,120),nn.Sigmoid(), # 这边要根据上面的输出重新计算拉平后的大小
                    nn.Linear(120,84),nn.Sigmoid(),
                    nn.Linear(84,2)
                    )
Y=torch.rand(size=(1,1,28),dtype=torch.float32)  # 批次大小,通道数,长度
for layer in net1D:
    Y=layer(Y)
    print(layer.__class__.__name__, 'output shape: \t',Y.shape)
out 复制代码
Conv1d output shape:      torch.Size([1, 6, 28])
Sigmoid output shape:      torch.Size([1, 6, 28])
AvgPool1d output shape:      torch.Size([1, 6, 14])
Conv1d output shape:      torch.Size([1, 16, 10])
Sigmoid output shape:      torch.Size([1, 16, 10])
AvgPool1d output shape:      torch.Size([1, 16, 5])
Flatten output shape:      torch.Size([1, 80])
Linear output shape:      torch.Size([1, 120])
Sigmoid output shape:      torch.Size([1, 120])
Linear output shape:      torch.Size([1, 84])
Sigmoid output shape:      torch.Size([1, 84])
Linear output shape:      torch.Size([1, 2])
相关推荐
吃茄子的猫2 小时前
quecpython中&的具体含义和使用场景
开发语言·python
珠海西格电力2 小时前
零碳园区有哪些政策支持?
大数据·数据库·人工智能·物联网·能源
じ☆冷颜〃2 小时前
黎曼几何驱动的算法与系统设计:理论、实践与跨领域应用
笔记·python·深度学习·网络协议·算法·机器学习
数据大魔方2 小时前
【期货量化实战】日内动量策略:顺势而为的短线交易法(Python源码)
开发语言·数据库·python·mysql·算法·github·程序员创富
启途AI2 小时前
2026免费好用的AIPPT工具榜:智能演示文稿制作新纪元
人工智能·powerpoint·ppt
TH_13 小时前
35、AI自动化技术与职业变革探讨
运维·人工智能·自动化
APIshop3 小时前
Python 爬虫获取 item_get_web —— 淘宝商品 SKU、详情图、券后价全流程解析
前端·爬虫·python
楚来客3 小时前
AI基础概念之八:Transformer算法通俗解析
人工智能·算法·transformer
风送雨3 小时前
FastMCP 2.0 服务端开发教学文档(下)
服务器·前端·网络·人工智能·python·ai
效率客栈老秦3 小时前
Python Trae提示词开发实战(8):数据采集与清洗一体化方案让效率提升10倍
人工智能·python·ai·提示词·trae