pytorch打印网络结构_神经网络长什么样不知道?这有一份简单的 pytorch可视化技巧(1)...

本文介绍了两种PyTorch网络结构的可视化方法:pytorch-summary和HiddenLayer。pytorch-summary提供类似Keras的model.summary()功能,简单展示网络输入输出信息。而HiddenLayer则能绘制网络结构图,包括TensorFlow和Keras模型。通过实例展示了如何使用这两个工具来可视化VGG16等网络,并讨论了训练过程中的可视化技巧。
摘要由CSDN通过智能技术生成

596aeb4cdff85f2aba307ef65c33d85f.gif   

作者:陈  扬          

编辑:田  旭          

前  言

深度学习这几年伴随着硬件性能的进一步提升,人们开始着手于设计更深更复杂的神经网络,有时候我们在开源社区拿到网络模型的时候,做客可能 不会直接开源模型代码,而是给出一个模型的参数文件,当我们想要复现算法的时候,很可能就需要靠自己手动仿造源作者设计的神经网络进行搭建,为了方便我们设计网络,我结合了我最近的工作积累,给大家分享一些关于 pytorch 的网络可视化方法

以下所有代码我已经开源:

https://github.com/OUCMachineLearning/OUCML/blob/master/One%20Day%20One%20GAN/day11/pytorch_show_1.ipynb>

01

pytorch-summary

https://github.com/sksq96/pytorch-summary 最简单的 pytorch 网络结构打印方法,也是最不依赖各种环境的一个轻量级可视化网络结构pytorch 扩展包 类似于Keras style的model.summary() 以前用过Keras的朋友应该见过,Keras有一个简洁的API来查看模型的可视化,这在调试网络时非常有用。这是一个准备在PyTorch中模仿相同的准系统代码。目的是提供补充信息,以及PyTorch中print(your_model)未提供的信息。

(一)使用方法

pip 下载安装 torchsummary

  • pip install torchsummary or

  • git clone https://github.com/sksq96/pytorch-summary

  • 请注意,input_size是进行网络正向传递所必需的。

(二)一个简单的例子

CNN for MNSIT

import torchimport torch.nn as nnimport torch.nn.functional as Ffrom torchsummary import summaryclass Net(nn.Module):    def __init__(self):        super(Net, self).__init__()        self.conv1 = nn.Conv2d(1, 10, kernel_size=5)        self.conv2 = nn.Conv2d(10, 20, kernel_size=5)        self.conv2_drop = nn.Dropout2d()        self.fc1 = nn.Linear(320, 50)        self.fc2 = nn.Linear(50, 10)    def forward(self, x):        x = F.relu(F.max_pool2d(self.conv1(x), 2))        x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2))        x = x.view(-1, 320)        x = F.relu(self.fc1(x))        x = F.dropout(x, training=self.training)        x = self.fc2(x)        return F.log_softmax(x, dim=1)device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # PyTorch v0.4.0model = Net().to(device)summary(model, (1, 28, 28))
----------------------------------------------------------------        Layer (type)               Output Shape         Param #================================================================            Conv2d-1           [-1, 10, 24, 24]             260            Conv2d-2             [-1, 20, 8, 8]           5,020         Dropout2d-3             [-1, 20, 8, 8]               0            Linear-4                   [-1, 50]          16,050            Linear-5                   [-1, 10]             510================================================================Total params: 21,840Trainable params: 21,840Non-trainable params: 0----------------------------------------------------------------Input size (MB): 0.00Forward/backward pass size (MB): 0.06Params size (MB): 0.08Estimated Total Size (MB): 0.15----------------------------------------------------------------

可视化 torchvision 里边的 vgg

import torchfrom torchvision import modelsfrom torchsummary import summarydevice = torch.device('cuda' if torch.cuda.is_available() else 'cpu')vgg = models.vgg11_bn().to(device)summary(vgg, (3, 224, 224))
----------------------------------------------------------------        Layer (type)               Output Shape         Param #================================================================            Conv2d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值