DenseNet笔记

📒from  ©实现pytorch实现DenseNet(CNN经典网络模型详解) - 知乎 (zhihu.com)

是什么之 DenseBlock

读图:

  • x0是input
  • H1的输入是x0 (input)
  • H2的输入是x0和x1 (x1是H1的输出)

Summary:

  • 传统卷积网,网络有L层,就会有L个连接
  • DenseNet中,会有L(L+1)/2个连接<------>每一层的输入来自前面所有的层的输出

原文仅有的两个公式:

通过这两个公式理解 ResNet 和 DenseNet

 Summary

Identity function

输出等于输入(继续

是谁,在哪儿。啥时候

作为CVPR2017年的Best Paper, DenseNet脱离了加深网络层数(ResNet)和加宽网络结构(Inception)来提升网络性能的定式思维,从特征的角度考虑,通过特征重用和旁路(Bypass)设置,既大幅度减少了网络的参数量,又在一定程度上缓解了gradient vanishing问题的产生.结合信息流和特征复用的假设,DenseNet当之无愧成为2017年计算机视觉顶会的年度最佳论文.

©实现pytorch实现DenseNet(CNN经典网络模型详解) - 知乎 (zhihu.com)

评价

  1. DenseNet网络层数深
  2. 相比ResNet参数量更少
  3. 旁路增加了特征重用
  4. 网络更易于训练,并具有一定的正则效果
  5. 缓解了gradient vanishing和model degradation问题

杂谈:

  1. CNN网络层数不断增加,梯度消失模型退化的问题出现在人们面前
    1. gradient vanishing 梯度消失的问题真的很严重
    2. model degradation
  2. batch  normalization一定程度上解决了   gradient vanishing
  3. ResNet 和 Highway Networks 通过恒等映射设置旁路,进一步减少了gradient vanishing 和 model degradation
  4. Fractal Nets通过将不同深度的网络并行化,获得深度的同时保证梯度的传播
  5. 不同网络架构的核心思想:将feature map 跨网络层 连接

DenseNet v.s.  ResNet

  • 何恺明 ResNet 的假设:若某一较深的网络多出另一较浅网络的若干层有能力学习到恒等映射,那么这一较深网络训练得到的模型性能一定不会弱于该浅层网络
    • = 如果对某一网络中增添一些可以学到恒等映射的层组成新的网络,那么最差的结果也就是新网络中的这些层在训练后成为恒等映射而不会影响原网络的性能
  • DenseNet假设:(特征复用)    与其多次学习冗余的特征,特征复用是一种更好的特征提取方式

DenseNet优点

  • 网络更窄,参数更少
  • DenseNet❤️:dense block
    • dense block每个卷积层的输出 feature map数量都很小( feature map < 100)
    • feature map理解为 网络的宽度
  • 密集连接使得特征和梯度的传递更加有效,网络也更容易训练(why?

A:

  • 原文句子:Each layer has direct access to the gradients from the loss function and the original input signal, leading to an implicit deep supervision.每个层都可以直接访问损失函数的梯度和原始输入信号,从而导致了一种隐式的深度监督。
  • 首先明确:梯度消失在网络越深的时候越容易出现(原因在于:输入信息和梯度信息在很多层之间传递导致的)
  • ∴dense connection
    • 第1个优点:相当于 每一层都直接连接input和loss,因此可以减轻梯度消失现象
    • 第2个优点:正则化效果,对过拟合有抑制作用(原因在于参数减少了,所以过拟合现象减轻)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/447098.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言——函数指针——函数指针数组 (详解)

函数指针数组 函数指针数组的作用 函数指针数组是一个数组&#xff0c;其中的每个元素都是一个函数指针。函数指针是指向函数的指针变量&#xff0c;可以用来调用相应的函数。函数指针数组的作用是可以根据需要动态地选择并调用不同的函数。 函数指针数组的使用场景有很多&…

C++ Standard Library简介

目录 ​编辑 引言&#xff1a; Boost C Libraries&#xff1a;截至本文编写时间最新版本 1.84.0 STL源码分析&#xff1a; C STL源码分析&#xff08;一&#xff09;&#xff1a;STL体系结构和一些基础知识 libc&#xff1a; 概述 libc 入门 现状 平台和编译…

BetterDisplay for mac V2.2.5 强大的mac显示器管理开源工具

BetterDisplay是Mac OS 一个很棒的工具&#xff01; 它允许您将显示器转换为完全可扩展的屏幕 管理显示器配置覆盖 允许亮度和颜色控制 提供 XDR/HDR 亮度升级&#xff08;Apple Silicon 和 Intel Mac 上兼容的 XDR 或 HDR 显示器的额外亮度超过 100% - 多种方法可用&#x…

【Linux】文件系统扩展——软硬链接

目录 对文件建立软硬链接 软链接 硬链接 对文件建立软硬链接 对 log 文件建立软链接&#xff1a; ln -s log log.soft.link 对 test 文件建立硬链接&#xff1a; ln test test.hard.link log.soft.link 和 test.hard.link 在 Linux 中都只是文件名&#xff0c;为了方便…

springboot整合shiro的实战教程(三)

文章目录 授权实现0.页面资源授权2.代码授权方式3.方法调用授权4.授权数据持久化5. 创建dao方法6.实现service接口7.修改自定义realm 授权实现 0.页面资源授权 <%taglib prefix"shiro" uri"http://shiro.apache.org/tags" %><shiro:hasAnyRoles…

Java对接(BSC)币安链 | BNB与BEP20的开发实践(二)BNB转账、BEP20转账、链上交易监控

上一节我们主要是环境搭建&#xff0c;主要是为了能够快速得去开发&#xff0c;有些地方只是简单的介绍&#xff0c;比如ETH 、web3j等等这些。 这一节我们来用代码来实现BNB转账、BEP20转账、链上交易监控 话不多说&#xff0c;我们直接用代码实现吧 1. BNB转账 /*** BNB转…

后端八股笔记-----mysql

Mysql 聚合查询————可以用增加一个实例表解决 多表查询————可以优化sql语句进行查询 &#x1f446; 显示Using index condition的话 说明是有优化的空间 &#x1f446;唯一索引指的是类似主键这种数据内容唯一的属性 &#x1f446;图中的最后一个sql的索引…

Math类 --Java学习笔记

Math 代表数学&#xff0c;是一个工具类&#xff0c;里面提供的都是对数据进行操作的一些静态方法 Math提供的常用方法

Kafka的分区机制

Kafka的分区机制是其核心功能之一&#xff0c;旨在提高可扩展性和并行处理能力。下面概述了Kafka分区的基本概念和工作原理&#xff1a; Kafka分区基本概念 分区&#xff08;Partition&#xff09;&#xff1a;Kafka中的主题&#xff08;Topic&#xff09;可以细分为多个分区…

OD_2024_C卷_200分_7、5G网络建设【JAVA】【最小生成树】

package odjava;import java.util.Scanner;public class 七_5G网络建设 {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt(); // 基站数量&#xff08;节点数&#xff09;int m sc.nextInt(); // 基站对数量&#xff08;边数&…

【Docker】在 Ubuntu20.04 上配置 Docker 开发环境

【Docker】在 Ubuntu20.04 上配置 Docker 开发环境 1 安装 Docker2 加入 Docker 用户组 1 安装 Docker 参考文档: Link 卸载以避免冲突 for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done设…

linux中新添加一块硬盘之后,系统起不来

问题&#xff1a; 在添加磁盘之后&#xff0c;重新开机时&#xff0c;却发现无法进入系统中 原因&#xff1a; 是因为添加了新的磁盘之后&#xff0c;系统将空硬盘当作系统盘启动&#xff0c;所以无法启动系统 解决方案&#xff1a; 进入到bios&#xff0c;将系统盘的优先级…

【大厂AI课学习笔记NO.71】AI算力芯片GPU/TPU等

AI算力芯片的发展历程 人工智能&#xff08;AI&#xff09;算力芯片的发展历程紧密地跟随着AI技术的发展脚步。从早期的基于传统中央处理器&#xff08;CPU&#xff09;的计算&#xff0c;到图形处理器&#xff08;GPU&#xff09;的广泛应用&#xff0c;再到专门为AI设计的处…

01_electron入门

由于毕业论文可能需要用 electron&#xff0c;所以 Linux 驱动学习慢了下来。 一、安装 node.js 进入 node.js 官网&#xff1a;Node.js (nodejs.org) 咱们就是用稳定版&#xff0c;安装包除了安装路径自己选择外&#xff0c;一直点 Next。 安装完成后需要配置环境&#xff0c…

C++容器适配器stack、queue、priority_queue

文章目录 C容器适配器stack、queue、priority_queue1、stack1.1、stack的介绍1.2、stack的使用1.3、stack的模拟实现 2、queue2.1、queue的介绍2.2、queue的使用2.3、queue的模拟实现 3、priority_queue3.1、priority_queue的介绍3.2、priority_queue的使用3.3、仿函数3.4、pri…

Vue3+ts(day02:CompositionAPI、setup)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学&#xff0c;可以点心心支持一下哈&#xff08;笔记是根据b站上学习的尚硅谷的前端视频【张天禹老师】&#xff0c;记录一下学习笔记&#xff0c;用于自己复盘&#xff0c;有需要学…

Linux——信号

目录 什么是信号 Linux下的信号 信号的记录 信号处理的常见方式 产生信号 使用组合键产生信号&#xff08;包含core dump&#xff09; 使用系统调用向进程发送信号 由软件条件产生信号 由硬件异常产生信号 阻塞信号 内核表示 sigset_t 信号集操作函数 sigpendin…

基于粒子群(PSO)的PID控制器matlab仿真

算法实现简介 利用粒子群算法对 PID 控制器的参数进行优化设计&#xff0c;其过程如图 所示。 图中&#xff0c;粒子群算法与 Simulink 模型之间连接的桥梁是粒子&#xff08;即 PID 控制器参数&#xff09;和该粒子对应的适 应值&#xff08;即控制系统的性能指标&#xff09…

商家转账到零钱场景申请哪一个

商家转账到零钱是什么&#xff1f; 商家转账到零钱功能是指商家可以通过支付平台将资金直接转账到用户的零钱账户中。在这种情况下&#xff0c;商家不需要用户提供银行账户信息&#xff0c;而是使用支付平台的转账功能将资金直接转移到用户的零钱账户中。 商家转账到零钱的使…

什么是脚本语言?——跟老吕学Python编程

什么是脚本语言&#xff1f;——跟老吕学Python编程 脚本语言脚本语言概述脚本语言定义脚本语言简介脚本语言特点 脚本语言特点脚本语言优点脚本语言缺点 脚本语言应用和发展脚本语言应用脚本语言发展情况 脚本语言分类工作控制语言和ShellGUI脚本应用程序定制的脚本语言WEB编程…