对pytorch里面的网络模型结构可视化

这里对构建好的模型进行可视化,对每一层的网络及其参数进行输出

net是我自己构建的模型

class Net(nn.Module):
    def __init__(self):
        super(Net,self).__init__()
        self.model = nn.Sequential(
            nn.Conv2d(3, 32, 5, padding=2),
            nn.MaxPool2d(2),
            nn.Conv2d(32, 32, 5, padding=2),
            nn.MaxPool2d(2),
            nn.Conv2d (32, 64, 5,padding=2),
            nn.MaxPool2d(2),
            nn.Flatten(),
            nn.Linear(1024, 64),
            nn.Linear(64, 10),
        )
    
    def forward(self,x):
        x = self.model(x)
        return x      

net = Net()

需要用到torchviz这个库里面的make_dot,自己构造一个测试的数据,一个batch为64的3通道32*32的tensor,这个尺寸需要满足自己设计的模型的输入数据维度和大小

from torchviz import make_dot
x = torch.randn(64, 3, 32, 32).requires_grad_(True)  # 定义一个网络的输入值
y = net(x) 
pic_1 = make_dot(y, params=dict(list(net.named_parameters()) + [('x', x)]))
pic_1.format = "png"  #定义pic为模型可视化后的输出,这里输出为png格式
 # 指定文件生成的文件夹pic里面
pic_1.directory = "pic"
 # 生成文件
pic_1.view()

最后输出的模型图片如下

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch提供了一种可视化神经网络结构的方法,可以使用`torchsummary`库来实现。首先,你需要安装`torchsummary`库,可以使用以下命令进行安装: ``` pip install torchsummary ``` 安装完成后,你可以按照以下步骤进行卷积神经网络结构可视化: 1. 导入需要的库: ```python import torch import torch.nn as nn from torchsummary import summary ``` 2. 定义你的卷积神经网络模型: ```python class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(3, 64, kernel_size=3, stride=1, padding=1) self.relu1 = nn.ReLU() self.pool1 = nn.MaxPool2d(kernel_size=2, stride=2) self.conv2 = nn.Conv2d(64, 128, kernel_size=3, stride=1, padding=1) self.relu2 = nn.ReLU() self.pool2 = nn.MaxPool2d(kernel_size=2, stride=2) self.fc1 = nn.Linear(128 * 8 * 8, 1024) self.relu3 = nn.ReLU() self.fc2 = nn.Linear(1024, 10) def forward(self, x): x = self.conv1(x) x = self.relu1(x) x = self.pool1(x) x = self.conv2(x) x = self.relu2(x) x = self.pool2(x) x = x.view(-1, 128 * 8 * 8) x = self.fc1(x) x = self.relu3(x) x = self.fc2(x) return x model = Net() ``` 3. 使用`summary`函数来可视化模型结构: ```python summary(model, input_size=(3, 32, 32)) ``` 这将输出模型的详细结构信息,包括每一层的输入形状、参数数量等。 需要注意的是,`input_size`参数需要根据你的输入数据的形状进行调整。在上面的示例中,假设输入数据是3通道的32x32图像。 希望这能回答你的问题!如果有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值