首页 > 其他分享 >机器学习——稠密连接网络DenseNet

机器学习——稠密连接网络DenseNet

时间:2023-11-09 14:23:43浏览次数:31  
标签:稠密 nn torch channels num input DenseNet 连接

从ResNet到DesNet

 

 

稠密块体

DenseNet使用了ResNet改良版的“批量规范化、激活和卷积”架构(参见 7.6节中的练习)。 我们首先实现一下这个架构。

import torch
from torch import nn
from d2l import torch as d2l


def conv_block(input_channels, num_channels):
    return nn.Sequential(
        nn.BatchNorm2d(input_channels), nn.ReLU(),
        nn.Conv2d(input_channels, num_channels, kernel_size=3, padding=1))

 1个稠密块由多个卷积块组成,每个卷积块使用相同数量的输出通道。 然而,在前向传播中,我们将每个卷积块的输入和输出在通道维上连结。

class DenseBlock(nn.Module):
    def __init__(self, num_convs, input_channels, num_channels):
        super(DenseBlock, self).__init__()
        layer = []
        for i in range(num_convs):
            layer.append(conv_block(
                num_channels * i + input_channels, num_channels))
        self.net = nn.Sequential(*layer)

    def forward(self, X):
        for blk in self.net:
            Y = blk(X)
            # 连接通道维度上每个块的输入和输出
            X = torch.cat((X, Y), dim=1)
        return X

 在下面的例子中,我们定义一个有2个输出通道数为10的DenseBlock

 

blk = DenseBlock(2, 3, 10)
X = torch.randn(4, 3, 8, 8)
Y = blk(X)
Y.shape
torch.Size([4, 23, 8, 8])

 

过渡层

 

 

DenseNet模型

 

总结

  • 在跨层连接上,不同于ResNet中将输入与输出相加,稠密连接网络(DenseNet)在通道维上连结输入与输出。

  • DenseNet的主要构建模块是稠密块和过渡层。

  • 在构建DenseNet时,我们需要通过添加过渡层来控制网络的维数,从而再次减少通道的数量。

 

标签:稠密,nn,torch,channels,num,input,DenseNet,连接
From: https://www.cnblogs.com/yccy/p/17819636.html

相关文章

  • C3P0连接池详解及配置
    数据库连接是一个耗费大量资源且相当慢的操作,所以为了提高性能和连接速度,诞生了连接池这样的概念。在多用户并发操作过程中,连接池尤为重要。它是将那些已连接的数据库连接存放在一个容器里(连接池),这样以后别人要连接数据库的时候,将不会重新建立数据库连接(这样蜗牛的慢动作谁都受......
  • 关于 连接器 以及 电容电阻的高度
    连接器的型号:AXK6F80337YGAXK5F80337YG连接器的数据手册的说明:  也就是说,这款连接器的高度是1.5MM那么连接器下面需要使用多大的电容电阻呢,这就设计到了,电容电阻的高度。网上的资料:     有没有电容的高度呢? 很明显对于1.5MM的连接器的高度,06......
  • 你还在为SFTP连接超时而困惑么? | 京东云技术团队
    1.前言在最近的项目联调过程中,发现在连接上游侧SFTP时总是需要等待大约10s+的时间才会出现密码输入界面,这种长时间的等待直接导致的调用文件接口时连接sftp超时问题。于是决定自己针对该问题进行一下排查,查询了相关资料,并逐个试验了一下网上提供的解决方案,然后在文章中详细记录问......
  • sql server2008禁用远程连接
    1.打开SQLServer配置管理器,双击左边SQLServer网络配置,点击TCP/IP协议,在协议一栏中,找到全部侦听,修改为否,然后点击IP地址,将IP地址为127.0.0.1(IPV4)或::1(IPV6)的已启用修改为是,其它的IP地址的已启用修改为否注意:如果要开启局域网远程连接,则找到内网ip地址,将已启用改为......
  • SqlServer开启远程连接配置
    第一步:打开配置管理器第二步:开启端口监听第三步:设置所有端口均使用1433(或者其他)......
  • 你还在为SFTP连接超时而困惑么?
    1.前言在最近的项目联调过程中,发现在连接上游侧SFTP时总是需要等待大约10s+的时间才会出现密码输入界面,这种长时间的等待直接导致的调用文件接口时连接sftp超时问题。于是决定自己针对该问题进行一下排查,查询了相关资料,并逐个试验了一下网上提供的解决方案,然后在文章中详细记录......
  • DataGrip连接MySql数据库失败:dataGrip java.net.ConnectException: Connection refuse
    1.问题报错:dataGripjava.net.ConnectException:Connectionrefused:connect.详细错误:[08S01]CommunicationslinkfailureThelastpacketsentsuccessfullytotheserverwas0millisecondsago.Thedriverhasnotreceivedanypacketsfromtheserver.Communica......
  • Spring+Druid连接池简单入门配置
    偶尔的机会解释Druid连接池,后起之秀,但是评价不错,另外由于是阿里淘宝使用过的所以还是蛮看好的。Druid集连接池,监控于一体整好复合当前项目的需要,项目是ssh结构,之前是用C3p0的,现在换一个连接池也是很简单的spring配置DataSource,配置如下:1.<beanid="dataSource"class="com.ali......
  • C# 如何连接 PostgreSQL 基础教程
    1.准备1.安装PostgreSQL数据库服务器2.安装Npgsql驱动程序,每一个解决方案都要提前添加3.C#开发环境:VisualStudio2.连接PostgreSQL的步骤2.1:导入必要的命名空间usingNpgsql;2.2:创建连接字符串stringconnString="Host=localhost;Port=5432;Username=po......
  • 一台服务器最大能支持多少条 TCP 连接(转)
    一、一台服务器最大能打开的文件数 1、限制参数我们知道在Linux中一切皆文件,那么一台服务器最大能打开多少个文件呢?Linux上能打开的最大文件数量受三个参数影响,分别是:fs.file-max(系统级别参数):该参数描述了整个系统可以打开的最大文件数量。但是root用户不会受该参数限制(比......