自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 零基础-力扣100题从易到难详解(持续更新1-10题)

本文总结了三个经典算法题的解法思路:1.两数之和问题,介绍了暴力枚举(O(n^2))、哈希表(O(n))和双指针三种解法,重点分析了哈希表的最优实现;2.有效括号匹配问题,详细讲解了基于栈的解决方案(O(n))及其变体,包括哨兵优化和字符串替换技巧;3.合并有序链表问题,演示了使用哑结点的迭代方法。文章通过代码示例和复杂度分析,清晰展示了每个问题的多种解法及其优劣比较,特别强调了哈希表和栈结构在解决特定问题时的优势。

2025-08-27 22:33:18 244

原创 零基础-动手学深度学习-13.1. 图像增广

其实把BERT看完理论上来讲李沐老师的主线任务NLP就完成了,但是课本里还是分出来一章来专门讲了CV方向的一些基础操作,那还是来完善一下。本章开头,我们将介绍两种可以改进模型泛化的方法,即图像增广和微调,并将它们应用于图像分类。由于深度神经网络可以有效地表示多个层次的图像,因此这种分层表示已成功用于各种计算机视觉任务,例如目标检测语义分割(semantic segmentation)和样式迁移秉承计算机视觉中利用分层表示的关键思想,我们将从物体检测的主要组件和技术开始,继而展示如何使用。

2025-08-25 23:07:59 823

原创 零基础-动手学深度学习-12.6. 多GPU的简洁实现&12.7. 参数服务器

每个新模型的并行计算都从零开始实现是无趣的。此外,优化同步工具以获得高性能也是有好处的。下面我们将展示如何使用深度学习框架的高级API来实现这一点。数学和算法与中的相同。本节的代码至少需要两个GPU来运行。

2025-08-18 02:30:29 990

原创 零基础-动手学深度学习-12.5. (单机)多GPU训练

到目前为止,我们讨论了如何在CPU和GPU上高效地训练模型,同时在中展示了深度学习框架如何在CPU和GPU之间自动地并行化计算和通信,还在中展示了如何使用nvidia-smi命令列出计算机上所有可用的GPU。但是我们没有讨论如何真正实现深度学习训练的并行化。是否一种方法,以某种方式分割数据到多个设备上,并使其能够正常工作呢?本节将详细介绍如何从零开始并行地训练网络, 这里需要运用小批量随机梯度下降算法(详见后面还将介绍如何使用高级API并行训练网络(请参阅。

2025-08-17 23:10:49 594

原创 零基础-动手学深度学习-12. 计算性能(前四章)

本章也都是些计组的基本知识,全部转载自李沐老师的动手学深度学习书的内容。在深度学习中,数据集和模型通常都很大,导致计算量也会很大。因此,计算的性能非常重要。本章将集中讨论影响计算性能的主要因素:命令式编程、符号编程、 异步计算、自动并行和多GPU计算。通过学习本章,对于前几章中实现的那些模型,可以进一步提高它们的计算性能。例如,我们可以在不影响准确性的前提下,大大减少训练时间。

2025-08-17 18:43:35 870

原创 零基础-动手学深度学习-11. 优化算法

在进行凸分析之前,我们需要定义凸集(convex sets)和凸函数。

2025-08-17 01:29:09 655

原创 零基础-动手学深度学习-10.7. Transformer

中比较了卷积神经网络(CNN)、循环神经网络(RNN)和自注意力(self-attention)。值得注意的是,自注意力同时具有并行计算和最短的最大路径长度这两个优势。因此,使用自注意力来设计深度架构是很有吸引力的。对比之前仍然依赖循环神经网络实现输入表示的自注意力模型 (),尽管Transformer最初是应用于在文本数据上的序列到序列学习,但现在已经推广到各种现代的深度学习中,例如语言、视觉、语音和强化学习领域。

2025-08-16 14:51:26 1627

原创 零基础-动手学深度学习-10.6. 自注意力和位置编码

在深度学习中,经常使用卷积神经网络(CNN)或循环神经网络(RNN)对序列进行编码。想象一下,有了注意力机制之后,我们将词元序列输入注意力池化中, 以便同一组词元同时充当查询、键和值。具体来说,每个查询都会关注所有的键-值对并生成一个注意力输出。由于查询、键和值来自同一组输入,因此被称为自注意力), 也被称为内部注意力本节将使用自注意力进行序列编码,以及如何使用序列的顺序作为补充信息。

2025-08-16 12:19:10 477

原创 零基础-动手学深度学习-10.5. 多头注意力

多头注意力融合了来自于多个注意力汇聚的不同知识,这些知识的不同来源于相同的查询、键和值的不同的子空间表示。基于适当的张量操作,可以实现多头注意力的并行计算。类将使用下面定义的两个转置函数。下面使用键和值相同的小例子来测试我们编写的。为了能够使多个头并行计算, 上面的。把“多头”拆出来并拉成二维,便于。多头注意力输出的形状是(

2025-08-15 22:15:12 248

原创 零基础-动手学深度学习-10.4. Bahdanau 注意力

下面看看如何定义Bahdanau注意力,实现循环神经网络编码器-解码器。其实,我们只需重新定义解码器即可。为了更方便地显示学习的注意力权重, 以下类定义了带有注意力机制解码器的基本接口。#@save"""带有注意力机制解码器的基本接口"""@property#@property 是 Python 的一个内置装饰器,作用是把一个类的方法变成“只读属性”,调用时不需要加括号,用起来像访问普通实例变量一样。def attention_weights(self):#多加了一个这个接下来,让我们在接下来的。

2025-08-15 13:09:26 725

原创 零基础-动手学深度学习-10.3. 注意力评分函数

我们直接看关于这个维度的压缩,其实一开始hiddens里面相当于是一个很长的隐藏层,它的存在就是储存隐藏单元的值,但是在wv的张量乘法中它变成了一个score,相当于在原本的三维张量里b1,q1,k1=score111,位置本身就是其大小了,就相当于只有一个变量没必要在找一个列表或者数组来储存了。类, 其中查询、键和值的形状为(批量大小,步数或词元序列长度,特征大小), 实际输出为(2,1,20)、(2,10,2)和(2,10,4)。注意力汇聚输出的形状为(批量大小,查询的步数,值的维度)。

2025-08-14 18:20:36 1010

原创 零基础-动手学深度学习-10.2. 注意力汇聚:Nadaraya-Watson 核回归

基于(10.2.7)中的 带参数的注意力汇聚,使用小批量矩阵乘法, 定义Nadaraya-Watson核回归的带参数版本为:w干的事情就是控制你的高斯核让自己不那么平滑,你看上面那个不带参数就是到处都很平滑# queries和attention_weights的形状为(查询个数,“键-值”对个数)# values的形状为(查询个数,“键-值”对个数)#和上面的算法是差不多的,无非是写了一个类且多用了一个w。

2025-08-11 09:55:24 974

原创 零基础-动手学深度学习-10.1. 注意力提示

灵长类动物的视觉系统接受了大量的感官输入, 这些感官输入远远超过了大脑能够完全处理的程度。然而,并非所有刺激的影响都是相等的。意识的聚集和专注使灵长类动物能够在复杂的视觉环境中将注意力引向感兴趣的物体,例如猎物和天敌。只关注一小部分信息的能力对进化更加有意义,使人类得以生存和成功。自19世纪以来,科学家们一直致力于研究认知神经科学领域的注意力。本章的很多章节将涉及到一些研究。首先回顾一个经典注意力框架,解释如何在视觉场景中展开注意力。受此框架中的注意力提示。

2025-08-09 19:37:01 352

原创 零基础-动手学深度学习-9.8. 束搜索

里面那个log会给长一点的句子一点好处,k=1就是贪心搜素哦。

2025-08-08 04:50:44 126

原创 零基础-动手学深度学习-9.7. 序列到序列学习(seq2seq)

里。

2025-08-08 04:37:54 845

原创 零基础-动手学深度学习-9.6. 编码器-解码器架构

中间形式比较好学,RNN也是。

2025-08-08 02:46:19 418

原创 零基础-动手学深度学习-9.5. 机器翻译与数据集

语言模型是自然语言处理的关键, 而机器翻译是语言模型最成功的基准测试。因为机器翻译正是将输入序列转换成输出序列的序列转换模型(sequence transduction)的核心问题。序列转换模型在各类现代人工智能应用中发挥着至关重要的作用, 因此我们将其做为本章剩余部分和的重点。为此,本节将介绍机器翻译问题及其后文需要使用的数据集。机器翻译(machine translation)指的是 将序列从一种语言自动翻译成另一种语言。

2025-08-08 02:05:37 635

原创 零基础-动手学深度学习-9.4. 双向循环神经网络

在序列学习中,我们以往假设的目标是: 在给定观测的情况下 (例如,在时间序列的上下文中或在语言模型的上下文中), 对下一个输出进行建模。虽然这是一个典型情景,但不是唯一的。还可能发生什么其它的情况呢?我们考虑以下三个在文本序列中填空的任务。我___。我___饿了。我___饿了,我可以吃半头猪。根据可获得的信息量,我们可以用不同的词填空, 如“很高兴”(“happy”)、“不”(“not”)和“非常”(“very”)。很明显,。

2025-08-08 01:48:29 407

原创 零基础-动手学深度学习-9.3. 深度循环神经网络

感觉这个网络的话其实在上一章看LSTM的时候就能感觉到不一样的事情了,你明显能感觉到诶我引入一个关于Ct的一个状态就好像是在往另外一个方向延展,那么你就会想如果往那边延展特别特别多会怎么样呢?没错这就是深度的循环网络了。

2025-08-07 20:49:45 419

原创 零基础-动手学深度学习-9.2. 长短期记忆网络(LSTM)及代码实现

在初始化函数中, 长短期记忆网络的隐状态需要返回一个额外的记忆元, 因此这里初始化是有两个zero了,单元的值为0,形状为(批量大小,隐藏单元数)。因此,我们得到以下的状态初始化。实际模型的定义与我们前面讨论的一样: 提供三个门和一个额外的记忆元。请注意,只有隐状态才会传递到输出层, 而记忆元Ct不直接参与输出计算。

2025-08-07 20:26:02 811

原创 零基础-动手学深度学习-9.1. 门控循环单元(GRU)及代码实现

现在我们将定义隐状态的初始化函数。与8.5节中定义的函数一样, 此函数返回一个形状为(批量大小,隐藏单元个数)的张量,张量的值全部为零。#这里还是返回一个tuple 忘了为啥来着 回去看来看因为lstm需要另一个参数嘻嘻现在我们准备定义门控循环单元模型, 模型的架构与基本的循环神经网络单元是相同的, 只是权重更新公式更为复杂。@是按元素乘法的意思H, = statefor X in inputs:#对每个序列的时间长度。

2025-08-07 15:58:44 1593

原创 零基础-动手学深度学习-8.7. 通过时间反向传播

这一章我觉得放在这里确实是有点后面了,像鱼书这种只讲了MLP的都早早把这章过完了,backward可以说是一直在反复讲反复提的东西,究竟是干什么的我们就来看看吧。

2025-08-06 17:25:26 427

原创 零基础-动手学深度学习-8.6. 循环神经网络的简洁实现

高级API提供了循环神经网络的实现。我们构造一个具有256个隐藏单元的单隐藏层的循环神经网络层rnn_layer。事实上,我们还没有讨论多层循环神经网络的意义(这将在9.3节中介绍)。现在仅需要将多层理解为一层循环神经网络的输出被用作下一层循环神经网络的输入就足够了。我们使用张量来初始化隐状态,它的形状是(隐藏层数,批量大小,隐藏单元数)。输出:torch.Size([1, 32, 256])通过一个隐状态和一个输入,我们就可以用更新后的隐状态计算输出。需要强调的是,rnn_layer的“输出”(Y。

2025-08-05 12:06:52 249

原创 零基础-动手学深度学习-8.5. 循环神经网络的从零开始实现

这样,存储在隐状态中的序列的历史信息 可以在一个迭代周期内流经相邻的子序列。然而,在任何一点隐状态的计算, 都依赖于同一迭代周期中前面所有的小批量数据, 这使得梯度计算变得复杂。

2025-08-05 11:32:26 840

原创 零基础-动手学深度学习-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 269

原创 零基础-动手学深度学习-8.3. 语言模型和数据集

为了解决原本太多冗余的序列对的问题,深度学习的分割又有可能覆盖不了所有序列对,因此核心思想在于随机起始去取T长的序列,下面这个代码挺刁的,可以看看写的非常简洁。

2025-08-02 02:02:39 770

原创 零基础-动手学深度学习-8.2. 文本预处理

对于序列数据处理问题,我们在中 评估了所需的统计工具和预测时面临的挑战。这样的数据存在许多种形式,文本是最常见例子之一。例如,一篇文章可以被简单地看作一串单词序列,甚至是一串字符序列。本节中,我们将解析文本的常见预处理步骤。这些步骤通常包括:将文本作为字符串加载到内存中。将字符串拆分为词元(如单词和字符)。建立一个词表,将拆分的词元映射到数字索引。将文本转换为数字索引序列,方便模型操作。

2025-07-30 03:13:11 640

原创 零基础-动手学深度学习-8.1 序列模型

随着时间推移,人们对一件事的看法会发生很大的变化,心理学家对这些现象取了名字:锚定(anchoring)效应:基于其他人的意见做出评价。享乐适应(hedonic adaption):人们迅速接受并且适应一种更好或者更坏的情况作为新的常态。例如,在看了很多好电影之后,人们会强烈期望下部电影会更好。因此,在许多精彩的电影被看过之后,即使是一部普通的也可能被认为是糟糕的。季节性(seasonality):少有观众喜欢在八月看圣诞老人的电影。有时,电影会由于导演或演员在制作中的不当行为变得不受欢迎。

2025-07-30 02:19:31 672

原创 零基础-动手学深度学习-8. 循环神经网络(预告)

最重要的是,到目前为止我们默认数据都来自于某种分布, 并且所有样本都是独立同分布的 (independently and identically distributed,i.i.d.)。例如,文章中的单词是按顺序写的,如果顺序被随机地重排,就很难理解文章原始的意思。例如,一个任务可以是继续预测2,4,6,8,10,。同理,我们需要能够处理这些数据的特定模型。换句话说,如果我们拥有一张图像,我们需要有效地利用其像素位置, 假若我们对图像中的像素位置进行重排,就会对图像中内容的推断造成极大的困难。

2025-07-29 23:54:43 180

原创 零基础-动手学深度学习-7.7 稠密连接网络(DenseNet)

ResNet极大地改变了如何参数化深层网络中函数的观点。稠密连接网络(DenseNet)在某种程度上是ResNet的逻辑扩展。让我们先从数学上了解一下。

2025-07-29 23:38:46 742

原创 7.6题外话 Resnet为什么能训练到1000层?(从梯度来看)

2025-07-29 22:06:38 116

原创 零基础-动手学深度学习-7.6. 残差网络(ResNet)

如果卷积神经网络只要你学一种,就学resnet就行了。随着我们设计越来越深的网络,。更重要的是设计网络的能力,在这种网络中,添加层会使网络更具表现力, 为了取得质的突破,我们需要一些数学基础知识。

2025-07-29 21:02:40 1199

原创 零基础-动手学深度学习-7.5. 批量规范化

训练深层神经网络是十分困难的,特别是在较短的时间内使他们收敛更加棘手。本章介绍的batch normalization是可以持续加速深层网络收敛速度的技术,结合后面介绍的残差块可以使得我们能够训练100层以上的网络。

2025-07-29 11:42:08 611

原创 零基础-动手学深度学习-7.4. 含并行连结的网络(GoogLeNet)

在2014年的ImageNet图像识别挑战赛中,一个名叫GoogLeNet)的网络架构大放异彩。GoogLeNet吸收了NiN中串联网络的思想,并在此基础上做了改进。这篇论文的一个重点是解决了什么样大小的卷积核最合适的问题。本文的一个观点是,有时使用不同大小的卷积核组合是有利的。本节将介绍一个稍微简化的GoogLeNet版本:我们省略了一些为稳定训练而添加的特殊特性,现在有了更好的训练方法,这些特性不是必要的。

2025-07-28 19:05:07 514

原创 零基础-动手学深度学习-7.3. 网络中的网络(NiN)

LeNet、AlexNet和VGG都有一个共同的设计模式:通过一系列的卷积层与汇聚层来提取空间结构特征;然后通过全连接层对特征的表征进行处理。AlexNet和VGG对LeNet的改进主要在于如何扩大和加深这两个模块。或者,可以想象在这个过程的早期使用全连接层。然而,如果使用了全连接层,可能会完全放弃表征的空间结构。网络中的网络NiN)提供了一个非常简单的解决方案:在每个像素的通道上分别使用多层感知机?

2025-07-28 02:17:03 318

原创 零基础-动手学深度学习-7.2使用块的网络(VGG)

虽然AlexNet证明深层神经网络卓有成效,但它没有提供一个通用的模板来指导后续的研究人员设计新的网络。在下面的几个章节中,我们将介绍一些常用于设计深层神经网络的启发式概念。

2025-07-28 01:46:27 425

原创 零基础-动手学深度学习-7.1 AlexNet

第七章将介绍现代的卷积神经网络架构,AlexNet、VGG、NiN、GoogLeNet、ResNet和DenseNet:下面一句话我直接照搬过来我觉得非常好:虽然深度神经网络的概念非常简单——将神经网络堆叠在一起。但由于不同的网络架构和超参数选择,这些神经网络的性能会发生很大变化。本章介绍的神经网络是将人类直觉和相关数学见解结合后,经过大量研究试错后的结晶。我们会按时间顺序介绍这些模型,在追寻历史的脉络的同时,帮助培养对该领域发展的直觉。这将有助于研究开发自己的架构。

2025-07-28 01:13:35 1158

原创 零基础-动手学深度学习-6.6 卷积神经网络(LeNet)

通过之前几节,我们学习了构建一个完整卷积神经网络的所需组件。回想一下现在我们已经掌握了卷积层的处理方法,我们可以在图像中保留空间结构。同时,用卷积层代替全连接层的另一个好处是:模型更简洁、所需的参数更少。本节将介绍LeNet,它是最早发布的卷积神经网络之一,于80年代发明的为了识别手写数字,LeCun发表了第一篇通过反向传播成功训练卷积神经网络的研究!

2025-07-27 03:03:36 491

原创 零基础-动手学深度学习-6.5 汇聚层(pooling)池化层

通常当我们处理图像时,我们希望逐渐降低隐藏表示的空间分辨率、聚集信息,这样随着我们在神经网络中层叠的上升,每个神经元对其敏感的感受野(输入)就越大。WHY?因为我们的机器学习任务通常会跟全局图像的问题有关(例如,“图像是否包含一只猫呢?”),所以我们最后一层的神经元应该对整个输入的全局敏感!此外,当检测较底层的特征时(例如中所讨论的边缘),我们通常希望这些特征保持某种程度上的平移不变性。例如,如果我们拍摄黑白之间轮廓清晰的图像X,并将整个图像向右移动一个像素,即,则新图像Z的输出可能大不相同。

2025-07-26 13:02:35 869

原创 零基础-动手学深度学习-6.4. 多输入多输出通道

虽然我们在中描述了构成每个图像的多个通道和多层卷积层。例如彩色图像具有标准的RGB通道来代表红、绿和蓝。但是到目前为止,我们仅展示了单个输入和单个输出通道的简化例子。这使得我们可以将输入、卷积核和输出看作二维张量。但当我们添加通道时,我们的输入和隐藏的表示都变成了三维张量。本节将更深入地研究具有多输入和多输出通道的卷积核,多输入多输出通道可以用来扩展卷积层的模型。

2025-07-26 01:24:22 377

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除