![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习
文章平均质量分 75
緈福的街口
这个作者很懒,什么都没留下…
展开
-
动手学深度学习——循环神经网络的简洁实现(代码详解)
构造一个具有256个隐藏单元的单隐藏层的循环神经网络层rnn_layer# 构造一个具有256个隐藏单元的单隐藏层的循环神经网络层rnn_layer使用张量初始化状态,形状为(隐藏层数,批量大小,隐藏单元数)# 使用张量初始化状态,形状为(隐藏层数,批量大小,隐藏单元数)通过一个隐状态和一个输入,可以用更新后的隐状态计算输出。# 通过一个隐状态和一个输入,可以用更新后的隐状态计算输出。原创 2023-11-18 17:29:57 · 674 阅读 · 0 评论 -
动手学深度学习——循环神经网络的从零开始实现(原理解释+代码详解)
定义init_rnn_state函数在初始化时返回隐状态,该函数的返回是一个张量,张量全用0填充,形状为(批量大小,隐藏单元数)。采样的小批量数据形状为二维张量:(批量大小,时间步数),one_hot函数将其转换为三维张量:(时间步数,批量大小,词表大小)可以看到输出形状是(时间步数x批量大小,词表大小), 而隐状态形状保持不变,即(批量大小,隐藏单元数)。1、对于长度为T的序列,我们在迭代中计算T个时间步上的梯度,在反向传播过程中产生长度为T的矩阵乘法链;例如,隐状态的维数是否保持不变。原创 2023-11-18 16:41:28 · 696 阅读 · 0 评论 -
动手学深度学习——循环神经网络(原理解释与代码详解)
使用简单的代码来说明一下,定义矩阵X、W_xh、H和W_hh,它们的形状分别为(3, 1)、(1, 4)、(3, 4)和(4, 4)。沿列(轴1)进行拼接X和H,沿行(轴0)拼接矩阵W_xh和W_hh,两个拼接分别产生形状(3,5)、(5,4)的矩阵,相乘为(3,4)的矩阵。定义init_rnn_state函数在初始化时返回隐状态,该函数的返回是一个张量,张量全用0填充,形状为(批量大小,隐藏单元数)。可以看到输出形状是(时间步数x批量大小,词表大小), 而隐状态形状保持不变,即(批量大小,隐藏单元数)。原创 2023-11-18 16:36:09 · 2249 阅读 · 0 评论 -
动手学深度学习——语言模型和数据集(代码详解)
在随机采样中,每个样本都是在原始的长序列上任意捕获的子序列。对于语言建模,目标是基于到目前为止我们看到的词元来预测下一个词元, 因此标签是移位了一个词元的原始序列。保证两个相邻的小批量中的子序列在原始序列上也是相邻的。这种策略在基于小批量的迭代过程中保留了拆分的子序列的顺序,因此称为顺序分区。马尔可夫模型是一种描述随机过程的数学模型,它基于马尔可夫性质,即未来的状态只依赖于当前的状态,而与过去的状态无关。,xt表示文本序列在时间步t的观测或标签,语言模型的目标是估计序列的联合概率。原创 2023-11-15 09:57:33 · 214 阅读 · 0 评论 -
动手学深度学习——文本预处理
我们构建一个字典(词表),使得词元映射到从0开始的数字索引中。将所有功能打包到load_corpus_time_machine函数中, 该函数返回corpus(词元索引列表)和vocab(时光机器语料库的词表)。为了对文本进行预处理,我们通常将文本拆分为词元,构建词表将词元字符串映射为数字索引,并将文本数据转换为词元索引以供模型操作。根据每个唯一词元出现的频率分配一个数字索引,语料库不存在的或已删除的任何词元都将映射到一个特定的未知词元“”。建立一个词表,将拆分的词元映射到数字索引。原创 2023-11-15 09:56:30 · 130 阅读 · 0 评论 -
动手学深度学习——序列模型
RNN在处理具有长期依赖关系的序列数据时表现出色,但在面对较长的序列时可能会出现梯度消失或梯度爆炸的问题。隐马尔可夫模型(Hidden Markov Models,HMMs):HMM是一种基于概率的序列模型,在许多序列建模问题中被广泛使用,如语音识别、自然语言处理和生物信息学。注意力机制模型(Attention Mechanism):注意力机制是一种增强序列模型性能的技术,它允许模型根据输入序列中的不同部分自适应地分配不同的关注权重。序列模型是一类机器学习模型,用于处理具有时序关系的数据。原创 2023-11-14 20:24:49 · 294 阅读 · 0 评论 -
论文十问:ResNet(Deep Residual Learning for Image Recognition)
但随着网络深度像堆叠层一样变多,产生了梯度消失/梯度爆炸的问题,通过归一初始化和中间归一层的方法,具有数十层的网络能够开始收敛,以实现具有反向传播的随机梯度下降(SGD)。Kaiming He(何恺明):作为 ResNet 的主要作者之一,他在深度学习领域有着丰富的经验和卓越的贡献,其中论文ResNet的引用量达到了19万+。更深的网络有更高的训练误差和测试误差,更深的网络开始收敛时,退化问题开始暴露:随着网络深度的增加,准确性变得饱和,然后迅速退化。ImageNet 验证的错误率。PASCAL物体检测。原创 2023-11-14 20:13:06 · 453 阅读 · 0 评论 -
动手学深度学习——稠密连接网络DenseNet(原理解释+代码详解)
过渡层可以用来控制模型复杂度,它通过1x1卷积层来减小通道数,并使用步幅为2的平均汇聚层减半高和宽,从而进一步降低模型复杂度。在前向传播中,将每个卷积块的输入和输出在通道维上连结。在每个模块之间,ResNet通过步幅为2的残差块减小高和宽,DenseNet则使用过渡层来减半高和宽,并减半通道数。DenseNet使用4个稠密块,稠密块里的卷积层通道数(即增长率)设为32,所以每个稠密块将增加128个通道。卷积块的通道数控制了输出通道数相对于输入通道数的增长,因此也被称为增长率(growth rate)。原创 2023-11-03 20:50:09 · 1000 阅读 · 0 评论 -
动手学深度学习——残差网络ResNet(原理解释+代码详解)
ResNet的前两层跟之前介绍的GoogLeNet中的一样: 在输出通道数为64、步幅为2的7x7卷积层后,接步幅为2的3x3的最大汇聚层。每个模块有4个卷积层,加上第一个7x7卷积层和最后一个全连接层,共有18层,这种模型通常被称为ResNet-18。现在假设 f* 是我们真正想要找到的函数,如果是 f*∈F,那可以轻而易举的训练得到它。ResNet使用4个由残差块组成的模块,每个模块使用若干个同样输出通道数的残差块。是我们要找的函数,为了使其更近似真正的 f* ,则需要更强的架构F’。原创 2023-11-03 20:49:47 · 6609 阅读 · 0 评论 -
ResNet中文翻译(Deep Residual Learning for Image Recognition)
更深层次的神经网络更难训练。我们提出了一个残差学习框架,以简化比以前使用的网络更深的网络训练。我们明确地将层重新表示为参考层输入的学习残差函数,而不是学习未引用的函数。我们提供了全面的经验证据,表明这些残差网络更容易优化,并且可以通过显着增加的深度来获得准确性。在 ImageNet 数据集上,我们评估深度高达 152 层的残差网络,比 VGG 网络 [41] 深 8 倍,但复杂度仍然较低。这些残差网络的集合在 ImageNet 测试集上实现了 3.57% 的误差。原创 2023-10-25 16:29:48 · 225 阅读 · 0 评论 -
动手学深度学习—批量规范化(代码详解)
在模型训练过程中,批量规范化利用小批量的均值和标准差,不断调整神经网络的中间输出,使整个神经网络各层的中间输出值更加稳定。假设我们的小批量包含m个样本,并且对于每个通道,卷积的输出具有高度p和宽度q。对于全连接层,将批量规范化层置于全连接层中的仿射变换和激活函数之间。对于卷积层,在卷积层之后和非线性激活函数之前应用批量规范化。全连接层和卷积层的批量规范化实现略有不同。从头开始实现一个具有张量的批量规范化层。那么对于卷积层,我们在每个输出通道的m。q个元素上同时执行每个批量规范化。原创 2023-10-25 16:22:56 · 169 阅读 · 0 评论 -
动手学深度学习—含并行连结的网络GoogLeNet(代码详解)
GoogLeNet一共使用9个Inception块和全局平均汇聚层的堆叠来生成其估计值,Inception块之间的最大汇聚层可降低维度。Inception块可以说是“集百家之长”,它由四条并行路径组成,不同的路径提取不同的信息在通道合并层进行合并。GoogLeNet吸收了NiN中串联网络的思想,并在此基础上做了改进,并且获得了不错的效果。将Inception想象成滤波器的组合,不同尺寸的滤波器可以有效识别不同范围的图像细节。在Inception块中,通常调整的超参数是每层输出通道数。原创 2023-10-24 21:14:55 · 456 阅读 · 0 评论 -
动手学深度学习—网络中的网络NiN(代码详解)
LeNet、AlexNet和VGG都有一个共同的设计模式:通过一系列的卷积层与汇聚层来提取空间结构特征;然后通过全连接层对特征的表征进行处理。如果在过程的早期使用全连接层,可能会完全放弃表征的空间结构。而NiN(网络中的网络)提供了一个非常简单的解决方案:在每个像素的通道上分别使用多层感知机。原创 2023-10-24 20:10:16 · 291 阅读 · 0 评论 -
动手学深度学习—使用块的网络VGG(代码详解)
由于会重复用到卷积层、激活函数ReLU和汇聚层,我们将这三个组合成一个块,每次引用这个块来构建网络模型。定义网络块,便于我们重复构建某些网络架构,不仅利于代码编写与阅读也利于后面参数的优化。构建了一个通道数较少的网络,足够用于训练Fashion-MNIST数据集。通过定义VGG块,使得重复的网络结构实现起来更加容易,也利于代码阅读。构建一个高度和宽度为224的单通道数据样本,以观察每个层输出的形状。块的使用导致网络定义的非常简洁。实现VGG-11:使用8个卷积层和3个全连接层。3.汇聚层,如最大汇聚层。原创 2023-10-21 17:46:35 · 624 阅读 · 0 评论 -
动手学深度学习—深度卷积神经网络AlexNet(代码详解)
由斯坦福教授李飞飞小组的研究人员开发,利用谷歌图像搜索对每一类图像进行预筛选,并利用亚马逊众包来标注每张图片的相关类别。其有100万个样本中训练模型,以区分1000个不同类别的对象。卷积神经网络中的计算瓶颈:卷积和矩阵乘法,都是可以在硬件上并行化的操作。GPU比CPU快几个数量级。采用ReLU激活函数。原创 2023-08-21 21:17:44 · 291 阅读 · 0 评论 -
AlexNet阅读笔记
大型卷积神经网络AlexNet,实现了低错误率;该网络由5个卷积层和3个全连接层组成;使用了GPU加快了训练速度;开发了“dropout”正则化手段减少过拟合;为了更强大的模型,大型的数据集是需要的,如ImageNet;GPU能够与2D卷积实现结合,可以促进CNN训练;如果有更快的GPU和更大的数据集,结果就可以得到改善。原创 2023-08-19 15:12:41 · 198 阅读 · 0 评论 -
AlexNet中文翻译
我们训练了一个大型深度卷积神经网络,将 ImageNet LSVRC-2010 竞赛中的 120 万张高分辨率图像分类为 1000 个不同的类别。在测试数据上,我们实现了 37.5% 和 17.0% 的 top-1 和 top-5 错误率,这比之前的最先进水平要好得多。该神经网络拥有 6000 万个参数和 650,000 个神经元,由。原创 2023-08-17 20:28:01 · 160 阅读 · 0 评论 -
动手学深度学习—卷积神经网络LeNet(代码详解)
该模型去掉了最后一层的高斯激活,下面将一个大小为28×28的单通道(黑白)图像通过LeNet,打印每一层输出的形状。原创 2023-08-15 20:40:32 · 1951 阅读 · 0 评论 -
LeNet中文翻译
Gradient-Based Learning Applied to Document Recognition基于梯度的学习应用于文档识别摘要使用反向传播算法训练的多层神经网络构成了成功的基于梯度的学习技术的最佳示例。给定适当的网络架构,基于梯度的学习算法可用于合成复杂的决策表面,该决策表面可以通过最少的预处理对高维模式(例如手写字符)进行分类。本文回顾了应用于手写字符识别的各种方法,并在标准手写数字识别任务上对它们进行了比较。卷积神经网络是专门为处理二维形状的可变性而设计的,其性能优于所原创 2023-08-14 19:57:57 · 232 阅读 · 0 评论 -
动手学深度学习—卷积神经网络(原理解释+代码详解)
通过逐渐聚合信息,生成越来越粗糙的映射,最终实现学习全局表示的目标,同时将卷积图层的所有优势保留在中间层。当输入包含多个通道时,需要构造一个与输入数据具有相同输入通道数的卷积核,以便与输入数据进行互相关运算。汇聚层与卷积层的原理大体相似,只不过把互相关运算换成求最大值或者求平均值。(padding):在输入图像的边界填充元素(通常填充元素是0)不同颜色所选的区域与同一个卷积核做互相关运算,最后得到输出。这里可以看到学习的卷积核接近之前边缘检测的卷积核。严格来说,卷积层所表达的运算其实是互相关运算。原创 2023-08-03 19:58:28 · 2004 阅读 · 0 评论 -
动手学深度学习—深度学习计算(层和块、参数管理、自定义层和读写文件)
"""自定义块:1、将输入数据作为其前向传播函数的参数。2、通过前向传播函数来生成输出(输出的形状可能与输入的形状不同)。3、计算其输出关于输入的梯度,可通过其反向传播函数进行访问。4、存储和访问前向传播计算所需的参数。5、根据需要初始化模型参数。""" """多层感知机:1、输入是一个20维的输入。2、具有256个隐藏单元的隐藏层和一个10维输出层。""" class MLP(nn . Module) : # 用模型参数声明层。原创 2023-08-01 19:43:17 · 555 阅读 · 0 评论 -
动手学深度学习——实战Kaggle比赛:预测房价(代码详解+调参优化)
3、通过values属性,我们可以 从pandas格式中提取NumPy格式,并将其转换为张量表示用于训练。3、对于每个样本:删除第一个特征ID,因为其不携带任何用于预测的信息。k折:5,迭代轮数:100,学习率:5,权重:0,批量大小:64。是一个当今流行举办机器学习比赛的平台,这里是房价预测比赛页面。2、使用定义的脚本下载并缓存Kaggle房屋数据集。3、进行训练,优化器借助Adam优化器。2、采用价格预测的对数来衡量差异。3、将下载的数据集进行解压操作。2、下载数据集并保存数据集。原创 2023-07-28 16:05:47 · 1570 阅读 · 1 评论 -
动手学深度学习——实战Kaggle比赛:预测房价
【代码】动手学深度学习——实战Kaggle比赛:预测房价。原创 2023-07-25 21:54:25 · 517 阅读 · 0 评论 -
RuntimeError:a leaf Variable that requires grad is being used is an in-place operation.
在这种模式下,每次计算的结果都将具有requires_grad=False,即使输入具有requires_grad=True。对于推断非常有用,如果确定不会调用,它将减少计算的内存消耗,否则会有requires_grad=True。原创 2023-07-25 21:41:16 · 782 阅读 · 0 评论 -
TypeError: can‘t convert np.ndarray of type numpy.object_.
【代码】TypeError: can‘t convert np.ndarray of type numpy.object_.原创 2023-07-25 20:56:59 · 1531 阅读 · 2 评论 -
ValueError: x and y must have same first dimension, but have shapes (100,) and (1,)
返回的值在第一个循环和第二个循环是完全不一样的维度。意思是:ValueError: x 和 y 的。,但形状分别为 (100,) 和 (1,)代码检查没问题,这种一般是。原创 2023-07-25 16:10:55 · 2498 阅读 · 1 评论 -
动手学深度学习——softmax回归的从零开始实现
【代码】动手学深度学习——softmax回归的从零开始实现。原创 2023-07-24 19:04:52 · 242 阅读 · 1 评论 -
动手学深度学习——图像分类数据集
【代码】动手学深度学习——图像分类数据集。原创 2023-07-24 18:53:20 · 159 阅读 · 0 评论 -
动手学深度学习——线性回归从零开始
【代码】动手学深度学习——线性回归从零开始。原创 2023-07-24 18:43:55 · 123 阅读 · 0 评论 -
欠拟合和过拟合、权重衰减、暂退法(Dropout)、梯度消失和梯度爆炸
欠拟合:训练误差和验证误差都很严重, 但它们之间仅有一点差距。如果模型不能降低训练误差,这可能意味着模型过于简单(即表达能力不足), 无法捕获试图学习的模式。过拟合:将模型在训练数据上拟合的比在潜在分布中更接近的现象称为过拟合, 用于对抗过拟合的技术称为正则化。由于不能基于训练误差来估计泛化误差,因此简单地最小化训练误差并不一定意味着泛化误差的减小。过拟合是指训练误差远小于验证误差。机器学习模型需要注意防止过拟合,即防止泛化误差过大。验证集可以用于模型选择,但不能过于随意地使用它。原创 2023-07-20 21:08:32 · 413 阅读 · 0 评论 -
动手学深度学习——多层感知机(原理解释+代码详解)
3.当输入为0时,sigmoid函数的导数达到最大值0.25;而输入在任一方向上越远离0点时,导数越接近0。sigmoid函数将输入变换为区间(0, 1)上的输出,也叫挤压函数,它是一个平滑的、可微的阈值单元近似。sigmoid在隐藏层中已经较少使用, 它在大部分时候被更简单、更容易训练的ReLU所取代。使用reshape将每个二维图像转换为一个长度为num_inputs的向量。直接调用d2l包的train_ch3函数,详细见之前的线性回归。自己实现ReLU激活函数。sigmoid函数的导数。原创 2023-07-17 21:13:37 · 2257 阅读 · 0 评论 -
动手学深度学习——softmax回归的从零开始(代码详解)
sum运算符:给定一个矩阵X,我们可以对所有元素求和(默认情况下)。也可以只求同一个轴上的元素,即同一列(轴0)或同一行(轴1)。对每个项求幂(使用exp);对每一行求和(小批量中每个样本是一行),得到每个样本的规范化常数;将每一行除以其规范化常数,确保结果的和为1。原创 2023-07-16 10:10:25 · 1871 阅读 · 1 评论 -
动手学深度学习——softmax回归(原理解释+代码详解)
sum运算符:给定一个矩阵X,我们可以对所有元素求和(默认情况下)。也可以只求同一个轴上的元素,即同一列(轴0)或同一行(轴1)。对每个项求幂(使用exp);对每一行求和(小批量中每个样本是一行),得到每个样本的规范化常数;将每一行除以其规范化常数,确保结果的和为1。原创 2023-07-16 10:09:51 · 20086 阅读 · 11 评论 -
动手学深度学习——线性回归(原理解释+代码详解)
线性回归模型:y=wx+bdef linreg(X , w , b) : #@save """线性回归模型""" return torch . matmul(X , w) + b采取平方损失函数将y的形状统一为y_hat# y_hat是预测值, y是真实值 def squared_loss(y_hat , y) : #@save """均方损失""" # 返回平方误差 return(y_hat - y . reshape(y_hat . shape)) ** 2 / 2。原创 2023-07-14 21:20:17 · 4746 阅读 · 1 评论 -
机器学习小结
如判断一种蘑菇是否有毒,有80%的概率无毒,有20%的概率有毒,那我们也不会吃它,此时它不确定风险远远大于收益。强化学习在每个特定的时间点,智能体从环境接收一些观察,并且必须选择一个动作,然后通过某种机制将其传回环境,最后智能体从环境中获得奖励。机器学习研究中的一个新的领域,通过建立、模拟人脑进行学习的神经网络,它模仿人脑的机制来解释数据。当学习不相互排斥的类别问题称为多标签分类,如某篇博客同时具有“编程语言”,“深度学习”等标签。帮助机器从现有的复杂数据中学习规律,以预测未来的行为结果和趋势。原创 2023-07-14 21:16:24 · 274 阅读 · 0 评论