wordpress 缓存清理/深圳优化公司样高粱seo
目录
1 为什么使用 CNN 处理图像
2 CNN 的整体结构
2.1 Convolution
2.2 Colorful image
3 Convolution v.s. Fully Connected
4 Max Pooling
5 Flatten
6 CNN in Keras
原视频:李宏毅 2020:Convolutional Neural Network
1 为什么使用 CNN 处理图像
李宏毅老师提出了以下三点理由。
① Some patterns are much smaller than the whole image.
通常来讲,图片的一些样式(pattern)远比整张图片小,从而使一个神经元不需要观察整张图片就能够发现某个样式(pattern),这样做还能减少网络中的参数。
比如,可以让一个神经元专门充当鸟嘴检测器(beak detector),它只需要关注这张图片中是否出现了鸟嘴这一样式(pattern),而不需要关注整张图片中的所有样式(pattern)。
② The same patterns appear in different regions.
在不同的图片中可能存在相同的样式(pattern),但是这些样式(pattern)可能出现在图片中的不同位置。在 CNN 中,将会使用同一神经元来检测相同的样式,避免参数的冗余。
比如,针对鸟嘴这一样式(pattern),CNN 不会专门拿两个神经元来分别检测 “左上角的鸟嘴” 和 “中间的鸟嘴”,而是复用同一神经元。
③ Subsampling the pixels will not change the object.
取一张图片像素的子集可能并不会影响整张图片的内容。这样做能减小图片的大小,从而减少网络中的参数。
比如,去除这张图片中的奇数行和奇数列,图片变为原始图片的 1/4,但这并不影响我们获取图片中的内容。
2 CNN 的整体结构
CNN 的整体结构如下图所示,其中 Convolution 和 Max Pooling 结构可以叠加多次:
CNN 各部分的性质(property):
- Convolution 实现上一节提到的 ①② 功能
- Max Pooling 实现上一节提到的 ③ 功能
2.1 Convolution
本节将具体介绍 Convolution 模块是干啥的。
假设这里有一张非常简单的黑白图片,大小为 6×6 个像素,1 表示黑色,0 表示白色。同时,提出一个新的概念叫 “过滤器”(filter)。假设这里只有两个过滤器(filter),均为 3×3 的矩阵。
过滤器(filter)的个数不限,不同的过滤器(filter)将被用于检测图片中的不同样式(pattern),实现了上一小节中提到的 ① 号功能。
为了检测图片中的样式(pattern),这两个过滤器(filter)将会分别和图片进行一个称为卷积(convolution)的操作。下面这个动图演示得非常直观(图源:卷积层 | 鲁老师):
具体来说,就是过滤器(filter)会逐行逐列扫描整张图片。被扫描到的图片区域将会和过滤器(filter)进行逐元素相乘再相加,如下图所示:
接着,过滤器(filter)会移动一个步长(stride),和下一个被扫描到的图片区域进行卷积操作。假设步长(stride)为 1,则有:
假设步长(stride)为 2,则有:
显然,你发现过滤器扫描不到图片的一些边缘位置,因此人们提出可以为图片 “加边”,也就是加一圈 0,然后再做卷积操作。
这里我们就假设步长(stride)为 1,把所有卷积操作做完,结果如下:
众所周知,向量点积的结果值越大,代表两个向量越相似。在卷积结果中,左上角和左下角的结果值最大。追溯到原始图片,左上角和左下角的图片确实和过滤器(filter)的结构类似。而过滤器(filter)自身的数值代表一种样式,因此可以认为图片的左上角和左下角存在该过滤器(filter)代表的样式(pattern),实现了上一小节中提到的 ② 号功能。
类似地,我们做第二个过滤器(filter)和图片的卷积操作:
图片和两个过滤器(filter)分别得到两个卷积结果,被统称为 “Feature Map”,这里的卷积结果均为 4×4 的图片。
卷积结果的大小取决于图片大小、步长大小和过滤器大小。
2.2 Colorful image
在 2.1 节,我们讨论的是简单的黑白照片,每一个像素点由一个数值组成。
对于彩色照片,每一个像素点由三个数值组成,因此过滤器(filter)不再是一个二维向量,而是升级成了一个三维向量。这个第三维被称为 “通道”(channel)。
3 Convolution v.s. Fully Connected
请不要认为卷积(Convolution)是一个与全连接(Fully Connected)毫无关系的、新鲜的操作,它其实就是全连接(Fully Connected)的一个简化版。下图是两者的比较:
这里过滤器(filter)中的数值等价于全连接(Fully Connected)中的黑线,即充当一个权重的作用。换句话说,它们就是网络中的参数(parameter),是在模型训练中学习而来的。而绿框中的圆圈都代表的是一个神经元。
下面具体来看如何将 CNN 中的卷积(Convolution)操作理解为简化版的全连接。
对于全连接(Fully Connected),每个神经元等于所有输入的加权求和;而对于卷积(Convolution),每个神经元只等于部分输入的加权求和。比如,对于第一个神经元,它只需要关注 1、2、3、7、8、9、13、14、15 号输入。这样的部分连接能够减少网络中的参数!
再来看第二个神经元,由于它是和第一个神经元同属于一个过滤器(filter)卷积得到的结果,因此它连接 2、3、4、8、9、10、14、15、16 号输入的参数和第一个神经元是对应相同的。在图中,李宏毅老师用相同的颜色表示具有相同参数的连接。这样的设定又能够进一步减少网络中的参数!
4 Max Pooling
Max Pooling 模块主要实现了 CNN 的 ③ 号功能,即缩小原始图片的大小。比如,在通过卷积(Convolution)模块后我们得到以下结果:
为了缩小原始图片的大小,Max Pooling 操作可能是在一个 2×2 的范围内取其中的最大值,操作结果如下图最右侧所示:
我们最后得到的新图片将比原始图片小,同时新图片的通道数(channel)等于过滤器(filter)的个数。
5 Flatten
Flatten 模块所做的事,就是把新图片的皮展开,即把每个通道的值挨个挨个地排开,最后送入 FFN 中,如下图所示:
6 CNN in Keras
这一页介绍了每个函数参数的含义:
这一页介绍了每个过滤器(filter)含有的参数个数:
9 是因为 3×3,225 是因为 25×3×3,因为第一个 Max Pooling 后的新图片有 25 个通道(channel),因此相应地,第二个 Convolution 中的过滤器(filter)也应该有 25 个通道(channel)。
介于篇幅过长,将于下一篇介绍 CNN 的有趣应用。
相关文章:

CNN:Convolutional Neural Network(上)
目录 1 为什么使用 CNN 处理图像 2 CNN 的整体结构 2.1 Convolution 2.2 Colorful image 3 Convolution v.s. Fully Connected 4 Max Pooling 5 Flatten 6 CNN in Keras 原视频:李宏毅 2020:Convolutional Neural Network 1 为什么使用…...

将Android应用修改为鸿蒙应用的工作
将Android应用修改为鸿蒙(HarmonyOS)应用需要进行一系列主要的工作。以下是在进行这一转换过程中可能需要进行的主要工作,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.项目…...

03 Strategy策略
抽丝剥茧设计模式 之 Strategy策略 - 更多内容请见 目录 文章目录 一、Strategy策略二、Comparable和Comparator源码分析使用案例Arrays.sort源码Collections.sort源码Comparable源码Comparator源码 一、Strategy策略 策略模式是一种设计模式,它定义了一系列的算法…...

Python实现分位数回归模型(quantreg算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 分位数回归是简单的回归,就像普通的最小二乘法一样,但不是最小化平方误差的总和…...

【ROS2简单例程】基于python的发布订阅实现
1、自定义消息类型Student 1.1 创建base_interfaces_demo包 1.2 创建Student.msg文件 string name int32 age float64 height 1.2 在cmakeLists.txt中增加如下语句 #增加自定义消息类型的依赖 find_package(rosidl_default_generators REQUIRED) # 为接口文件生成源代码 ro…...

【期末考试】数据库综合复习宝典
目录 第一章 数据库系统概述 第二章 关系代数 第四章 关系数据库理论 第五章 数据库设计 第六章 数据库管理系统 第八章 事务管理 第一章 数据库系统概述 1.1三级模式 ①外模式:它为特定的应用程序或用户群体提供了一个数据视图,这个视图是独立于…...

OpenHarmony南向之LCD显示屏
OpenHarmony南向之LCD显示屏 概述 LCD(Liquid Crystal Display)驱动,通过对显示器上下电、初始化显示器驱动IC(Integrated Circuit)内部寄存器等操作,使其可以正常工作。 HDF Display驱动模型 LCD器件驱…...

核心笔记-短篇
接口管理平台:yapi 对象拷贝:Spring Bean 提供的 BeanUtils;hutool-core 提供的 BeanUtil 获得用户设备的信息:导入 UserAgentUtils 依赖;创建 UserAgent 对象使用 加密工具:DigestUtils,Spring Core 提供,静态方法:md5DigestAsHex(byte[]) 客户端编程工具包:HttpCli…...

系统学习Python——警告信息的控制模块warnings:为新版本的依赖关系更新代码
分类目录:《系统学习Python》总目录 在默认情况下,主要针对Python开发者(而不是Python应用程序的最终用户)的警告类别,会被忽略。 值得注意的是,这个“默认忽略”的列表包含DeprecationWarning(…...

爬虫的基本原理
基本原理 可以把网页与网页之间的链接关系比作节点中的连线,爬虫可以根据网页中的关系获取后续的网页,当整个网站涉及的页面全部被爬虫访问到后,网站的数据就被访问下来了。 1.爬虫概述 简单点讲,爬虫就是获取网页并提取和保存信…...

MySQL核心SQL
一.结构化查询语言 SQL是结构化查询语言(Structure Query Language),它是关系型数据库的通用语言。 SQL 主要可以划分为以下 3 个类别: DDL(Data Definition Languages)语句 数据定义语言,这…...

关于 setData 同步异步的问题
小程序官方文档中的回答解释: 所以大概意思就是: 1.setData在逻辑层的操作是同步,因此this.data中的相关数据会立即更新,比如下面的例子: const a 1 this.setData({b: a ? a : , }) console.log(that.data.b) // 1 2. setData在视图层的操作是异步,…...

Centos创建一个Python虚拟环境
在 CentOS 上创建一个 Python 虚拟环境,可以使用 virtualenv 工具。以下是创建和激活虚拟环境的基本步骤: 1.安装virtualenv 如果还没有安装 virtualenv,可以使用以下命令安装: sudo yum install python3-virtualenv请注意&…...

怎么使用好爬虫IP代理?爬虫代理IP有哪些使用技巧?
在互联网时代,爬虫技术被广泛应用于数据采集和处理。然而,在使用爬虫技术的过程中,经常会遇到IP被封禁的问题,这给数据采集工作带来了很大的困扰。因此,使用爬虫IP代理成为了解决这个问题的有效方法。本文将介绍如何使…...

C#,字符串匹配算法(模式搜索)Z算法的源代码与数据可视化
Z算法也是模式搜索(Pattern Search Algorithm)的常用算法。 本文代码的运算效果: 一、Z 算法 线性时间模式搜索算法的Z算法,在线性时间内查找文本中模式的所有出现。 假设文本长度为 n,模式长度为 m,那么…...

强化学习actor-critic
...

使用推测解码 (Speculative Decoding) 使 Whisper 实现 2 倍的推理加速
Open AI 推出的 Whisper 是一个通用语音转录模型,在各种基准和音频条件下都取得了非常棒的结果。最新的 large-v3 模型登顶了 OpenASR 排行榜,被评为最佳的开源英语语音转录模型。该模型在 Common Voice 15 数据集的 58 种语言中也展现出了强大的多语言性…...

pi gpio 内存映射
树霉pi gpio内存映射 #include <stdio.h> #include <fcntl.h> #include <sys/mman.h> #include <unistd.h> #include <stdlib.h>#define BCM2835_PERI_BASE 0x20000000 #define GPIO_BASE (BCM2835_PERI_BASE 0x200000) #define PAGE_SIZE…...

[NAND Flash 6.2] NAND 初始化常用命令:复位 (Reset) 和 Read ID 和 Read UID 操作和代码实现
依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< 把下文中的字母和数字用`包起来, 中文不变。 全文 4400 字,主要内容 复位的目的和作用? NAND Reset 种类:FFh, FCh, FAh, FDh 区别 Reset 操作步骤 和…...

Multimodal Prototypical Networks for Few-shot Learning
tcGAN is provided with an embedding ϕ T \phi_T ϕT() of the textual description 辅助信息 作者未提供代码...

软件测试|Python requests库的安装和使用指南
简介 requests库是Python中一款流行的HTTP请求库,用于简化HTTP请求的发送和处理,也是我们在使用Python做接口自动化测试时,最常用的第三方库。本文将介绍如何安装和使用requests库,以及一些常见的用例示例。 安装requests库 首…...

HarmonyOS应用开发学习笔记 应用上下文Context 获取文件夹路径
1、 HarmoryOS Ability页面的生命周期 2、 Component自定义组件 3、HarmonyOS 应用开发学习笔记 ets组件生命周期 4、HarmonyOS 应用开发学习笔记 ets组件样式定义 Styles装饰器:定义组件重用样式 Extend装饰器:定义扩展组件样式 5、HarmonyOS 应用开发…...

http状态码对照表
状态码含义100客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。…...

金三银四-JVM核心知识高频面试题
又要快到一年一度的金三银四,开始复习啦~! 每天一点点。。 目录 一、JVM中的垃圾收集器有哪些,它们的工作原理是什么? 二、JVM中的类加载器有哪些,它们各自的作用是什么? 三、JVM中垃圾回收的…...

【GitHub项目推荐--谷歌大神又一开源代码调试神器】【转载】
如果调试是 Debug 的必经之路,那么编程应该将它考虑在内。今天我就和大家分享一个代码调试神器 - Cyberbrain。 Cyberbrain是一个免费开源的 Python 代码调试解决方案,它可视化程序执行以及每个变量的变化方式,让程序员免受调试之苦。主要具有…...

Ubuntu pip换源
在 Ubuntu 上使用 pip 更改软件包的下载源可以通过修改 pip.conf 文件来完成。 首先打开终端(Terminal)。 输入以下命令创建或编辑 pip.conf 文件: sudo nano /etc/pip.conf如果提示需要管理员密码,则输入密码并按 Enter 键确认。…...

解锁前端新潜能:如何使用 Rust 锈化前端工具链
前言 近年来,Rust的受欢迎程度不断上升。首先,在操作系统领域,Rust 已成为 Linux 内核官方认可的开发语言之一,Windows 也宣布将使用 Rust 来重写内核,并重写部分驱动程序。此外,国内手机厂商 Vivo 也宣布…...

vite前端工具链,为开发提供极速响应
一、概念 Vite是一个高性能的分布式智能合约平台。它使用了一种名为“异步架构”的设计,能够支持高吞吐量和低延迟的交易处理。Vite采用了基于DAG(有向无环图)的账本结构,可以实现并行处理多个交易,并且具有快速确认的…...

linux系统nginx做负载均衡
负载均衡 作用upstream配置负载均衡算法配置分类热备轮询加权轮询ip_hash 负载均衡配置状态参数nginx配置7层协议及4层协议七层协议做负载均衡四层协议做负载均衡 会话保持ip_hashsticky_cookie_insertjvm_route 作用 负载均衡(Load Balance,简称 LB&am…...

Tensor Core的一些概念理解
英伟达的GPU产品架构发展如下图,Tensor Core是从2017年的Volta架构开始演变的针对AI模型大量乘加运算的特殊处理单元。本文主要梳理一些关于Tensor Core的一些基础概念知识。 什么是混合精度? 混合精度在底层硬件算子层面,使用半精度…...