- 博客(71)
- 收藏
- 关注
原创 零基础-动手学深度学习-13.11. 全卷积网络
如中所介绍的那样,语义分割是对图像中的每个像素分类。全卷积网络(fully convolutional network,FCN)采用卷积神经网络实现了的变换 (与我们之前在图像分类或目标检测部分介绍的卷积神经网络不同,:这是通过在中引入的转置卷积(transposed convolution)实现的。因此,输出的类别预测与输入图像在像素级别上具有一一对应关系:通道维的输出即该位置对应像素的类别预测。
2025-10-22 13:00:39
946
原创 零基础-动手学深度学习-13.10. 转置卷积
到目前为止,我们所见到的卷积神经网络层,例如卷积层()和汇聚层(),通常会(高和宽)。然而如果输入和输出图像的空间维度相同,在以的语义分割中将会很方便(如果是用传统卷积是没法进行像素的分类的)。例如,输出像素所处的通道维可以保有输入像素在同一位置上的分类结果。为了实现这一点,尤其是在空间维度被卷积神经网络层缩小后,我们可以使用另一种类型的卷积神经网络层,它可以。本节将介绍转置卷积), 用于逆转下采样导致的空间尺寸减小。
2025-09-20 12:12:53
580
原创 零基础-动手学深度学习-13.9 语义分割和数据集
我们通过继承高级API提供的Dataset类,自定义了一个语义分割数据集类。通过实现函数,我们可以任意访问数据集中索引为idx的输入图像及其每个像素的类别索引。由于数据集中有些图像的尺寸可能小于随机裁剪所指定的输出尺寸,这些样本可以通过自定义的filter函数移除掉。此外,我们还定义了函数,从而对输入图像的RGB三个通道的值分别做标准化。#@save"""一个用于加载VOC数据集的自定义数据集"""#只能用cropsize 而不能用resize 不然标号拉开就是不知道是什么东西了。
2025-09-04 18:52:02
643
原创 零基础-动手学深度学习-13.8. 区域卷积神经网络(R-CNN)系列&YOLO(you only live once)
除了中描述的单发多框检测之外, 区域卷积神经网络(region-based CNN或regions with CNN features,R-CNN) ()也是将深度模型应用于目标检测的开创性工作之一。本节将介绍R-CNN及其一系列改进方法:快速的R-CNN(Fast R-CNN) ()、更快的R-CNN(Faster R-CNN) ()和掩码R-CNN(Mask R-CNN) (限于篇幅,我们只着重介绍这些模型的设计思路。用神经网络做锚框的奠基性工作之一。
2025-09-04 17:41:59
1146
原创 零基础-动手学深度学习-13.7. 单发多框检测(SSD)
目标检测有两种类型的损失。第一种有关锚框类别的损失:我们可以简单地复用之前图像分类问题里一直使用的交叉熵损失函数来计算;第二种有关正类锚框偏移量的损失:预测偏移量是一个回归问题。但是,对于这个回归问题,我们在这里不使用3.1.3节中描述的平方损失,而是使用L1范数损失,即预测值和真实值之差的绝对值。掩码变量bbox_masks令负类锚框和填充锚框不参与损失的计算。最后,我们将锚框类别和偏移量的损失相加,以获得模型的最终损失函数。我们可以沿用准确率评价分类结果。由于偏移量使用了L1范数损失,我们使用。
2025-09-03 18:57:22
1200
原创 零基础-动手学深度学习-13.5. 多尺度目标检测
在 13.4节中,我们以输入图像的每个像素为中心,生成了多个锚框。 基本而言,这些锚框代表了图像不同区域的样本。 然而,如果为每个像素都生成的锚框,我们最终可能会得到太多需要计算的锚框。 想象一个567*728的输入图像,如果以每个像素为中心生成五个形状不同的锚框,就需要在图像上标记和预测超过20-0万个锚框(561*728*5)。减少图像上的锚框数量并不困难。 比如,我们可以在输入图像中均匀采样一小部分像素,并以它们为中心生成锚框。 此外,在不同尺度下,我们可以生成不同数量和不同大小的锚框。 直观地说,比
2025-09-03 15:55:50
675
原创 零基础-动手学深度学习-13.4. 锚框(anchor box)
目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整区域边界从而更准确地预测目标的真实边界框不同的模型使用的区域采样方法可能不同。。这些边界框被称为锚框(anchor box)我们将在中设计一个基于锚框的目标检测模型。首先,让我们修改输出精度,以获得更简洁的输出。
2025-09-02 19:03:14
707
原创 零基础-动手学深度学习-13.3. 目标检测和边界框&13.6. 目标检测数据集
前面的章节(例如)介绍了各种图像分类模型。在图像分类任务中,我们假设图像中只有,我们。然而,很多时候图像里有,我们不仅想知道它们的类别,还想。在计算机视觉里,我们将这类任务称为目标检测(object detection)或目标识别目标检测在多个领域中被广泛使用。例如,在无人驾驶里,我们需要通过识别拍摄到的视频图像里的车辆、行人、道路和障碍物的位置来规划行进线路。机器人也常通过该任务来检测感兴趣的目标。安防领域则需要检测异常目标,如歹徒或者炸弹。接下来的几节将介绍几种用于目标检测的深度学习方法。
2025-09-02 14:48:18
558
原创 零基础-动手学深度学习-13.2微调
我们使用在ImageNet数据集上预训练的ResNet-18作为源模型。在这里,我们指定以自动下载预训练的模型参数。如果首次使用此模型,则需要连接互联网才能下载。预训练的源模型实例包含许多特征层和一个输出层fc。此划分的主要目的是促进对除输出层以外所有层的模型参数进行微调。下面给出了源模型的成员变量fc。#输出:Linear(in_features=512, out_features=1000, bias=True)在ResNet的全局平均汇聚层后,全连接层转换为ImageNet数据集的1000个类输出。
2025-09-02 14:14:21
963
原创 零基础-力扣100题从易到难详解(1-5题)
本文总结了三个经典算法题的解法思路:1.两数之和问题,介绍了暴力枚举(O(n^2))、哈希表(O(n))和双指针三种解法,重点分析了哈希表的最优实现;2.有效括号匹配问题,详细讲解了基于栈的解决方案(O(n))及其变体,包括哨兵优化和字符串替换技巧;3.合并有序链表问题,演示了使用哑结点的迭代方法。文章通过代码示例和复杂度分析,清晰展示了每个问题的多种解法及其优劣比较,特别强调了哈希表和栈结构在解决特定问题时的优势。
2025-08-27 22:33:18
326
原创 零基础-动手学深度学习-13.1. 图像增广
其实把BERT看完理论上来讲李沐老师的主线任务NLP就完成了,但是课本里还是分出来一章来专门讲了CV方向的一些基础操作,那还是来完善一下。本章开头,我们将介绍两种可以改进模型泛化的方法,即图像增广和微调,并将它们应用于图像分类。由于深度神经网络可以有效地表示多个层次的图像,因此这种分层表示已成功用于各种计算机视觉任务,例如目标检测语义分割(semantic segmentation)和样式迁移秉承计算机视觉中利用分层表示的关键思想,我们将从物体检测的主要组件和技术开始,继而展示如何使用。
2025-08-25 23:07:59
877
原创 零基础-动手学深度学习-12.6. 多GPU的简洁实现&12.7. 参数服务器
每个新模型的并行计算都从零开始实现是无趣的。此外,优化同步工具以获得高性能也是有好处的。下面我们将展示如何使用深度学习框架的高级API来实现这一点。数学和算法与中的相同。本节的代码至少需要两个GPU来运行。
2025-08-18 02:30:29
1078
原创 零基础-动手学深度学习-12.5. (单机)多GPU训练
到目前为止,我们讨论了如何在CPU和GPU上高效地训练模型,同时在中展示了深度学习框架如何在CPU和GPU之间自动地并行化计算和通信,还在中展示了如何使用nvidia-smi命令列出计算机上所有可用的GPU。但是我们没有讨论如何真正实现深度学习训练的并行化。是否一种方法,以某种方式分割数据到多个设备上,并使其能够正常工作呢?本节将详细介绍如何从零开始并行地训练网络, 这里需要运用小批量随机梯度下降算法(详见后面还将介绍如何使用高级API并行训练网络(请参阅。
2025-08-17 23:10:49
622
原创 零基础-动手学深度学习-12. 计算性能(前四章)
本章也都是些计组的基本知识,全部转载自李沐老师的动手学深度学习书的内容。在深度学习中,数据集和模型通常都很大,导致计算量也会很大。因此,计算的性能非常重要。本章将集中讨论影响计算性能的主要因素:命令式编程、符号编程、 异步计算、自动并行和多GPU计算。通过学习本章,对于前几章中实现的那些模型,可以进一步提高它们的计算性能。例如,我们可以在不影响准确性的前提下,大大减少训练时间。
2025-08-17 18:43:35
965
原创 零基础-动手学深度学习-10.7. Transformer
中比较了卷积神经网络(CNN)、循环神经网络(RNN)和自注意力(self-attention)。值得注意的是,自注意力同时具有并行计算和最短的最大路径长度这两个优势。因此,使用自注意力来设计深度架构是很有吸引力的。对比之前仍然依赖循环神经网络实现输入表示的自注意力模型 (),尽管Transformer最初是应用于在文本数据上的序列到序列学习,但现在已经推广到各种现代的深度学习中,例如语言、视觉、语音和强化学习领域。
2025-08-16 14:51:26
1666
原创 零基础-动手学深度学习-10.6. 自注意力和位置编码
在深度学习中,经常使用卷积神经网络(CNN)或循环神经网络(RNN)对序列进行编码。想象一下,有了注意力机制之后,我们将词元序列输入注意力池化中, 以便同一组词元同时充当查询、键和值。具体来说,每个查询都会关注所有的键-值对并生成一个注意力输出。由于查询、键和值来自同一组输入,因此被称为自注意力), 也被称为内部注意力本节将使用自注意力进行序列编码,以及如何使用序列的顺序作为补充信息。
2025-08-16 12:19:10
531
原创 零基础-动手学深度学习-10.5. 多头注意力
多头注意力融合了来自于多个注意力汇聚的不同知识,这些知识的不同来源于相同的查询、键和值的不同的子空间表示。基于适当的张量操作,可以实现多头注意力的并行计算。类将使用下面定义的两个转置函数。下面使用键和值相同的小例子来测试我们编写的。为了能够使多个头并行计算, 上面的。把“多头”拆出来并拉成二维,便于。多头注意力输出的形状是(
2025-08-15 22:15:12
301
原创 零基础-动手学深度学习-10.4. Bahdanau 注意力
下面看看如何定义Bahdanau注意力,实现循环神经网络编码器-解码器。其实,我们只需重新定义解码器即可。为了更方便地显示学习的注意力权重, 以下类定义了带有注意力机制解码器的基本接口。#@save"""带有注意力机制解码器的基本接口"""@property#@property 是 Python 的一个内置装饰器,作用是把一个类的方法变成“只读属性”,调用时不需要加括号,用起来像访问普通实例变量一样。def attention_weights(self):#多加了一个这个接下来,让我们在接下来的。
2025-08-15 13:09:26
754
原创 零基础-动手学深度学习-10.3. 注意力评分函数
我们直接看关于这个维度的压缩,其实一开始hiddens里面相当于是一个很长的隐藏层,它的存在就是储存隐藏单元的值,但是在wv的张量乘法中它变成了一个score,相当于在原本的三维张量里b1,q1,k1=score111,位置本身就是其大小了,就相当于只有一个变量没必要在找一个列表或者数组来储存了。类, 其中查询、键和值的形状为(批量大小,步数或词元序列长度,特征大小), 实际输出为(2,1,20)、(2,10,2)和(2,10,4)。注意力汇聚输出的形状为(批量大小,查询的步数,值的维度)。
2025-08-14 18:20:36
1105
原创 零基础-动手学深度学习-10.2. 注意力汇聚:Nadaraya-Watson 核回归
基于(10.2.7)中的 带参数的注意力汇聚,使用小批量矩阵乘法, 定义Nadaraya-Watson核回归的带参数版本为:w干的事情就是控制你的高斯核让自己不那么平滑,你看上面那个不带参数就是到处都很平滑# queries和attention_weights的形状为(查询个数,“键-值”对个数)# values的形状为(查询个数,“键-值”对个数)#和上面的算法是差不多的,无非是写了一个类且多用了一个w。
2025-08-11 09:55:24
1042
原创 零基础-动手学深度学习-10.1. 注意力提示
灵长类动物的视觉系统接受了大量的感官输入, 这些感官输入远远超过了大脑能够完全处理的程度。然而,并非所有刺激的影响都是相等的。意识的聚集和专注使灵长类动物能够在复杂的视觉环境中将注意力引向感兴趣的物体,例如猎物和天敌。只关注一小部分信息的能力对进化更加有意义,使人类得以生存和成功。自19世纪以来,科学家们一直致力于研究认知神经科学领域的注意力。本章的很多章节将涉及到一些研究。首先回顾一个经典注意力框架,解释如何在视觉场景中展开注意力。受此框架中的注意力提示。
2025-08-09 19:37:01
373
原创 零基础-动手学深度学习-9.5. 机器翻译与数据集
语言模型是自然语言处理的关键, 而机器翻译是语言模型最成功的基准测试。因为机器翻译正是将输入序列转换成输出序列的序列转换模型(sequence transduction)的核心问题。序列转换模型在各类现代人工智能应用中发挥着至关重要的作用, 因此我们将其做为本章剩余部分和的重点。为此,本节将介绍机器翻译问题及其后文需要使用的数据集。机器翻译(machine translation)指的是 将序列从一种语言自动翻译成另一种语言。
2025-08-08 02:05:37
672
原创 零基础-动手学深度学习-9.4. 双向循环神经网络
在序列学习中,我们以往假设的目标是: 在给定观测的情况下 (例如,在时间序列的上下文中或在语言模型的上下文中), 对下一个输出进行建模。虽然这是一个典型情景,但不是唯一的。还可能发生什么其它的情况呢?我们考虑以下三个在文本序列中填空的任务。我___。我___饿了。我___饿了,我可以吃半头猪。根据可获得的信息量,我们可以用不同的词填空, 如“很高兴”(“happy”)、“不”(“not”)和“非常”(“very”)。很明显,。
2025-08-08 01:48:29
420
原创 零基础-动手学深度学习-9.3. 深度循环神经网络
感觉这个网络的话其实在上一章看LSTM的时候就能感觉到不一样的事情了,你明显能感觉到诶我引入一个关于Ct的一个状态就好像是在往另外一个方向延展,那么你就会想如果往那边延展特别特别多会怎么样呢?没错这就是深度的循环网络了。
2025-08-07 20:49:45
436
原创 零基础-动手学深度学习-9.2. 长短期记忆网络(LSTM)及代码实现
在初始化函数中, 长短期记忆网络的隐状态需要返回一个额外的记忆元, 因此这里初始化是有两个zero了,单元的值为0,形状为(批量大小,隐藏单元数)。因此,我们得到以下的状态初始化。实际模型的定义与我们前面讨论的一样: 提供三个门和一个额外的记忆元。请注意,只有隐状态才会传递到输出层, 而记忆元Ct不直接参与输出计算。
2025-08-07 20:26:02
856
原创 零基础-动手学深度学习-9.1. 门控循环单元(GRU)及代码实现
现在我们将定义隐状态的初始化函数。与8.5节中定义的函数一样, 此函数返回一个形状为(批量大小,隐藏单元个数)的张量,张量的值全部为零。#这里还是返回一个tuple 忘了为啥来着 回去看来看因为lstm需要另一个参数嘻嘻现在我们准备定义门控循环单元模型, 模型的架构与基本的循环神经网络单元是相同的, 只是权重更新公式更为复杂。@是按元素乘法的意思H, = statefor X in inputs:#对每个序列的时间长度。
2025-08-07 15:58:44
1687
原创 零基础-动手学深度学习-8.7. 通过时间反向传播
这一章我觉得放在这里确实是有点后面了,像鱼书这种只讲了MLP的都早早把这章过完了,backward可以说是一直在反复讲反复提的东西,究竟是干什么的我们就来看看吧。
2025-08-06 17:25:26
438
原创 零基础-动手学深度学习-8.6. 循环神经网络的简洁实现
高级API提供了循环神经网络的实现。我们构造一个具有256个隐藏单元的单隐藏层的循环神经网络层rnn_layer。事实上,我们还没有讨论多层循环神经网络的意义(这将在9.3节中介绍)。现在仅需要将多层理解为一层循环神经网络的输出被用作下一层循环神经网络的输入就足够了。我们使用张量来初始化隐状态,它的形状是(隐藏层数,批量大小,隐藏单元数)。输出:torch.Size([1, 32, 256])通过一个隐状态和一个输入,我们就可以用更新后的隐状态计算输出。需要强调的是,rnn_layer的“输出”(Y。
2025-08-05 12:06:52
260
原创 零基础-动手学深度学习-8.5. 循环神经网络的从零开始实现
这样,存储在隐状态中的序列的历史信息 可以在一个迭代周期内流经相邻的子序列。然而,在任何一点隐状态的计算, 都依赖于同一迭代周期中前面所有的小批量数据, 这使得梯度计算变得复杂。
2025-08-05 11:32:26
878
原创 零基础-动手学深度学习-8.4. 循环神经网络
最后,让我们讨论如何度量语言模型的质量, 这将在后续部分中用于评估基于循环神经网络的模型。一个好的语言模型能够用高度准确的词元来预测我们接下来会看到什么。考虑一下由不同的语言模型给出的对“It is raining …这两个拼接分别产生(3,5)形状和形状(5,4)的矩阵。再将这两个拼接的矩阵相乘, 我们得到与上面相同形状的输出矩阵。“It is raining banana tree”(香蕉树下雨了);“It is raining outside”(外面下雨了);现在,我们沿列(轴1)拼接矩阵。
2025-08-03 12:56:00
288
原创 零基础-动手学深度学习-8.3. 语言模型和数据集
为了解决原本太多冗余的序列对的问题,深度学习的分割又有可能覆盖不了所有序列对,因此核心思想在于随机起始去取T长的序列,下面这个代码挺刁的,可以看看写的非常简洁。
2025-08-02 02:02:39
798
原创 零基础-动手学深度学习-8.2. 文本预处理
对于序列数据处理问题,我们在中 评估了所需的统计工具和预测时面临的挑战。这样的数据存在许多种形式,文本是最常见例子之一。例如,一篇文章可以被简单地看作一串单词序列,甚至是一串字符序列。本节中,我们将解析文本的常见预处理步骤。这些步骤通常包括:将文本作为字符串加载到内存中。将字符串拆分为词元(如单词和字符)。建立一个词表,将拆分的词元映射到数字索引。将文本转换为数字索引序列,方便模型操作。
2025-07-30 03:13:11
647
原创 零基础-动手学深度学习-8.1 序列模型
随着时间推移,人们对一件事的看法会发生很大的变化,心理学家对这些现象取了名字:锚定(anchoring)效应:基于其他人的意见做出评价。享乐适应(hedonic adaption):人们迅速接受并且适应一种更好或者更坏的情况作为新的常态。例如,在看了很多好电影之后,人们会强烈期望下部电影会更好。因此,在许多精彩的电影被看过之后,即使是一部普通的也可能被认为是糟糕的。季节性(seasonality):少有观众喜欢在八月看圣诞老人的电影。有时,电影会由于导演或演员在制作中的不当行为变得不受欢迎。
2025-07-30 02:19:31
690
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅