Pytorch 可视化模型结构

本文详细介绍了ResNet18神经网络模型的结构及参数,通过代码展示了模型的每一层结构及其参数数量,总结了模型的总参数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1) 可视化模型结构

from torchviz import make_dot

model = ResNet18()

print(model)  #输出模型的详细信息

x = torch.randn(1,3,32, 32).requires_grad_(True)
y = model(x)
vis_graph = make_dot(y, params=dict(list(model.named_parameters()) + [('x', x)]))
vis_graph.view()
exit()

执行完上述代码,将可视化后的图像,以pdf格式保存到当前.py文件的路径下。

 

2)将定义好的模型详细信息列出来

Code

net = ResNet18()

#print(ResNet18())
x = torch.randn(1, 3, 32, 32).requires_grad_(True)
y = net(x)

params = list(net.parameters())
k = 0
for i in params:
        l = 1
        print("该层的结构:" + str(list(i.size())))
        for j in i.size():
                l *= j
        print("该层参数和:" + str(l))
        k = k + l
print("总参数数量和:" + str(k))
exit()

Result

该层的结构:[64, 3, 3, 3]
该层参数和:1728
该层的结构:[64]
该层参数和:64
该层的结构:[64]
该层参数和:64
该层的结构:[64, 64, 3, 3]
该层参数和:36864
该层的结构:[64]
该层参数和:64
该层的结构:[64]
该层参数和:64
该层的结构:[64, 64, 3, 3]
该层参数和:36864
该层的结构:[64]
该层参数和:64
该层的结构:[64]
该层参数和:64
该层的结构:[64, 64, 3, 3]
该层参数和:36864
该层的结构:[64]
该层参数和:64
该层的结构:[64]
该层参数和:64
该层的结构:[64, 64, 3, 3]
该层参数和:36864
该层的结构:[64]
该层参数和:64
该层的结构:[64]
该层参数和:64
该层的结构:[128, 64, 3, 3]
该层参数和:73728
该层的结构:[128]
该层参数和:128
该层的结构:[128]
该层参数和:128
该层的结构:[128, 128, 3, 3]
该层参数和:147456
该层的结构:[128]
该层参数和:128
该层的结构:[128]
该层参数和:128
该层的结构:[128, 64, 1, 1]
该层参数和:8192
该层的结构:[128]
该层参数和:128
该层的结构:[128]
该层参数和:128
该层的结构:[128, 128, 3, 3]
该层参数和:147456
该层的结构:[128]
该层参数和:128
该层的结构:[128]
该层参数和:128
该层的结构:[128, 128, 3, 3]
该层参数和:147456
该层的结构:[128]
该层参数和:128
该层的结构:[128]
该层参数和:128
该层的结构:[256, 128, 3, 3]
该层参数和:294912
该层的结构:[256]
该层参数和:256
该层的结构:[256]
该层参数和:256
该层的结构:[256, 256, 3, 3]
该层参数和:589824
该层的结构:[256]
该层参数和:256
该层的结构:[256]
该层参数和:256
该层的结构:[256, 128, 1, 1]
该层参数和:32768
该层的结构:[256]
该层参数和:256
该层的结构:[256]
该层参数和:256
该层的结构:[256, 256, 3, 3]
该层参数和:589824
该层的结构:[256]
该层参数和:256
该层的结构:[256]
该层参数和:256
该层的结构:[256, 256, 3, 3]
该层参数和:589824
该层的结构:[256]
该层参数和:256
该层的结构:[256]
该层参数和:256
该层的结构:[512, 256, 3, 3]
该层参数和:1179648
该层的结构:[512]
该层参数和:512
该层的结构:[512]
该层参数和:512
该层的结构:[512, 512, 3, 3]
该层参数和:2359296
该层的结构:[512]
该层参数和:512
该层的结构:[512]
该层参数和:512
该层的结构:[512, 256, 1, 1]
该层参数和:131072
该层的结构:[512]
该层参数和:512
该层的结构:[512]
该层参数和:512
该层的结构:[512, 512, 3, 3]
该层参数和:2359296
该层的结构:[512]
该层参数和:512
该层的结构:[512]
该层参数和:512
该层的结构:[512, 512, 3, 3]
该层参数和:2359296
该层的结构:[512]
该层参数和:512
该层的结构:[512]
该层参数和:512
该层的结构:[10, 512]
该层参数和:5120
该层的结构:[10]
该层参数和:10
总参数数量和:11173962

 

<think>我们使用PyTorch的SummaryWriter来可视化模型结构,并将其显示在TensorBoard中。步骤如下:1.导入必要的库:torch,torch.nn, torchvision.models(可选,用于示例模型),以及torch.utils.tensorboard中的SummaryWriter。2.定义一个模型(可以是自定义的,也可以是预训练模型)。3.创建SummaryWriter对象。4.使用SummaryWriter的add_graph方法将模型添加到TensorBoard中。5.关闭SummaryWriter。注意:为了在TensorBoard中查看,需要运行TensorBoard服务,指向生成的日志目录。示例代码:我们将使用一个简单的模型作为例子,比如一个卷积神经网络,或者使用预定义的resnet18。注意:模型需要输入一个示例张量(dummy input)来构建计算图。下面是一个示例代码:</think>### PyTorch SummaryWriter 可视化模型结构到 TensorBoard 在 PyTorch 中,使用 `torch.utils.tensorboard.SummaryWriter` 可视化模型结构到 TensorBoard 的步骤如下: 1. **导入依赖** ```python import torch from torch.utils.tensorboard import SummaryWriter from torchvision.models import resnet18 # 示例模型 ``` 2. **创建模型和虚拟输入** ```python model = resnet18(pretrained=False) dummy_input = torch.rand(1, 3, 224, 224) # 匹配模型输入维度 ``` 3. **写入计算图到 TensorBoard** ```python writer = SummaryWriter("logs") # 日志目录 writer.add_graph(model, dummy_input) writer.close() # 必须关闭写入器 ``` 4. **启动 TensorBoard 查看** 终端执行: ```bash tensorboard --logdir=logs ``` 访问 `http://localhost:6006` 查看 **GRAPHS** 选项卡中的模型结构图。 #### 注意事项: - 虚拟输入维度需匹配模型预期输入(如 `(batch, channel, height, width)`) - 支持自定义模型,确保模型实现包含前向传播逻辑 - 若节点显示为 `AddBackward` 等操作符,展开模块可查看具体层
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值