Pytorch 中怎么计算网络的参数量

简介: 本博文以 Dense Block 为例,Pytorch 为 DL 框架,最终计算模块参数量方法如下:

本博文以 Dense Block 为例,Pytorch 为 DL 框架,最终计算模块参数量方法如下:

import torch
import torch.nn as nn
class Norm_Conv(nn.Module):
    def __init__(self,in_channel):
        super(Norm_Conv,self).__init__()
        self.layers = nn.Sequential(
            nn.Conv2d(in_channel,in_channel,3,1,1),
            nn.ReLU(True),
            nn.BatchNorm2d(in_channel),
            nn.Conv2d(in_channel,in_channel,3,1,1),
            nn.ReLU(True),
            nn.BatchNorm2d(in_channel),
            nn.Conv2d(in_channel,in_channel,3,1,1),
            nn.ReLU(True),
            nn.BatchNorm2d(in_channel))
    def forward(self,input):
        out = self.layers(input)
        return out
class DenseBlock_Norm(nn.Module):
    def __init__(self,in_channel):
        super(DenseBlock_Norm,self).__init__()
        self.first_layer = nn.Sequential(nn.Conv2d(in_channel,in_channel,3,1,1),
                                        nn.ReLU(True),
                                        nn.BatchNorm2d(in_channel))
        self.second_layer = nn.Sequential(nn.Conv2d(in_channel*2,in_channel,3,1,1),
                                          nn.ReLU(True),
                                          nn.BatchNorm2d(in_channel))
        self.third_layer = nn.Sequential(
            nn.Conv2d(in_channel*3,in_channel,3,1,1),
            nn.ReLU(True),
            nn.BatchNorm2d(in_channel))
    def forward(self,input):
        output1 = self.first_layer(input)
        output2 = self.second_layer(torch.cat((output1,input),dim=1))
        output3 = self.third_layer(torch.cat((input,output1,output2),dim=1))
        return output3
def count_param(model):
    param_count = 0
    for param in model.parameters():
        param_count += param.view(-1).size()[0]
    return param_count
# Get Parameter number of Network
in_channel = 128
net1 = Norm_Conv(in_channel)
print('Norm Conv parameter count is {}'.format(count_param(net1)))
net2 = DenseBlock_Norm(in_channel)
print('DenseBlock Norm parameter count is {}'.format(count_param(net2)))

最终结果如下

Norm Conv parameter count is 443520
DenseBlock Norm parameter count is 885888
相关文章
|
4天前
|
存储 安全 网络安全
云端防御战线:融合云计算与先进网络安全策略
【5月更文挑战第17天】 随着企业纷纷迁移至云平台,数据和服务的集中化带来了前所未有的便利性。然而,这种集中化也使得网络攻击的潜在影响范围和危害程度急剧扩大。本文探讨了在快速发展的云计算环境中,如何通过综合运用最新的网络安全技术和策略来保障信息资产的安全。重点讨论了多租户环境下的数据隔离问题、加密技术的应用、入侵检测系统的集成以及安全事件管理和响应机制。同时,分析了未来云计算安全领域可能面临的新挑战,并提出了相应的应对措施。
|
4天前
|
机器学习/深度学习 JSON PyTorch
图神经网络入门示例:使用PyTorch Geometric 进行节点分类
本文介绍了如何使用PyTorch处理同构图数据进行节点分类。首先,数据集来自Facebook Large Page-Page Network,包含22,470个页面,分为四类,具有不同大小的特征向量。为训练神经网络,需创建PyTorch Data对象,涉及读取CSV和JSON文件,处理不一致的特征向量大小并进行归一化。接着,加载边数据以构建图。通过`Data`对象创建同构图,之后数据被分为70%训练集和30%测试集。训练了两种模型:MLP和GCN。GCN在测试集上实现了80%的准确率,优于MLP的46%,展示了利用图信息的优势。
10 1
|
4天前
|
机器学习/深度学习 PyTorch 算法框架/工具
神经网络基本概念以及Pytorch实现,多线程编程面试题
神经网络基本概念以及Pytorch实现,多线程编程面试题
|
6天前
|
算法 网络架构
网络地址的相关计算(超详细,快来快来!)
网络地址的相关计算(超详细,快来快来!)
28 0
|
6天前
|
存储 安全 网络安全
云端防御:融合云计算与网络安全的未来
【5月更文挑战第11天】 在数字化时代,数据是新的石油,而云计算则是提炼这种石油的超级工厂。随着企业和个人越来越依赖于云服务来存储和处理数据,网络安全的重要性也呈指数级增长。本文将探讨云计算与网络安全的交汇点,分析云服务模型中的安全挑战,并提出一系列创新策略和技术,用以增强信息安全。从身份验证到数据加密,再到入侵检测系统,我们将一探究竟如何在不牺牲性能的前提下,确保云环境的稳固和可信。此外,我们还将讨论未来的趋势和潜在的研究方向,以期打造一个更加安全、可靠的云计算生态系统。
10 0
|
6天前
|
监控 安全 网络安全
云端防御:融合云计算与网络安全的未来之路
【5月更文挑战第1天】 随着企业数字化转型的不断推进,云计算已成为现代业务架构的核心。然而,云服务的广泛应用也带来了前所未有的安全挑战。本文将深入探讨在动态、多租户的云环境中,如何通过创新的安全技术和策略来保障数据和资源的安全。我们将分析云计算服务模型与网络安全的关系,探讨当前面临的主要安全威胁,并提出相应的解决方案和管理最佳实践。文章旨在为读者提供一个全面的框架,以理解和应对在云平台上进行业务操作时可能遇到的安全风险。
|
6天前
|
存储 安全 网络安全
云端防御线:融合云计算与网络安全的战略性布局
【4月更文挑战第30天】 随着企业数字化转型的加速,云计算已成为推动业务增长的关键驱动力。然而,云服务的广泛采用也带来了前所未有的安全挑战。本文深入探讨了在动态和复杂的云环境中维护网络安全的关键技术与策略。通过分析云计算服务模型、网络威胁面及信息安全最佳实践,文章旨在为企业构建一个既灵活又坚固的防御体系提供指导,确保在享受云服务带来的便利的同时,有效防范潜在的安全风险。
|
6天前
|
监控 安全 网络安全
云端防御战线:融合云计算与网络安全的未来策略
【4月更文挑战第30天】随着企业数字化转型的加速,云计算已成为支撑现代业务架构的关键平台。然而,云服务的广泛采用也使组织面临前所未有的网络威胁。本文将深入探讨如何在动态且复杂的云环境中实施有效的网络安全措施,确保信息资产的安全与完整性。文中不仅分析了云计算服务模型中存在的安全挑战,还提出了一系列创新的安全策略,包括身份验证、数据加密、访问控制及持续监控等,旨在为读者提供一套全面的网络安全解决方案框架。
|
4天前
|
运维 网络协议 Linux
Docker网络_docker 网络,来看看这份超全面的《Linux运维面试题及解析》
Docker网络_docker 网络,来看看这份超全面的《Linux运维面试题及解析》