网课-cnn

2023-11-18

图像识别中遇到的问题可能有图片特征的纬度过高,1000*1000像素的图片,特征维度是1000*1000*3,如果你要输入3百万的数据量就意味着特征向量的维度高达三百万,也许有1000个隐藏单元,而所有的权值组成的矩阵W[1],如果使用标准的全连接网络,这个矩阵的大小将是1000*3百万,也就是30亿个参数。带来的问题:巨大的内存需求+很容易会过拟合,除非你可以提供非常多的样本数据。为了能处理大图,我们引出卷积运算。

使用边缘检测作为入门,看到卷积是如何运算的

Padding(填充)

卷积过程,图像是n*n,过滤器是f*f,那最后的输出结果是(n-f+1)*(n-f+1),可以发现,图像在越来越小可能会缩小到1*1,为了让你的图像不会在每次边缘检测

图像角落或者边缘的像素点在输出中采用较,相当于丢掉了图像边缘的位置的许多信息

为了解决上述问题,一是输出减小,图像每过一层就会缩小;二是图像边缘信息丢失

解决:在图像边缘填充一层,默认值是0,如果p是填充的数量,当周围填充一层,那么,p=1,因为我们只填充了一个像素点,输出就变成了(n+2p-f+1)*(n+2p-f+1)

至于填充多少像素,通常有两个选择,分别叫做valid卷积,和 same卷积

valid卷积:no padding 不填充

same卷积:意味着填充后,你的输出大小与输入大小是一样的。n+2p-f+1=n 用这个公式求解p,p是填充p个像素点
p=(f-1)/2, 在计算机视觉中,通常,甚至一般都是f是奇数,(奇数维的过滤器)

为什么要奇数维的过滤器:一是可以对称填充图像,二是可以找到中心像素点,便于指出过滤器的位置

卷积步长(strided convolutions)

卷积中的步长是另一个构建卷积神经网络的基本操作

f*f的卷积核,卷积n*n的图像,padding填充是p个像素点,步长是s。

最后的输出是(n+2p-f)/s+1 * (n+2p-f)/s+1 ,如果商不是整数,就向下取整

池化层

除了卷积层,卷积网络也经常使用池化层来缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性,我们来看一下。

先举一个池化层的例子,然后我们再讨论池化层的必要性。假如输入是一个4×4矩阵,用到的池化类型是最大池化(max pooling)。执行最大池化的树池是一个2×2矩阵。执行过程非常简单,把4×4的输入拆分成不同的区域,我把这个区域用不同颜色来标记。对于2×2的输出,输出的每个元素都是其对应颜色区域中的最大元素值。

CNN卷积后输出size的计算

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网课-cnn 的相关文章

  • Qt中SQLite3的增、删、改、查操作

    QT sqlite3 先说一下QT自带数据库sqlite3和另外用sqlite3插件的区别 他们的功能是一样的 但是代码就不一样了 QT对数据库具有完善的支持 不需要加任何其他插件就可以直接使用 但是如果你要是加了sqlite3插件 调用数
  • 解决: Message: invalid selector: Compound class names not permitted报错的问题

    对于出现消息 无效的选择器 不允许使用复合类名的问题 该页面解析 原始代码 self driver find element by class name s btn btn ok click 问题 代码出现如下清空 Traceback mo
  • Java Swing基础(层次结构,组件,布局管理)

    Swing基础层次结构 图形环境和图形对象 坐标 GUI组件的左上角坐标默认为 0 0 从左上角到右下角 水平坐标x和垂直坐标y增加 坐标的单位是像素 Graphics对象 专门管理图形环境 Graphics类是一个抽象类 抽象类Graph
  • 前端调试知识, 各种调试姿势

    在日常开发过程中 如果我们的程序出问题了 要找出是哪里导致的问题的时候 往往会遇到一个变量在10多20多个地方被改变了 然后找不到时哪一次的改变导致的异常 笨的方法也有 就是每一个有可能改到的地方都加上一个console log 通过log

随机推荐

  • 揭示网络通信的秘密:协议与套接字编程之旅

    文章目录 探索网络编程的魔法世界 网络编程 网络编程的基本概念 网络通信协议 套接字编程 网络编程的实际应用 总结 个人主页 程序员 小侯 CSDN新晋作者 欢迎 点赞 评论 收藏 收录专栏 Java知识介绍 文章内容 网络编程 适用于 J
  • STM32的CAN标识符过滤器超简单理解

    1 STM32中CAN1与CAN2的过滤器组 103系列14个过滤器组 104 107系列28个过滤器组 CAN FilterInitStructure CAN FilterNumber 0 0 13 2 每组过滤器组有两种工作模式 标识符
  • VC++ FTP文件下传(断点续传)

    include
  • Android OpenCV环境搭建与Demo展示

    title Android OpenCV环境搭建与Demo展示 tags Opencv date 2020 2 02 00 53 00 最终效果 视频展示 https www bilibili com video av86393649 An
  • (一)树莓派Pico用micropython实现LED闪烁

    方法一 这段代码使用MicroPython来控制Pico开发板上的板载led 引脚为25 GPIO 25 来控制LED的闪烁 如果需要控制外接led模块 请确保将LED正确连接到Pico开发板的引脚 并根据需要进行相应的调整 首先 通过 i
  • Docker : docker: Error response from daemon: user specified IP address is supported on user defined

    1 美图 2 背景 想运行docker容器的时候 指定ip 但是发现出问题 base lcc lcc docker run d name es2 ip 172 16 12 12 p 9200 9200
  • 如何将你的iOS应用成功上架App Store(图文详解)

    上架基本需求资料 1 苹果开发者账号 如还没账号先申请 苹果开发者账号申请教程 2 开发好的APP 通过本篇教程 可以学习到ios证书申请和打包ipa上传到appstoreconnect apple com进行TestFlight测试然后提
  • “北漂”小夫妻新婚后的理财计划

    北漂 小夫妻新婚后的理财计划 提要 经过多年的努力打拼 1976 年出生的姜帆终于在京城站稳脚跟 做上了一家大公司的业务主管 今年 十一 国庆节还 和谈了多年马拉松恋爱的女友举行了婚礼 面对婚后新形势下几个令他烦恼的家庭理财目标 他该如何应
  • VNC VIEWER 连接闪退不断重新连接的解决办法

    1 vnc viewer官网下载standalone 2 vnc链接 3 连接后不断闪退 又不断重连 根本无法进行任何操作或操作困难 解决办法 1 2 点击properties 3 点击options general 调低画质
  • C语言好题解析(一)

    目录 选择题1 选择题2 选择题3 选择题4 编程题一 选择题1 执行下面程序 正确的输出是 int x 5 y 7 void swap int z z x x y y z int main int x 3 y 8 swap printf
  • 在Linux上面进行远程git的数据拉取与上传

    1 安装git sudo apt get update sudo apt get install git 2 查看本地git信息 git version 3 在当前路径下创建一个本地git仓库 sudo git init 4 上传当前的文件
  • TIM输出比较

    以下内容均来自 bilibili江协科技 OC输出比较 输出比较可以通过CNT与CCR寄存器值的关系 来对输出电平进行置1 置0或翻转的操作 用于输出一定频率和占空比的PWM波形 每个高级定时器和通用定时器都拥有4个输出比较通道 高级定时器
  • 正负号 substr java_实战LeetCode 系列(一) (题目+解析)

    1 反转字符串 编写一个函数 其作用是将输入的字符串反转过来 示例 1 输入 hello 输出 olleh 示例 2 输入 A man a plan a canal Panama 输出 amanaP lanac a nalp a nam A
  • 8.性能测试流程及策略

    8 性能测试流程及策略 一 准备工作 1 系统基础功能验证 性能测试在什么阶段适合实施 切入点很重要 一般而言 只有在系统基础功能测试验证完成 系统区域稳定的情况下 才会进行性能测试 否则性能测试是无意义的 2 测试团队组建 根据项目的具体
  • 高防cdn有什么优势?

    CDN即内容分发网络 通过在网络上各处放置节点服务器 来协助网站进行缓存 当用户访问网站时 就近分配节点为用户提供服务 从而加快访问速度 提升用户体验 但是普通的cdn并没有防御能力 那么这时就需要用到高防cdn来应对网络上的攻击 下面为大
  • Matlab:从文本文件中读取数值数据到矩阵

    Matlab 从文本文件中读取数值数据到矩阵 在Matlab中 我们常常需要将保存在文本文件中的数值数据读取到程序中 以便进行数据处理和分析 本文将介绍如何使用Matlab将文本文件中的数值数据导入到矩阵中 首先 我们需要创建一个文本文件
  • pandas-新手使用教程

    Pandas 是 Python 语言的一个扩展程序库 用于数据分析 下面将针对该模块进行讲解 一 导入模块 导入pandas模块 import pandas as pd 二 导入数据 常见用法 创建数据框 pd DataFrame 从CSV
  • C# --- Case Study

    C Case Study C Mongo数据库事务的应用 C 如何解析Json文件并注入MongoDB C MongoDB如何安全的替换Collection C netcore MVC项目框架结构 with MongoDB
  • 积分获取方式的两点优化建议

    积分获取是积分体系运营中的一个重要环节 也是针对用户运营的一个开端 如果积分获取做的不到位 那么商家就没法对用户的行为进行引导 也就没法实现商家的预期目标 整个积分体系就相当于白忙活了 这一点商家要特别的注意 在积分体系运营中 商家对于积分
  • 网课-cnn

    图像识别中遇到的问题可能有图片特征的纬度过高 1000 1000像素的图片 特征维度是1000 1000 3 如果你要输入3百万的数据量就意味着特征向量的维度高达三百万 也许有1000个隐藏单元 而所有的权值组成的矩阵W 1 如果使用标准的