查看深度学习网络模型的参数信息和占用资源情况

打印训练模型的参数信息,下面提供几个方法,以简单的网络模型为例:

import torch
import torch.nn as nn
import torch.nn.functional as F


class Net(nn.Module):
    def __init__(self):
        
        super(Net, self).__init__()
        # 卷积层 '1'表示输入图片的通道数,‘6'表示输出的通道数,‘3’表示卷积核的大小
        self.conv1 = nn.Conv2d(1, 6, 3)
        # 线性层,输入1350个特征,输出10个特征
        self.fc1 = nn.Linear(1350, 10)  # 这里的1350是如何计算的呢?这就要看后面的forward函数
    def forward(self, x):
        print(x.size())  # 结果:[1, 1, 32, 32]
        # 卷积操作
        x = self.conv1(x) 
        #激活操作
        x = F.relu(x)
        print(x.size())  # 结果:[1, 6, 30, 30]
        #最大池化操作
        x = F.max_pool2d(x, (2, 2))  # 我们使用池化层,计算结果是15
        x = F.relu(x)
        print(x.size())  # 结果:[1, 6, 15, 15]
        # reshape,‘-1’表示自适应
        # 这里做的就是压扁的操作 就是把后面的[1, 6, 15, 15]压扁,变为 [1, 1350]
        x = x.view(x.size()[0], -1)
        print(x.size())  # 这里就是fc1层的的输入1350
        x = self.fc1(x)
        return x
net = Net()
1、查看网络的模型,和参数的信息情况
打印网络
print(net)

#打印参数的信息
# for parameters in net.parameters():
#     print(parameters)

打印参数的名字以及参数的数据形状
for name,parameters in net.named_parameters():
    print(name,':',parameters.size())
#*************************************************
Net(
  (conv1): Conv2d(1, 6, kernel_size=(
  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值