当前位置: 首页 > news >正文

吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)4.11

目录

  • 第四门课 卷积神经网络(Convolutional Neural Networks)
    • 第四周 特殊应用:人脸识别和神经风格转换(Special applications: Face recognition &Neural style transfer)
      • 4.11 一维到三维推广(1D and 3D generalizations of models)

第四门课 卷积神经网络(Convolutional Neural Networks)

第四周 特殊应用:人脸识别和神经风格转换(Special applications: Face recognition &Neural style transfer)

4.11 一维到三维推广(1D and 3D generalizations of models)

你已经学习了许多关于卷积神经网络(ConvNets)的知识,从卷积神经网络框架,到如何使用它进行图像识别、对象检测、人脸识别与神经网络转换。即使我们大部分讨论的图像数据,某种意义上而言都是 2D 数据,考虑到图像如此普遍,许多你所掌握的思想不仅局限于 2D 图像,甚至可以延伸至 1D,乃至 3D 数据。

在这里插入图片描述
让我们回头看看在第一周课程中你所学习关于 2D 卷积,你可能会输入一个 14×14 的图像,并使用一个 5×5 的过滤器进行卷积,接下来你看到了 14×14 图像是如何与 5×5 的过滤器进行卷积的,通过这个操作你会得到 10×10 的输出。

在这里插入图片描述
如果你使用了多通道,比如 14×14×3,那么相匹配的过滤器可能是 5×5×3,如果你使用了多重过滤,比如 16,最终你得到的是 10×10×16。

在这里插入图片描述
事实证明早期想法也同样可以用于 1 维数据,举个例子,左边是一个 EKG 信号,或者说是心电图,当你在你的胸部放置一个电极,电极透过胸部测量心跳带来的微弱电流,正因为心脏跳动,产生的微弱电波能被一组电极测量,这就是人心跳产生的 EKG,每一个峰值都对应着一次心跳。

如果你想使用 EKG 信号,比如医学诊断,那么你将处理 1 维数据,因为 EKG 数据是由时间序列对应的每个瞬间的电压组成,这次不是一个 14×14 的尺寸输入,你可能只有一个14 尺寸输入,在这种情况下你可能需要使用一个 1 维过滤进行卷积,你只需要一个 1×5 的过滤器,而不是一个 5×5 的。

在这里插入图片描述
二维数据的卷积是将同一个 5×5 特征检测器应用于图像中不同的位置(编号 1 所示),你最后会得到 10×10 的输出结果。1 维过滤器可以取代你的 5 维过滤器(编号 2 所示),可在不同的位置中应用类似的方法(编号 3,4,5 所示)。

在这里插入图片描述
当你对这个 1 维信号使用卷积,你将发现一个 14 维的数据与 5 维数据进行卷积,并产生一个 10 维输出。

在这里插入图片描述
再一次如果你使用多通道,在这种场景下可能会获得一个 14×1 的通道。如果你使用一个 EKG,就是 5×1 的,如果你有 16 个过滤器,可能你最后会获得一个 10×16 的数据,这可能会是你卷积网络中的某一层。

在这里插入图片描述
对于卷积网络的下一层,如果输入一个 10×16 数据,你也可以使用一个 5 维过滤器进行卷积,这需要 16 个通道进行匹配,如果你有 32 个过滤器,另一层的输出结果就是 6×32,如果你使用了 32 个过滤器的话。

在这里插入图片描述
对于 2D 数据而言,当你处理 10×10×16 的数据时也是类似的,你可以使用 5×5×16 进行卷积,其中两个通道数 16 要相匹配,你将得到一个 6×6 的输出,如果你用的是 32 过滤器,输出结果就是 6×6×32,这也是 32 的来源。

所有这些方法也可以应用于 1 维数据,你可以在不同的位置使用相同的特征检测器,比如说,为了区分 EKG 信号中的心跳的差异,你可以在不同的时间轴位置使用同样的特征来检测心跳。

所以卷积网络同样可以被用于 1D 数据,对于许多 1 维数据应用,你实际上会使用递归神经网络进行处理,这个网络你会在下一个课程中学到,但是有些人依旧愿意尝试使用卷积网络解决这些问题。

下一门课将讨论序列模型,包括递归神经网络、LCM 与其他类似模型。我们将探讨使用1D 卷积网络的优缺点,对比于其它专门为序列数据而精心设计的模型。

这也是 2D 向 1D 的进化,对于 3D 数据来说如何呢?什么是 3D 数据?与 1D 数列或数字矩阵不同,你现在有了一个 3D 块,一个 3D 输入数据。以你做 CT 扫描为例,这是一种使用 X 光照射,然后输出身体的 3D 模型,CT 扫描实现的是它可以获取你身体不同片段(图片信息)。

在这里插入图片描述

当你进行 CT 扫描时,与我现在做的事情一样,你可以看到人体躯干的不同切片(整理者注:图中所示为人体躯干中不同层的切片,附 CT 扫描示意图,图片源于互联网),本质上这个数据是 3 维的。

在这里插入图片描述
一种对这份数据的理解方式是,假设你的数据现在具备一定长度、宽度与高度,其中每一个切片都与躯干的切片对应。

如果你想要在 3D 扫描或 CT 扫描中应用卷积网络进行特征识别,你也可以从第一张幻灯片(Convolutions in 2D and 1D)里得到想法,并将其应用到 3D 卷积中。为了简单起见,如果你有一个 3D 对象,比如说是 14×14×14,这也是输入 CT 扫描的宽度与深度(后两个 14)。再次提醒,正如图像不是必须以矩形呈现,3D 对象也不是一定是一个完美立方体,所以长和宽可以不一样,同样 CT 扫描结果的长宽高也可以是不一致的。为了简化讨论,我仅使用14×14×14 为例。

在这里插入图片描述
如果你现在使用 5×5×5 过滤器进行卷积,你的过滤器现在也是 3D 的,这将会给你一个10×10×10 的结果输出,技术上来说你也可以再×1(编号 1 所示),如果这有一个 1 的通道。这仅仅是一个 3D 模块,但是你的数据可以有不同数目的通道,那种情况下也是乘 1(编号2 所示),因为通道的数目必须与过滤器匹配。如果你使用 16 过滤器处理 5×5×5×1,接下来的输出将是 10×10×10×16,这将成为你 3D 数据卷积网络上的一层。

在这里插入图片描述
如果下一层卷积使用 5×5×5×16 维度的过滤器再次卷积,通道数目也与往常一样匹配,如果你有 32 个过滤器,操作也与之前相同,最终你得到一个 6×6×6×32 的输出。某种程度上 3D 数据也可以使用 3D 卷积网络学习,这些过滤器实现的功能正是通过你的 3D 数据进行特征检测。CT 医疗扫描是 3D 数据的一个实例,另一个数据处理的例子是你可以将电影中随时间变化的不同视频切片看作是 3D 数据,你可以将这个技术用于检测动作及人物行为。

总而言之这就是 1D、2D 及 3D 数据处理,图像数据无处不在,以至于大多数卷积网络都是基于图像上的 2D 数据,但我希望其他模型同样会对你有帮助。

这是本周最后一次视频,也是最后一次关于卷积神经网络的课程,你已经学习了许多关于卷积网络的知识,我希望你能够在未来工作中发现许多思想对你有所裨益,祝贺你完成了这些视频学习,我希望你能喜欢这周的课后练习,接下来关于顺序模型的课程我们不见不散。

相关文章:

吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)4.11

目录 第四门课 卷积神经网络(Convolutional Neural Networks)第四周 特殊应用:人脸识别和神经风格转换(Special applications: Face recognition &Neural style transfer)4.11 一维到三维推广(1D and 3…...

小游戏开发,出现了降本增效的技术?

中国经济下行大周期下,要说受影响程度较小的,非游戏行业莫属了。 小游戏的快速增长主要得益于其便捷的使用方式和轻量化的特点。小游戏通常无需下载,即点即玩,适合在碎片时间内进行娱乐,这种特性吸引了大量用户。此外…...

(4)Java 编程基础概览:Java中的输入输出操作与代码注释详解

目录 1. 控制台输出操作2. 控制台输入操作代码解释:3. 代码注释3.1 单行注释3.2 多行注释3.3 文档注释3.4 注释的重要性3.5 注意事项在Java编程语言中,输入与输出(I/O)操作扮演着举足轻重的角色。它们允许程序与外界环境进行数据的交互,无论是从用户处获取信息,还是向用户…...

Git使用指南

目录 工作机制基本框架:流程图 基本命令分支操作远程仓库本地仓库关联远程仓库 参考 工作机制 基本框架: Workspace:开发者工作区,也就是你当前写代码的目录,它一般保持的是最新仓库代码。Index / Stage:暂存区,最早…...

【linux】再谈网络基础(一)

1. 再谈 "协议" 协议是一种 "约定",在读写数据时, 都是按 "字符串" 的方式来发送接收的. 但是这里我们会遇到一些问题: 如何确保从网上读取的数据是否是完整的,区分缓冲区中的由不同客户端发来的数据 2. 网…...

Unknown at rule @tailwindscss(unknownAtRules)

一、前言 整合 tailwindcss 后,发现指令提示警告 Unknown at rule tailwindscss(unknownAtRules),其实是 vscode 无法识别 tailwindscss 指令,不影响使用,但是对于我这种有编程洁癖的人来说,有点膈应。 二、解决方案…...

IDEA - 快速去除 mapper.xml 黄色警告线和背景色----简化版

1.打开设置 2.去掉黄色警告线设置 3.去掉背景色设置 4.示范图...

高级 SQL 技巧详解

文章目录 高级 SQL 技巧详解一、引言二、窗口函数1、窗口函数的使用1.1、RANK() 函数示例1.2、常用窗口函数 三、公共表表达式(CTE)2、CTE 的使用2.1、CTE 示例 四、索引优化3、索引的创建与优化3.1、创建索引3.2、索引类型与注意事项 五、事务管理4、事…...

移除元素(java)

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作: 更改…...

【Linux】shell脚本:检测文件是否存在,如存在则删除

通常&#xff0c;可以使用[ -f <file> ]来检查文件是否存在&#xff0c;使用rm <file>来删除文件。 以下是一个示例脚本&#xff0c;用于检测一个文件是否存在&#xff0c;并在存在时删除它&#xff1a; #!/bin/bash # 定义要检查的文件路径 file_path"/…...

Git代码托管(三)可视化工具操作(1)

常见的可视化操作工具有 一、官方网页 如码云、gitlab&#xff0c;自带了常见的git操作。 以码云为例&#xff1a; 1、创建分支&#xff1a; 进入分支目录&#xff0c;点击 新建分支 按钮&#xff0c; 在弹出框中输入新分支名称&#xff0c;点击确定即可一键创建分支&…...

How to use ffmpeg to convert video format from .webm to .mp4

The .mp4 container format doesn’t support the VP8 codec, which is commonly used in .webm files. MP4 containers typically use the H.264 codec for video and AAC for audio. You’ll need to re-encode the video using the H.264 codec and re-encode the audio us…...

Halcon 从XML中读取配置参数

1、XML示例 以下是一个XML配置文件的示例,该文件包含了AOI(自动光学检测)算法的环境参数和相机逻辑参数: <AOI><!--AOI算法参数 20241106--><Env><!--环境参数--><Param name="GPUName" value="NVIDIA GeForce RTX 405…...

hive表内外表之间切换

你想把内表和外表在元数据上达到切换的目的&#xff0c;这个操作有个前提&#xff0c;在apache版本源码上来讲是支持的&#xff01;&#xff01;&#xff01;&#xff01;但是&#xff01;&#xff01;&#xff01;&#xff01;注意哦&#xff01;默认情况下apache版本的源码中…...

电子邮件营销软件哪个好?

在数字化时代&#xff0c;电子邮件营销仍然是企业与客户沟通的核心策略之一。无论是推广新产品、发送新闻简报&#xff0c;还是进行客户关系管理&#xff0c;选择合适的电子邮件营销软件至关重要。面对市场上众多的选择&#xff0c;企业如何才能找到最适合自己的工具呢&#xf…...

OpenAI大事记;GPT到ChatGPT参数量进化

目录 OpenAI大事记 GPT到ChatGPT参数量进化 OpenAI大事记 GPT到ChatGPT参数量进化 ChatGPT是从初代 GPT逐渐演变而来的。在进化的过程中,GPT系列模型的参数数量呈指数级增长,从初代GPT的1.17亿个参数,到GPT-2的15 亿个参数,再到 GPT-3的1750 亿个参数。模型越来越大,训练…...

springboot020基于Java的免税商品优选购物商城设计与实现

&#x1f345;点赞收藏关注 → 文档最下方联系方式领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345; 一 、设计说明 1…...

代码随想录之字符串刷题总结

目录 1.反转字符串 2.反转字符串II 3.替换数字 4.翻转字符串里面的单词 5.右旋&&左旋字符串 1.反转字符串 题目描述&#xff1a; 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外…...

PS-基础学习(常用快捷键1.2-1.3)

常用快捷键 钢笔操作功能Alt 选择工具使用选择工具放到锚点上&#xff0c;按下alt&#xff0c;然后放到调整曲度的上面&#xff0c;可以修改一边的曲度可以修改出不平滑的转折点选择工具放到锚点上进行拖拽可以移动锚点的位置ctrl 选择工具使用选择工具&#xff0c;按住ctrl…...

qt QListView详解

1、概述 QListView 是 Qt 框架中的一个视图类&#xff0c;用于展示模型中的数据。它基于 QAbstractItemView&#xff0c;支持多种视图模式&#xff0c;如列表视图&#xff08;List View&#xff09;、图标视图&#xff08;Icon View&#xff09;等。QListView 是模型/视图框架…...

287. 寻找重复数

目录 题目我的解法解法 题目 给定一个包含 n 1 个整数的数组 nums &#xff0c;其数字都在 [1, n] 范围内&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 &#xff0c;返回 这个重复的数 。 你设计的解决方案…...

2024年最受欢迎的编程语言

No.1 JavaScript / TypeScript 自从创建第一个网站以使其动态化以来&#xff0c;JavaScript多年来一直受到欢迎。话虽如此&#xff0c;目前JavaScript是整个市场上需求量最大的编程语言。此外&#xff0c;TypeScript&#xff08;一种具有类型安全性的JavaScript超集&#xff0…...

C++ 线程初始化编译报错

这是一个很简单的开启一个线程, 用于演示一个线程和生命周期之间的错误,但是还没有把这个错误暴露出来, 就遇见了一个编译问题. 线程中执行指定逻辑的代码 线程的执行方法, 声明写在了ThreadRun.h 实现写在 ThreadRun.cpp中. class ThreadRun { public: void func(); };void T…...

[MySQL]视图

视图是什么 视图&#xff08;View&#xff09;是一种虚拟存在的表。视图中的数据&#xff0c;来自定义视图的查询语句中&#xff0c;使用的表&#xff0c;并且是在使用视图时动态生成的。 简单讲&#xff0c;视图只保存了查询的SQL逻辑&#xff0c;不保存查询结果。所以我们在…...

Windows Server2012 R2搭建NFS服务器

正文共&#xff1a;1024 字 23 图&#xff0c;预估阅读时间&#xff1a;1 分钟 在测试vCenter的集群操作时&#xff0c;出现了共享vSAN错误的问题&#xff0c;导致无法继续。我也只好先创建一个共享NFS&#xff08;Network File System&#xff0c;网络文件系统&#xff09;存储…...

SQL题:使用hive查询各类型专利top 10申请人,以及对应的专利申请数

一、题目以及介绍 题目介绍&#xff1a; 1、表名&#xff1a;t_patent_detail &#xff08;专利明细表&#xff09; 2、表字段&#xff1a;专利号(patent_id)、专利名称(patent_name)、专利类型(patent_type)、申请时间(aplly_date)、授权时间(authorize_date)、申请人(apply_…...

使用sealos部署的集群在部署metrics-server时日志x509

1、下载文件并进行部署 wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml2、进行部署 kubectl apply -f components.yaml3、发现问题 pod容器已经启动但是健康检查没有通过 kubectl get pod -n kube-system metrics-server…...

WPF怎么通过RestSharp向后端发请求

1.下载RestSharpNuGet包 2.请求类和响应类 public class ApiRequest {/// <summary>/// 请求地址/// </summary>public string Route { get; set; }/// <summary>/// 请求方式/// </summary>public Method Method { get; set; }/// <summary>//…...

promise的用法以及注意事项,看了这篇你就会了

一&#xff0c;为什么要使用promise,ta能解决那些问题&#xff1f; Promise 是异步编程的一种解决方案&#xff1a; 从语法上讲&#xff0c;Promise是一个对象&#xff0c;从它可以获取异步操作的消息&#xff1b;从本意上讲&#xff0c;它是承诺&#xff0c;承诺它过一段时间…...

vue3如何使用pinia设置全局状态,附常见面试题

1. stores/index.ts 文件 在 index.ts 中创建 store 实例并封装了注册逻辑&#xff0c;这样可以方便地将整个 Pinia 实例注册到 Vue 应用中。代码如下&#xff1a; import type { App } from vue import { createPinia } from piniaconst store createPinia()// 全局注册 st…...