Pytorch统计参数网络参数数量方式

PyTorch统计参数:网络参数数量方式

在深度学习中,了解模型的参数数量是非常重要的。在PyTorch中,我们可以使用torchsummary模块来统计模型的参数数量。本文将介绍两种不同的方式来统计模型的参数数量。

1. 使用torchsummary模块

torchsummary模块是一个用于打印PyTorch模型摘要的工具。它可以打印出模型的输入形状、输出形状和参数数量等信息。以下是使用torchsummary模块来统计模型参数数量的示例代码。

!pip install torchsummary

import torch
import torch.nn as nn
from torchsummary import summary

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(3, 6, 5)
        self.pool = nn.MaxPool2d(2, 2)
        self.conv2 = nn.Conv2d(6, 16, 5)
        self.fc1 = nn.Linear(16 * 5 * 5, 120)
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)

    def forward(self, x):
        x = self.pool(torch.relu(self.conv1(x)))
        x = self.pool(torch.relu(self.conv2(x)))
        x = x.view(-1, 16 * 5 * 5)
        x = torch.relu(self.fc1(x))
        x = torch.relu(self.fc2(x))
        x = self.fc3(x)
        return x

model = Net()
summary(model, (3, 32, 32))

输出结果如下:

----------------------------------------------------------------
        Layer (type)               Output Shape         Param #
================================================================
            Conv2d-1            [-1, 6, 28, 28]             456
         MaxPool2d-2            [-1, 6, 14, 14]               0
            Conv2d-3           [-1, 16, 10, 10]           2,416
         MaxPool2d-4             [-1, 16, 5, 5]               0
            Linear-5                  [-1, 120]          48,120
            Linear-6                   [-1, 84]          10,164
            Linear-7                   [-1, 10]             850
================================================================
Total params: 62,006
Trainable params: 62,006
Non-trainable params: 0
----------------------------------------------------------------

2. 自定义函数

我们也可以自定义一个函数来统计模型的参数数量。以下是使用自定义函数来统计模型参数数量的示例代码。

import torch
import torch.nn as nn

def count_parameters(model):
    return sum(p.numel() for p in model.parameters() if p.requires_grad)

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(3, 6, 5)
        self.pool = nn.MaxPool2d(2, 2)
        self.conv2 = nn.Conv2d(6, 16, 5)
        self.fc1 = nn.Linear(16 * 5 * 5, 120)
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)

    def forward(self, x):
        x = self.pool(torch.relu(self.conv1(x)))
        x = self.pool(torch.relu(self.conv2(x)))
        x = x.view(-1, 16 * 5 * 5)
        x = torch.relu(self.fc1(x))
        x = torch.relu(self.fc2(x))
        x = self.fc3(x)
        return x

model = Net()
print(f'Total number of parameters: {count_parameters(model)}')

输出结果如下:

Total number of parameters: 62006

这两种方式都可以用来统计模型的参数数量,选择哪种方式取决于个人喜好和使用场景。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pytorch统计参数网络参数数量方式 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Python数据集切分实例

    以下是关于“Python 数据集切分实例”的完整攻略,其中包含两个示例说明。 示例1:随机切分数据集 步骤1:导入必要库 在切分数据集之前,我们需要导入一些必要的库,包括numpy和sklearn。 import numpy as np from sklearn.model_selection import train_test_split 步骤2:定义数据…

    PyTorch 2023年5月16日
    00
  • pytorch中的model.eval()和BN层的使用

    PyTorch中的model.eval()和BN层的使用 在深度学习中,模型的训练和测试是两个不同的过程。在测试过程中,我们需要使用model.eval()函数来将模型设置为评估模式。此外,批量归一化(Batch Normalization,BN)层是一种常用的技术,可以加速模型的训练过程。本文将提供一个完整的攻略,介绍如何使用PyTorch中的model.…

    PyTorch 2023年5月15日
    00
  • 在jupyter Notebook中使用PyTorch中的预训练模型ResNet进行图像分类

    预训练模型是在像ImageNet这样的大型基准数据集上训练得到的神经网络模型。 现在通过Pytorch的torchvision.models 模块中现有模型如 ResNet,用一张图片去预测其类别。 1. 下载资源 这里随意从网上下载一张狗的图片。 类别标签IMAGENET1000 从 https://blog.csdn.net/weixin_3430401…

    PyTorch 2023年4月7日
    00
  • pytorch nn.Parameters vs nn.Module.register_parameter

    nn.Parameters 与 register_parameter 都会向 _parameters写入参数,但是后者可以支持字符串命名。从源码中可以看到,nn.Parameters为Module添加属性的方式也是通过register_parameter向 _parameters写入参数。 def __setattr__(self, name, value)…

    PyTorch 2023年4月6日
    00
  • pytorch transforms图像增强怎么实现

    这篇文章主要介绍“pytorch transforms图像增强怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“pytorch transforms图像增强怎么实现”文章能帮助大家解决问题。 一、前言 本文基于的是pytorch3.7.1 二、图像处理 深度学习是由数据驱动的,而数据的数量和分布对于模型的优劣具有…

    PyTorch 2023年4月7日
    00
  • pytorch程序异常后删除占用的显存操作

    在本攻略中,我们将介绍如何在PyTorch程序异常后删除占用的显存操作。我们将使用try-except语句和torch.cuda.empty_cache()函数来实现这个功能。 删除占用的显存操作 在PyTorch程序中,如果出现异常,可能会导致一些变量或模型占用显存。如果不及时清理这些占用的显存,可能会导致显存不足,从而导致程序崩溃。为了避免这种情况,我们…

    PyTorch 2023年5月15日
    00
  • pytorch中tensor张量数据基础入门

    pytorch张量数据类型入门1、对于pytorch的深度学习框架,其基本的数据类型属于张量数据类型,即Tensor数据类型,对于python里面的int,float,int array,flaot array对应于pytorch里面即在前面加一个Tensor即可——intTensor ,Float tensor,IntTensor of size [d1,…

    2023年4月8日
    00
  • Pytorch之可视化

    先解决下keras可视化安装graphviz的问题: 注意安装顺序: sudo pip3 install graphviz # python包 sudo apt-get install graphviz # 软件本身 sudo pip3 install pydot sudo pip3 install pydot-ng # 版本兼容需要,可选   1.  使用…

    2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部