CNN网络的一些基本知识

news2024/9/26 1:24:19

CNN 网络的layer介绍

在卷积神经网络(Convolutional Neural Network,CNN)中,往往包含许多种不同的网络层交替组成,主要有卷积层(Convolutional Layer)、池化层(Pooling Layer)、非线性层(ReLU Layer)、全连接层(Fully Connected Layer)等。

  • 卷积层:卷积函数层, 主要对输入input进行卷积操作,同时根据参数stride的设置,确定卷积核每两次卷积操作直接滑动的距离。卷积核(kernel)类似一个图像滤波器(filter),每一个卷积核用一个矩阵表示,将其在图片上按照间隔大小滑动处理一遍得到的结果,即为卷积层的activation map(或feature map)

  •  ReLU(Rectified Linear Units) Layers:非线性层,主要目的是在系统中引入非线性特征。最常见的CNN网络中使用ReLU层,其具有比tanh和sigmoid函数更好的速度与效率;
  • Pooling Layers:池化层,也称降采样层,最常见的是maxpooling方法。Pooling层对输入矩阵的一块区域整体进行操作,只在该区域保留一个数值,而不同的pooling方法决定该数值的计算方法,maxpooling层对于一个区域输出最大值,同时还有average pooling和L2-norm pooling等方式。
  • Fully Connected Layer:全连接层,一般位于CNN网络的最后部分,该层的输入可以是卷积层,ReLU层,Pooling层的结果,输出一个N维向量,N即为要识别的类别数。

  • Dropout layer:由大牛Hinton提出的Dropout Layers,是为了防止过度拟合问题出现,在训练时专门加入的层。该层在forward过程中随机drop out一系列的激活值,将其值改成0,减少过度拟合。

  • backpropagation:“反向传播”,是一种在神经网络中常用的学习算法,用于计算梯度(gradient)以优化网络的权重和偏置,可以分为4个部分,the forward pass, the loss function, the backward pass, and the weight update.

  • backward pass:其目的是确定哪些权重对损失贡献最大,并找到调整这些权重的方法以便减少损失;

CNN 如何选取layer

cnn 卷积核大小、卷积层数、每层map个数都是如何确定下来的呢? 每一层卷积有多少channel数,以及一共有多少层卷积,这些暂时没有理论支撑。

一般通过经验,先用大模型训练,然后再在大模型上简化,最后取性能、精确度等综合的tradeoff.

经验模式:

  1. 小数据量,大模型训练;
  2. 设计合理的loss函数。一般来说分类就是Softmax, 回归就是L2的loss
  3. 观察loss的变化情况:NN主要的优化目标就是loss,所以观察loss比只观察准确率好
  4. 确认NN学习充分:比如分类,判断准确率会移动到极值附近;
  5. 设置合理的learn rate
  6. 对比训练集和测试集的loss

具体操作:

  1. 预处理:mean/std zero-center就够了, PCA, 白化什么的都用不上. 反正CNN能学习encoder;
  2. shuffle很重要;
  3. 理解网络原理
  4. dropout,可以防止过拟合
  5. 无脑用ReLU
  6. 无脑用3x3
  7. filter数量2^n
  8. 使用Xavier初始化网络,Xavier初始化的核心思想是使得每一层神经网络的激活值的方差在前向传播时保持恒定。这有助于解决梯度消失或爆炸的问题。
  9. 无脑用sgd + momentum.
  10. 要鼓励使用batch normalization.
  11. 你有95%概率不会使用超过40层的模型;
# 举一个filter数量是2^n的例子
        filters = [32, 64, 128]  # 这些是2的5次方,6次方,7次方
        
        self.conv_layers = nn.Sequential(
            nn.Conv2d(in_channels=3, out_channels=filters[0], kernel_size=3, stride=1, padding=1),
            nn.ReLU(),
            nn.MaxPool2d(kernel_size=2, stride=2),
            
            nn.Conv2d(in_channels=filters[0], out_channels=filters[1], kernel_size=3, stride=1, padding=1),
            nn.ReLU(),
            nn.MaxPool2d(kernel_size=2, stride=2),
            
            nn.Conv2d(in_channels=filters[1], out_channels=filters[2], kernel_size=3, stride=1, padding=1),
            nn.ReLU(),
            nn.MaxPool2d(kernel_size=2, stride=2)
        )

参考:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《黑神话:悟空》爆火,对程序员的 5 点启示(2)

前言 继续上篇未完章节…… 4. 需求捕捉 需求有真需求和伪需求的区别,捕捉和理解用户的真需求对于产品非常重要。 在《黑神话:悟空》面世以后,很多玩家都不吝称赞,有玩家这么评论: 不吹牛逼,这一段我眼…

C#中通过TabControl控制MDI子窗体显示切换的实现过程

类似excel表格中各个表单sheet的切换效果,使用tabcontrol控件实现类似的功能。效果如下: 过程涉及父窗体MDIParent1、子窗体main、自定义基础功能类MdiChildBase。 基础功能类MdiChildBase继承自Form创建,定义了一个委托SetTabControlDelega…

apisix 本地开发环境部署

apisix 本地开发环境部署 本地开发环境部署可以采用 docker-compose 部署,配置文件如下 apisix 配置文件 apisix:node_listen: 9080 # APISIX 节点监听地址enable_ipv6: falsehttp:port: 9080 # APISIX HTTP 端口#https:# port: 9443 # APISIX HTTPS 端口# ssl…

《机器学习》K-means 聚类 原理、参数解析、案例实现

1. 引言 随着数据的快速增长和复杂性的不断提高,如何从大量数据中提取有用信息已成为数据科学和人工智能领域的核心挑战。聚类作为一种无监督学习方法,通过将数据分为若干组,使得同一组内的样本具有较高的相似性,而不同组之间的样本差异显著。这种方法被广泛应用于数据分析…

探索极速Python:Sanic框架的魔力

文章目录 探索极速Python:Sanic框架的魔力背景:为什么选择Sanic?Sanic是什么?如何安装Sanic?简单的库函数使用方法场景应用示例常见Bug及解决方案总结 探索极速Python:Sanic框架的魔力 背景:为什…

带你了解RS485通讯网关-天拓四方

在当今工业自动化和智能化的浪潮中,高效、可靠的数据通讯是确保系统运行顺畅的关键。RS485通讯网关作为工业通讯网络中的核心设备,承担着数据传输的重要任务。本文将从RS485通讯网关的技术背景、功能特性、应用场景以及选购要点等方面进行深入探讨&#…

【智能算法应用】基于融合改进A星-麻雀搜索算法求解六边形栅格地图路径规划

目录 1.算法原理2.结果展示3.参考文献4.代码获取 1.算法原理 【智能算法】麻雀搜索算法(SSA)原理及实现 六边形栅格地图 分析一下地图: 六边形栅格地图上移动可以看做6领域运动,偶数列与奇数列移动方式有所差异,将六…

[每周一更]-(第112期):WDL(Workflow Description Language)说明及使用示例

文章目录 什么是WDL?WDL的基本结构示例 WDL 文件示例任务:字符串反转示例工作流:字符串处理 WDL 文件详解任务(Task)工作流(Workflow) 运行示例总结报错参考 什么是WDL? WDL&#x…

Java图形用户界面之Applet设计

Applet设计 前言一、Applet的基本工作原理与使用局限Applet的基本工作原理代码示例 Java Applet 的使用局限Java沙箱安全机制原理 Applet的生命周期与运行方式 二、Applet类Applet类的层次结构常用方法生命周期方法显示方法多媒体支持方法其他方法 三、Applet和GUI基于AWT和Swi…

字符操作函数和内存操作函数

1 字符操作函数 1.strlen size_t strlen ( const char * str ); 函数功能&#xff1a;返回以\0结尾的字符串长度&#xff0c;不包含\0。 注&#xff1a;strlen返回值是一个无符号整数size_t。 #include <stdio.h>int main() {const char*str1 "abcdef";const…

Linux基础软件-selinux库文件swap

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 Linux进阶部分又分了很多小的部分,我们刚讲完了Linux日常运维。讲的那些东西都算是系统自带的&#xff0c;但是Linux作为一个…

LVGL 控件之圆弧(lv_arc)

目录 一、圆弧部件1、部件组成2、lv_art_t3、圆弧部件角度设置4、圆弧部件旋转设置5、圆弧的模式选择6、圆弧部件的变化率设置7、移除旋钮8、事件9、获取/设置信息相关的 API 二、例程 一、圆弧部件 1、部件组成 圆弧&#xff08;lv_arc&#xff09;部件由三个部分组成&#…

学习之SQL语言之DDL

查询 查询所有数据 SHOW DATABASES&#xff1b; 查询当前数据库 SELECT DATABASE(); 创建 CREATE DATABASE IF NOT EXISTS 数据库名&#xff1b; 删除 DROP DATABASE IF EXISTS 数据库名&#xff1b; 使用 USE 数据库名&#xff1b; 查询当前数据库所有表 SHOW TABLES; 查…

优化大型语言模型微调:MoLA层级专家分配策略

人工智能咨询培训老师叶梓 转载标明出处 大模型&#xff08;LLMs&#xff09;的微调过程中&#xff0c;计算资源的需求巨大&#xff0c;这促使研究者们探索参数高效微调&#xff08;PEFT&#xff09;技术。低秩适应&#xff08;LoRA&#xff09;和专家混合模型&#xff08;MoE…

超分 Real-ESRGAN 使用笔记

效果图 目录 依赖项: 视频推理入口: 图片推理入口文件: RealESRGAN_x4plus 12g显存不够 RealESRGAN_x4plus_anime_6B 的效果 树枝之间产生了蒙版 RealESRNet_x4plus 有点模糊 2022年开源的 GitHub - xinntao/Real-ESRGAN: Real-ESRGAN aims at developing Practical…

操作系统 --王道计算机考研--学习笔记

文章目录 前言第一章 引言1.1 什么是操作系统&#xff1f;1 操作系统作为虚拟机2 操作系统作为资源管理者3 为上层提供服务-- 系统调用 2.操作系统特征与发展分类2.1 操作系统特征1.并发2.共享3.虚拟4.异步 2.2 操作系统发展和分类 3.操作系统的的运行机制和中断异常、系统调用…

vue脚手架的创建

一、安装node环境 切换阿里云镜像 npm config set registry https://registry.npm.taobao.org 2、全局安装vue-cli和webpack 已经安装过node.js之后和淘宝镜像的话&#xff0c;vue的运行环境基本上就搭建好了&#xff0c;只需再安装全局的webpack&#xff08;命令行&#…

【大模型理论篇】RoPE旋转位置编码底层数学原理分析

1. 位置编码对于NLP模型的作用 位置编码&#xff08;Positional Encoding&#xff09;在大模型&#xff08;例如Transformer架构&#xff09;中起到了非常重要的作用。没有位置编码的信息&#xff0c;模型会丧失序列的顺序信息&#xff0c;导致模型退化成一个简单的“词…

物品租赁​​​​​​​|基于SprinBoot+vue的物品租赁​​​​​​​系统(源码+数据库+文档)

物品租赁系统 基于SprinBootvue的物品租赁系统 一、前言 二、系统设计 三、系统功能设计 5.1 系统功能模块 5.2 管理员功能模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大…

【单片机原理及应用】实验:数码管的中断控制

目录 一、实验目的 二、实验内容 三、实验步骤 四、记录与处理 五、思考 六、成果文件提取链接 一、实验目的 掌握外部中断的工作原理&#xff0c;学习中断编程与程序调试方法。 二、实验内容 【参照图表】 &#xff08;1&#xff09;创建一个包含80C51固件&#xff0c;采用…