
动手学深度学习
文章平均质量分 85
作者:阿斯顿·张、扎卡里 C. 立顿、李沐、亚历山大 J. 斯莫拉
Einstein·Jun
无
展开
-
深度学习---------------------------------Transformer
目录Transformer架构多头注意力有掩码的多头注意力基于位置的前馈网络层归一化信息传递预测总结代码多头注意力使用多个头并行计算选择缩放点积注意力作为每一个注意力头测试该部分总代码Transformer基于位置的前馈网络改变张量的最里层维度的尺寸对比不同维度的层归一化和批量归一化的效果使用残差连接和层归一化加法操作后输出张量的形状相同该部分总代码实现编码器中的一个层Transformer编码器中的任何层都不会改变其输入的状态该部分总代码Transformer编码器创建一个两层的Transformer编码原创 2024-11-04 00:48:43 · 1058 阅读 · 0 评论 -
深度学习--------------------------------使用注意力机制的seq2seq
①Seq2seq中通过隐状态在编码器和解码器中传递信息。②注意力机制可以根据解码器RNN的输出来匹配到合适的编码器RNN的输出来更有效的传递信息。原创 2024-10-07 17:59:12 · 1004 阅读 · 0 评论 -
深度学习----------------------------编码器、解码器架构
使用编码器-解码器架构的模型,编码器负责表示输入,解码器负责输出。原创 2024-10-03 16:40:37 · 417 阅读 · 0 评论 -
深度学习-----------------机器翻译与数据集
绘制每个文本序列所包含的标记数量的直方图。原创 2024-10-03 14:54:57 · 545 阅读 · 0 评论 -
深度学习-----------------------双向循环神经网络
双向循环神经网络通过反向更新的隐藏层来利用反时间方向的信息。通常用来对序列抽取特征填空而不是预测未来。原创 2024-10-01 22:12:05 · 835 阅读 · 0 评论 -
深度学习---------------------------深度循环神经网络
深度循环神经网络使用多个隐藏层来获得更多的非线性性。原创 2024-10-01 17:53:31 · 525 阅读 · 0 评论 -
深度学习--------------------长短期记忆网络(LSTM)
记忆单元会把上一个时刻的记忆单元作为状态放进来,所以LSTM和RNN跟GRU不一样的地方是它的状态里面有两个独立的。等于0的话,就是把现在的记忆单元丢掉。是1的话,就是希望尽量的去用它,如果。等于0的话,就是希望不要记住。:决定要不要忽略掉输入数据。:决定要不要使用隐状态。原创 2024-10-01 12:38:57 · 1164 阅读 · 0 评论 -
深度学习--------------------------------门控循环单元GRU
定义隐状态的初始化函数init_gru_state。与之前定义的init_rnn_state函数一样,此函数返回一个形状为(批量大小,隐藏单元个数)的张量,张量的值全部为零。H, = state。原创 2024-09-29 13:47:56 · 898 阅读 · 0 评论 -
深度学习------------------------RNN(循环神经网络)
"""在 'prefix' 后面生成新字符。"""# 获取模型的初始隐藏状态,批量大小为 1(对一个字符串做预测),设备为指定的设备# 将 prefix 的第一个字符索引添加到输出列表中# 定义一个函数 get_input,用于获取输入序列的张量表示# 输入序列只包含一个字符,将该字符的索引转换为张量,并进行形状调整为 (1, 1)# 对于 prefix 中除第一个字符之外的每个字符 y# 使用当前输入字符和隐藏状态进行前向传播计算,得到输出和更新后的隐藏状态。原创 2024-09-28 09:04:35 · 1053 阅读 · 0 评论 -
深度学习----------------------语言模型
语言模型估计文本序列的联合概率使用统计方法时采用n元语法。原创 2024-09-24 15:18:10 · 1026 阅读 · 0 评论 -
conda下载
Anaconda下载参考链接:https://blog.csdn.net/qq_48372575/article/details/125630622设置Jupyter Notebook的代码路径 在“此电脑”中搜索。删除最后一个""后面的的内容,包括“\”。用记事本打开它。按下ctrl+F就可以开始查找。查找内容如下:找到之后,右键该文件,找到“发送到”,找到“桌面快捷方式”。然后就会发现桌面上已经建立好了!原创 2024-08-06 17:20:59 · 1112 阅读 · 0 评论 -
深度学习----------------------文本预处理
其中的每个词元都是一个字符串(string)。原创 2024-09-17 15:24:39 · 1089 阅读 · 0 评论 -
深度学习--------------序列模型
①时序模型中,当前数据跟之前观察到的数据相关②自回归模型使用自身过去数据来预测未来③马尔可夫模型假设当前只跟最近少数数据相关,从而简化模型。④潜变量模型使用潜变量来概括历史信息。原创 2024-09-17 00:01:37 · 991 阅读 · 0 评论 -
深度学习----------------------残差网络ResNet
①残差块使得很深的网络更加容易训练甚至可以训练一千层的网络②残差网络对随后的深度神经网络设计产生了深远影响,无论是卷积类网络还是全连接类网络。原创 2024-08-22 23:44:57 · 1320 阅读 · 0 评论 -
深度学习-----------------------批量归一化
①批量归一化固定小批量中的均值和方差,然后学习出适合的偏移和缩放(当每一个层的均值和方差都固定后,就不会出现像之前学习率太大的话,靠近loss上面的梯度太大,就梯度爆炸了,学习率太小的话,靠近数据的梯度太小了,就算不动(梯度消失)。②可以加速收敛速度,但一般不改变模型精度。原创 2024-08-21 15:02:09 · 1161 阅读 · 0 评论 -
深度学习-----------------------含并行连结的网络GoogLeNet
Inception块用4条有不同超参数的卷积层和池化层的路来抽取不同的信息。它的一个主要优点是模型参数小,计算复杂度低。GoogleNet使用了9个Inception块,是第一个达到上百层的网络。后续有一系列改进。原创 2024-08-19 21:58:17 · 940 阅读 · 1 评论 -
深度学习---------------------网络中的网络NiN
① 在全局平均池化层(GAP)被提出之前,常用的方式是将feature map直接拉平成一维向量,但是GAP不同,是将每个通道的二维图像做平均,最后也就是每个通道对应一个均值。② 假设卷积层的最后输出是h × w × d的三维特征图,具体大小为6 × 6 × 3,经过GAP转换后,变成了大小为 1 × 1 × 3 的输出值,也就是每一层 h × w 会被平均化成一个值,如下图所示。③ GPA优势:1、抑制过拟合。原创 2024-08-19 17:22:13 · 730 阅读 · 0 评论 -
深度学习-------------------使用块的网络VGG
①VGG使用可重复使用的卷积块来构建深度卷积神经网络。②不同的卷积块个数和超参数可以得到不同复杂度的变种。原创 2024-08-17 14:03:40 · 1014 阅读 · 0 评论 -
深度学习----------------------深度卷积神经网络AlexNet
①AlexNet是更大更深的LeNet,比LeNet多10倍的参数个数,多260倍的计算复杂度。②新加入了丢弃法,ReLU,最大池化层和数据增强。原创 2024-08-16 21:11:37 · 851 阅读 · 0 评论 -
深度学习------------------卷积神经网络(LeNet)
①LeNet是早期成功的神经网络②先使用卷积层来学习图片空间信息③然后使用全连接层来转换到类别空间。原创 2024-08-14 23:41:01 · 927 阅读 · 0 评论 -
深度学习------------池化层
①池化层返回窗口中最大或平均值②缓解卷积层对位置的敏感性③同样有窗口大小、填充和步幅作为超参数设定一个任意大小的矩形池化窗口,并分别设定填充和步幅的高度和宽度# 池化窗口的大小,高度为2,宽度为3。原创 2024-08-13 19:58:57 · 1273 阅读 · 0 评论 -
深度学习-----------------多个输入和输出通道
①输入通道数是卷积层的超参数。②每个输入通道都有独立的二维卷积核,所有通道结果相加得到一个输出通道结果。③每个输出通道有独立的三维卷积核。原创 2024-08-12 21:46:06 · 1376 阅读 · 0 评论 -
深度学习----------------卷积层里的填充和步幅
①填充和步幅是卷积层的超参数。②填充在输入周围添加额外的行/列,来控制输出形状的减少量。③步幅是每次滑动核窗口时的行/列的步长,可以成倍的减少输出形状。原创 2024-08-11 17:32:26 · 807 阅读 · 0 评论 -
深度学习---------------卷积层
对全连接层使用平移不变性和局部性得到卷积层。卷积层将输入和核矩阵进行交叉相关,加上偏移后得到输出。核矩阵和偏移是可学习的参数。核矩阵的大小是超参数。原创 2024-08-10 22:48:57 · 881 阅读 · 0 评论 -
深度学习---------------神经网络基础
①将输入数据作为其前向传播函数的参数。②通过前向传播函数来生成输出。注意:输出的形状可能与输入的形状不同。例如:我们上面模型中的第一个全连接的层接收一个20维的输入,但是返回一个度为256的输出。③计算其输出关于输入的梯度,可通过其反向传播函数进行访问。通常是自动发生的。④存储和访问前向传播计算所需的参数。⑤根据需要初始化模型参数。我们从零开始编写一个块。它包含一个多层感知机,其具有256个隐藏单元的隐藏层和一个10维输出层。注意,下面的MLP类继承了表示块的类。原创 2024-08-09 13:43:55 · 993 阅读 · 0 评论 -
深度学习--------------Kaggle房价预测
目录下载和缓存数据集访问和读取数据集总代码数据预处理训练K折交叉验证模型选择总代码提交你的Kaggle预测提交Kaggle下载和缓存数据集import hashlibimport osimport tarfileimport zipfileimport requests # download传递的参数分别是数据集的名称、缓存文件夹的路径def download(name, cache_dir=os.path.join('..', 'data')): # @save """下载一原创 2024-08-07 17:48:05 · 1029 阅读 · 0 评论 -
深度学习-----------数值稳定性
当数值过大或者过小时会导致数值问题。常发生在深度模型中,因为其会对n个数累乘。合理的权重初始值和激活函数的选取可以提升数值稳定性。原创 2024-08-04 17:26:08 · 933 阅读 · 0 评论 -
深度学习------------丢弃法dropout
①丢弃法将一些输出项随机置0来控制模型复杂度②常作用在多层感知机的隐藏层输出上③丢弃概率是控制模型复杂度的超参数引入Fashion-MNIST数据集,定义具有两个隐藏层的多层感知机,每个隐藏层包含256个单元。可以将暂退法应用于每个隐藏层的输出(在激活函数之后), 并且可以为每一层分别设置暂退概率常见的技巧是在靠近输入层的地方设置较低的暂退概率。下面的模型将第一个和第二个隐藏层的暂退概率分别设置为0.2和0.5, 并且暂退法只在训练期间有效。原创 2024-08-03 16:08:53 · 1219 阅读 · 0 评论 -
深度学习------权重衰退
权重衰退通过L2正则项使得模型参数不会过大,从而控制模型复杂度。正则项权重是控制模型复杂度的超参数。实现这一惩罚最方便的方法是对所有项求平方后并将它们求和。下面的代码将模型拟合训练数据集并在测试数据集上进行评估。线性网络和平方损失没有变化, 所以我们通过d2l.linreg和导入它们。唯一的变化是损失现在包括了惩罚项。# 用lambda匿名函数定义net,输入为X,输出为d2l.linreg(X, w, b)# lambd是L2正则化项系数,是为了调整正则化的强度# 增加了L2范数惩罚项,原创 2024-08-02 18:23:23 · 1052 阅读 · 0 评论 -
深度学习--------模型选择+过拟合和欠拟合
训练数据集:训练模型参数验证数据集:选择模型超参数非大数据集上通常使用k折交叉验证模型容量需要匹配数据复杂度,否则可能导致欠拟合和过拟合。统计机器学习提供数学工具来衡量模型复杂度。实际中一般靠观察训练误差和验证误差。# 均方误差损失,reduction='none'直接返回每个元素的损失input_shape = train_features.shape[-1] # 得到特征数量# 不设置偏置,因为我们已经在多项式中实现了它# 第一个参数是输入特征的数量,第二个参数是输出特征的数量。原创 2024-08-01 16:50:39 · 1155 阅读 · 0 评论 -
深度学习-感知机
①感知机是一个二分类模型,是最早的AI模型之一。②它的求解算法等价于使用批量大小为1的梯度下降。③它不能拟合XOR函数,导致的第一次AI寒冬①多层感知机使用隐藏层和激活函数来得到非线性模型。②常用激活函数是Sigmoid,Tanh,ReLU。③使用Softmax来处理多类分类。④超参数为隐藏层数,和各个隐藏层大小。①x>0,输出为什么是1,通过设计w和b吗?还是通过训练?这里的x并不是前面的输入特征x,而是x=+b②神经网络中的一层网络是指什么?原创 2024-07-31 18:43:27 · 418 阅读 · 0 评论 -
Pycharm中安装Pytorch的库
step1:step2:step3:step4:step5:step6:step7:Pycharm plot独立窗口显示原创 2024-07-01 13:38:22 · 398 阅读 · 0 评论 -
深度学习-Softmax回归+损失函数+图像分类数据集
回归估计一个连续值分类预测一个离散类别例如:MNIST:手写数字识别(10类)ImageNet:自然物体分类(1000类)将人类蛋白质显微镜图片分为28类将恶意软件分为9个类别将恶意的Wikipedia评论分成7类单连续数值输出自然区间R跟真实值的区别作为损失通常多个输出输出i是预测为第i类的置信度解释举例说明:softmax回归原理及损失函数-跟李沐老师动手学深度学习对类别进行一位有效编码使用均方损失训练最大值预测选取i,使得最大化OiO_iOi的置信度的值作为预测。其中原创 2024-05-24 20:44:25 · 1220 阅读 · 1 评论 -
深度学习-线性回归+基础优化算法
1、线性回归是对n维输入的加权,外加偏差。2、使用平方损失来衡量预测值和真实值的差异。3、线性回归有显示解。4、线性回归可以看做是单层神经网络。我们将从零开始实现整个方法,包括数据流水线、模型、损失函数和小批量随机梯度下降优化器。"""生成y=Xw+b+噪声。"""print('features:', features[0], '\nlabel:', labels[0])里插入代码片正态分布函数:normal()原创 2024-04-28 17:32:03 · 1308 阅读 · 0 评论 -
深度学习-自动求导
构造计算图前向:执行图,存储中间结果反向:从相反方向执行图去除不需要的枝计算复杂度:O(n),n是操作子个数通常正向和方向的代价类似内存复杂度:O(n),因为需要存储正向的所有中间结果正向累积:它的内存复杂度是O(1),即不管多深我不需要存储它的结果,而反向累积则需要存储。反向从根节点向下扫,可以保证每个节点只扫一次;正向从叶节点向上扫,会导致上层节点可能需要被重复扫多次。(正向中 子节点比父节点先计算,因此也无法像反向那样把本节点的计算结果传给每个子节点。原创 2024-04-26 11:41:33 · 1096 阅读 · 0 评论 -
深度学习-矩阵计算
将导数拓展到向量。原创 2024-04-25 11:51:17 · 365 阅读 · 0 评论 -
深度学习-线性代数
keepdim=True是一个参数,当设置为True时,它会使得聚合操作后的张量在被聚合的维度上仍然保持一个大小为1的维度,而不是完全去除这个维度。第一个位置的元素保持不变(因为没有之前的元素可以相加),之后的每个位置的元素都是它自身和它之前所有元素的和。A是一个m×n的矩阵,x是一个n×1的一列,所以得到一个m的列向量。axis=1 即第二维度------按行方向操作。axis=1即第二维度------按列方向操作。二维的:axis=0即第一维度------按行方向操作。此时,就跟二维的有所区别。原创 2024-04-24 22:56:58 · 1778 阅读 · 0 评论 -
深度学习-数据预处理
exist_ok=True:当设置为True时,如果目录已经存在,os.makedirs()不会引发错误。iloc[]是切片操作,data.iloc[:, 0:2]中0:2 表示取从第 0 列和第1列。默认情况下,如果目录已存在,os.makedirs()会引发一个FileExistsError。os.path.join(‘. .’, ‘data’): ‘. .’(代表上一级目录。data.iloc[:, 2]中2表示下标为2的列,即第三列。首先先选出数据类型再求平均值填充。原创 2024-04-23 22:36:28 · 627 阅读 · 0 评论 -
深度学习-数据操作
结果:x[1:3]是取第一行和第二行,左闭右开但python中下标是从0开始。所以从全局来数就是第二行和第三行。原创 2024-04-23 20:20:15 · 1370 阅读 · 0 评论 -
深度学习-N维数组和访问元素
N维数组是机器学习和神经网络的主要数据结构。原创 2024-04-23 11:26:06 · 326 阅读 · 0 评论