
深度学习
文章平均质量分 82
ccdous
这个作者很懒,什么都没留下…
展开
-
一部分优化算法
(4)只有一定程度的噪声可能会使参数跳出局部最小值(是小批量随机梯度下降的有利特性之一,小批量上梯度的自然变化能够将参数从局部极小值中跳出)。(4)深度学习中的凸和非凸:学习的模型基本上都是非凸的,因为凸的(比如线性)很简单,那么信息就不多,非凸更接近实际生活中的例子。(6)在小批量随机梯度下降中,我们处理通过训练数据的随机排列获得的批量数据(即每个观测值只处理一次,但按随机顺序)。(2)但是需要考虑合适的小批量,批量很小的时候,收敛快但计算慢,批量大的时候,计算代价很大。原创 2024-08-07 19:05:56 · 622 阅读 · 0 评论 -
BERT微调
2、对于序列级和词元级自然语言处理应用,BERT只需要最小的架构改变(增加需要训练的输出层),如单个文本分类(例如,情感分析和测试语言可接受性)、文本对分类或回归(例如,自然语言推断和语义文本相似性)、文本标记(例如,词性标记)和问答。#对前提和假设进行截断,使其总长度不超过 max_len - 3,为 BERT 的特殊词元 <CLS> 和 <SEP> 保留位置。我们只拿回答的那部分句子进行提取特征。3、在下游应用的监督学习期间,额外层的参数是从零开始学习的,而预训练BERT模型中的所有参数都是微调的。原创 2024-08-07 17:55:33 · 1861 阅读 · 0 评论 -
BERT预训练
1、在NLP中的迁移学习中,使用预训练好的模型抽取词、句子的特征,不更新预训练好的模型,而是在需要构建新的网络来抓取新任务需要的信息,也就是最后面加上一个MLP做分类;在这个预训练任务中,将随机选择15%的词元作为预测的掩蔽词元,用一个特殊的“<mask>”替换输入序列中的词元。2、由于基于微调的NLP模型,也想要一个类似的东西,使预训练的模型抽取了足够多的信息,新任务只需要一个简单的输出层。# 为遮蔽语言模型的输入创建新的词元副本,其中输入可能包含替换的“<mask>”或随机词元。原创 2024-08-07 16:56:18 · 1381 阅读 · 0 评论 -
Transformer
2、Transformer是由编码器和解码器组成,与基于Bahdanau注意力实现的序列到序列的学习相比,Transformer的编码器和解码器是基于自注意力的模块叠加而成的,源(输入)序列和目标(输出)序列的。6、多头注意力融合了来自于多个注意力汇聚的不同知识,这些知识的不同来源于相同的查询、键和值的不同的子空间表示;在计算编码器的自注意力时,查询、键和值都来自前一个编码器层的输出;1、基于位置的前馈网络对序列中的所有位置的表示进行变换时使用的是同一个多层感知机(MLP),这就是称前馈网络是。原创 2024-08-05 15:02:40 · 1182 阅读 · 0 评论 -
自注意力和位置编码
之后输出的n×n矩阵乘以n×d矩阵。令ωj=1/100002^(j/d), 对于任何确定的位置偏移δ中,任何一对 (p^(i,2j),p^(i,2j+1))都可以线性投影到 (p^(i+δ,2j),p^(i+δ,2j+1))这是因为对于任何确定的位置偏移δ,位置i+δ处 的位置编码可以线性投影位置i处的位置编码来表示。1、CNN:序列长度是n,输入和输出的通道数量都是d, 所以卷积层的计算复杂度为O(knd^2);3、为了使用序列的顺序信息,可以通过在输入表示中添加位置编码,来注入绝对的或相对的位置信息。原创 2024-08-04 23:35:41 · 813 阅读 · 0 评论 -
使用注意力机制的seq2seq
a、要预测下一个词的时候,将当前预测出的词作为query,编码器各个状态作为(key,value),进行attention,来找到对预测下一个词有用的原文。时间步𝑡′−1时的解码器隐状态𝑠_𝑡′−1是查询, 编码器隐状态ℎ_𝑡既是键,也是值, 注意力权重𝛼是使用加性注意力打分函数计算的。2、在循环神经网络编码器-解码器中,Bahdanau注意力将上一时间步的解码器隐状态视为查询,在所有时间步的编码器隐状态同时视为键和值。# 输出X的形状为(num_steps,batch_size,embed_size)原创 2024-07-30 17:25:09 · 917 阅读 · 0 评论 -
注意力分数
当它们的长度相同时,使用缩放的“点-积”注意力评分函数的计算效率更高。# key的形状:(batch_size,1,“键-值”对的个数,num_hiddens)1、将注意力汇聚的输出计算可以作为值的加权平均,选择不同的注意力评分函数会带来不同的注意力汇聚操作。# scores的形状:(batch_size,查询的个数,“键-值”对的个数)# values的形状:(batch_size,“键-值”对的个数,值的维度)# values的形状:(batch_size,“键-值”对的个数,值的维度)原创 2024-07-30 16:55:02 · 837 阅读 · 0 评论 -
注意力机制
4、热图中的颜色表示注意力权重的大小。绘制所有的训练样本(样本由圆圈表示), 不带噪声项的真实数据生成函数𝑓(标记为“Truth”), 以及学习得到的预测函数(标记为“Pred”)。(3)可以通过设计注意力汇聚的方式, 便于给定的查询(自主性提示)与键(非自主性提示)进行匹配, 这将引导得出最匹配的值(感官输入)2、横轴代表的是注意力机制中的键(key),这些键通常是输入序列中的各个元素的表示;# keys的形状:(n_test,n_train),每一行包含着相同的训练输入(例如,相同的键)原创 2024-07-30 16:29:11 · 852 阅读 · 0 评论 -
束搜索(与贪心、穷举对比)
P(C,E,y3∣c)=P(C,E∣c)*P(y3∣C,E,c),从这十个值中选择最大的两个, 即P(A,B,D∣c)和P(C,E,D∣c)。(3)在时间步2,我们计算所有y2∈Y为:P(A,y2∣c) = P(A∣c)*P(y2∣A,c);(4)在时间步3,我们计算所有y3∈Y为:P(A,B,y3∣c)=P(A,B∣c)*P(y3∣A,B,c);P(y2∣C,c)从这十个值中选择最大的两个, 比如P(A,B∣c)和P(C,E∣c)。(2)在时间步1,假设具有最高条件概率 P(y1∣c)的词元是A和C。原创 2024-07-28 12:39:02 · 345 阅读 · 0 评论 -
序列到序列学习(Seq2seq)
(3)在选候选句子的时候,长句子往往预测的概率会更小一点,为了平衡选择的概率,有机会能尝到有机会能选到长一点的句子,通常是取一个log再取l的阿尔法次饭分之1去调整长句子的概率。这个向量空间是通过训练数据学习到的,向量的维度通常远小于词汇表的大小,生成的向量是密集的,维度通常远小于。(3)编码器通过选定的函数q, 将所有时间步的隐状态转换为上下文变量(但我们的例子里面,上下文变量仅仅是输入序列在最后时间步的隐状态hT。# 输出'X'的形状:(batch_size,num_steps,embed_size)原创 2024-07-28 11:52:14 · 1934 阅读 · 0 评论 -
编解码器架构
0、机器翻译是序列转换模型的一个核心问题, 其输入和输出都是长度可变的序列。1、“编码器-解码器”架构可以将长度可变的序列作为输入和输出,因此适用于机器翻译等序列转换问题。(encoder): 它接受一个长度可变的序列作为输入, 并将其转换为具有固定形状的编码状态。2、编码器将长度可变的序列作为输入,并将其转换为具有固定形状的编码状态。"""编码器-解码器架构的基本编码器接口""""""编码器-解码器架构的基本解码器接口""""""编码器-解码器架构的基类"""(encoder-decoder)架构。原创 2024-07-27 23:49:57 · 826 阅读 · 0 评论 -
机器翻译数据集
指定了额外的特定词元, 例如在小批量时用于将序列填充到相同长度的填充词元(“<pad>”), 以及序列的开始词元(“<bos>”)和结束词元(“<eos>”)数据集中的每一行都是制表符分隔的文本序列对, 序列对由英文文本序列和翻译后的法语文本序列组成。3、通过截断和填充文本序列,可以保证所有的文本序列都具有相同的长度,以便以小批量的方式加载。1、截断或填充文本序列(文本序列具有相同的长度,便于以相同形状的小批量进行加载)#“<eos>”词元添加到所有序列的末尾, 用于表示序列的结束。原创 2024-07-27 23:26:20 · 1117 阅读 · 0 评论 -
(深层与双向)循环神经网络
(2)将前向隐状态𝐻→𝑡 和反向隐状态𝐻←𝑡连接起来, 获得需要送入输出层的隐状态𝐻𝑡。这是具有𝐿个隐藏层的深度循环神经网络, 每个隐状态都连续地传递到当前层的下一个时间步和下一层的当前时间步。(3)深度循环神经网络需要大量的调参(如学习率和修剪) 来确保合适的收敛,模型的初始化也需要谨慎。(1)在深度循环神经网络中,隐状态的信息被传递到当前层的下一时间步和下一层的当前时间步。(1)在双向循环神经网络中,每个时间步的隐状态由当前时间步的前后数据同时决定。(1)前向和反向隐状态的更新。1、对于循环神经网络。原创 2024-07-27 22:43:18 · 724 阅读 · 0 评论 -
长短期记忆网络(LSTM)
(2)如果遗忘门始终为1且输入门始终为0, 则过去的记忆元𝐶𝑡−1 将随时间被保存并传递到当前时间步。输出门接近1,我们就能够有效地将所有记忆信息传递给预测部分, 而对于输出门接近0,我们只保留记忆元内的所有信息,而不需要更新隐状态。由三个具有sigmoid激活函数的全连接层处理, 以计算输入门、遗忘门和输出门的值。(1)输入门𝐼𝑡控制用多少来自𝐶𝑡的新数据, 而遗忘门𝐹𝑡控制保留多少过去的记忆元𝐶𝑡−1的内容。1、长短期记忆网络有三种类型的门:输入门、遗忘门和输出门。(2)遗忘门:重置单元的内容。原创 2024-07-27 19:53:15 · 1160 阅读 · 0 评论 -
门控循环单元(GRU)
Rnn处理不了过长的序列,因为序列信息会被放在隐藏状态里面,当时间很长的时候,隐藏状态就会累积的太多,前面很久以前的信息就不能很好地抽取出来。(2)Rt在更新新的隐藏状态的时候,要用多少过去的隐藏状态的信息,在算真正的隐藏状态的时候,需要多少关于xt的信息占比。(1)输入是由当前时间步的输入和前一时间步的隐状态给出,两个门的输出是由使用sigmoid激活函数的两个全连接层给出。更新门对应的就是重要的信息,需要更新我们的状态,重置门就是不重要的信息,就让我们的隐藏状态遗忘一些东西。原创 2024-07-27 17:14:18 · 702 阅读 · 0 评论 -
循环神经网络
(2)当前的输出是为了预测当前的观察,没有对x建模,因为x的信息都存在h里面。(3)W_hh将对应的隐藏信息转化为真实信息, W_hh是将时序信息存放。1、对隐状态使用循环计算的神经网络称为循环神经网络(RNN)。2、循环神经网络的隐状态可以捕获直到当前时间步序列的历史信息。3、循环神经网络模型的参数数量不会随着时间步的增加而增加。5、应用:文本生成、文本分类、问答、机器翻译、Tag生成。1、潜变量自回归模型,使用潜变量ht总结过去信息。4、我们可以使用循环神经网络创建字符级语言模型。原创 2024-07-25 19:45:29 · 911 阅读 · 0 评论 -
语言模型及数据集
在迭代过程中,后者可以保证来自两个相邻的小批量中的子序列在原始序列上也是相邻的。#基于到目前为止我们看到的词元来预测下一个词元, 标签是移位了一个词元的原始序列。5、用空间换时间:统计单词在数据集中的出现次数, 然后将其除以整个语料库中的单词总数。的目标是估计序列的联合概率,一个理想的语言模型就能够基于模型本身生成自然文本。"""使用随机抽样生成一个小批量子序列""""""使用顺序分区生成一个小批量子序列""""""返回时光机器数据集的迭代器和词表""""""加载序列数据的迭代器"""原创 2024-07-25 11:44:50 · 1076 阅读 · 1 评论 -
文本预处理
self.idx_to_token是一个列表,列表的第一个元素是 '<unk>',表示未知词汇(索引为0)。reserved_tokens 是一个预定义的词汇表(tokens)的列表,+ 运算符将 '<unk>' 和 reserved_tokens 合并成一个的列表并赋值给 self.idx_to_token。"""返回时光机器数据集的词元索引列表和词表""""""将时间机器数据集加载到文本行的列表中""""""将文本行拆分为单词或字符词元""""""统计词元的频率""""""文本词表"""原创 2024-07-25 09:30:43 · 845 阅读 · 0 评论 -
序列模型及预测
因此,对于所拥有的序列数据,在训练时始终要尊重其时间顺序,即最好不要基于未来的数据进行训练。时序序列与前面学过的一些序列的主要区别在于样本一个是独立的随机变量,一个是不独立的随机变量,可能根据时间的不同而具有一定的联系。4、对于直到时间步𝑡的观测序列,其在时间步𝑡+𝑘的预测输出是“𝑘步预测”。# 列i(i>=tau)是来自(i-tau+1)步的预测,其时间步从(i)到(i+T-tau-max_steps+1)# 列i(i<tau)是来自x的观测,其时间步从(i)到(i+T-tau-max_steps+1)原创 2024-07-23 22:04:13 · 1109 阅读 · 0 评论 -
样式迁移及代码
6、样式损失是指匹配通道内的统计信息和通道之间的统计信息(可以理解为匹配一阶二阶三阶的统计信息,一阶可以是均值,二阶可以是协方差),把feature map里通道作为一维,然后将通道里面的像素拉成一个向量,然后做协方差矩阵,去计算一个多维度的随机变量的二阶信息去匹配分布。2、训练一些样本使得样本在一些cnn的特征上跟样式图片很相近,在一些cnn的特征上跟内容图片很像,关键在于该怎么样定义内容是一样的,样式是一样的。#对输入图像应用之前定义的变换序列,得到一个张量,并在0维度上添加一个新的维度(通道)原创 2024-07-23 21:29:16 · 866 阅读 · 0 评论 -
全卷积网络(FCN)
步幅为𝑠,填充为𝑠/2(假设𝑠/2是整数)且卷积核的高和宽为2𝑠,转置卷积核会将输入的高和宽分别放大𝑠倍。使用双线性插值生成权重的主要原因是为了在上采样(upsampling)操作中保持图像的平滑过渡,避免像素块效应,并且能够更好地保留图像的细节。1、全卷积网络先使用卷积神经网络抽取图像特征,然后通过1×1卷积层将通道数变换为类别个数,最后通过转置卷积层将特征图的高和宽变换为输入图像的尺寸。#构造一个将输入的高和宽放大2倍的转置卷积层,并将其卷积核用bilinear_kernel函数初始化。原创 2024-07-22 19:54:05 · 806 阅读 · 0 评论 -
转置卷积方法
1、卷积神经网络层通常会减少(或保持不变)采样输入图像的空间维度(高和宽),另一种类型的卷积神经网络层,它可以增加上采样中间层特征图的空间维度, 用于逆转下采样导致的空间尺寸减小。(1)卷积做下采样(减少特征图的空间分辨率的过程),转置卷积做上采样(增加特征图的空间分辨率)。#卷积输出尺寸是(x-h)/s+1,(x-w)/s+1。2、转置卷积(感觉就是卷积的反过来)也是一种卷积。实现基本的转置卷积运算。2、填充、步幅和多通道。原创 2024-07-22 13:59:45 · 235 阅读 · 0 评论 -
语义分割和数据集
1、与目标检测不同,语义分割可以识别并理解图像中每一个像素的内容:其语义区域的标注和预测是像素级的。1、语义分割通过将图像划分为属于不同语义类别的区域,来识别并理解图像中像素级别的内容。1、读取所有VOC图像并标注:因为这个数据集的自己的格式是voc。"""将VOC标签中的RGB值映射到它们的类别索引""""""一个用于加载VOC数据集的自定义数据集""""""构建从RGB到VOC类别索引的映射""""""读取所有VOC图像并标注""""""加载VOC语义分割数据集""""""随机裁剪特征和标签图像"""原创 2024-07-19 17:02:44 · 1341 阅读 · 0 评论 -
SSD实现
可以设计基础网络,使它输出的高和宽较大,使基于该特征图生成的锚框数量较多,可以用来检测尺寸较小的目标。接下来的每个多尺度特征块将上一层提供的特征图的高和宽缩小(如减半),并使特征图中每个单元在输入图像上的感受野变得更广阔。在不同的尺度下,特征图的形状或以同一单元为中心的锚框的数量可能会有所不同。# 生成多尺度的锚框,为每个锚框预测类别和偏移量。# 根据类别和偏移量的预测和标注值计算损失函数。# 训练精确度的和,训练精确度的和中的示例数。# 绝对误差的和,绝对误差的和中的示例数。1、定义损失函数和评价函数。原创 2024-07-18 22:17:48 · 669 阅读 · 0 评论 -
物体检测算法
基于基础网络块和各个多尺度特征块,单发多框检测生成不同数量和不同大小的锚框,并通过预测这些锚框的类别和偏移量检测不同大小的目标。Faster R-CNN将Fast R-CNN中使用的选择性搜索替换为参与训练的区域提议网络,这样后者可以在减少提议区域数量的情况下仍保证目标检测的精度。R-CNN对图像选取若干提议区域,使用卷积神经网络对每个提议区域执行前向传播以抽取其特征,然后再用这些特征来预测提议区域的类别和边界框。(2)在训练单发多框检测模型时,损失函数是根据锚框的类别和偏移量的预测及标注值计算得出的。原创 2024-07-16 20:53:20 · 523 阅读 · 0 评论 -
锚框及代码
---------------------------------------------------------------------------------------------------看不下去了,下次看。#一个形状为 (N, M, 2) 的张量,其中 N 是 boxes1 的数量,M 是 boxes2 的数量,2= 表示每个交集框的宽度和高度。#(c_assigned_bb[:, :2] - c_anc[:, :2]) 表示真实边界框和锚框的中心坐标 (中心x, 中心y)原创 2024-07-14 16:12:48 · 627 阅读 · 0 评论 -
物体检测和数据集
选择了一个批次中的前10张图像,执行了维度置换操作,将图像的维度从PyTorch的默认格式 (batch_size, channels, height, width) 调整为 (batch_size, height, width, channels)# 这里的target包含(类别,左上角x,左上角y,右下角x,右下角y),(2)边界框中心的(𝑥,𝑦)轴坐标以及框的宽度和高度。"""从(左上,右下)转换到(中间,宽度,高度)""""""从(中间,宽度,高度)转换到(左上,右下)"""原创 2024-07-14 11:19:30 · 687 阅读 · 0 评论 -
微调及代码
2、除输出层外,目标模型从源模型中复制所有模型设计及其参数,并根据目标数据集对这些参数进行微调。4、在目标数据集(如椅子数据集)上训练目标模型。输出层将从头开始进行训练,而所有其他层的参数将根据源模型的参数进行微调。1、微调是在目标数据集上的正常训练任务,但使用更强的正则化(有更强的lr和更少的epoch)3、向目标模型添加输出层,其输出数是目标数据集中的类别数。3、通常,微调参数使用较小的学习率,而从头开始训练输出层可以使用更大的学习率。这将复制源模型上的所有模型设计及其参数(输出层除外)。原创 2024-07-11 17:23:10 · 738 阅读 · 0 评论 -
数据(图像)增广
4、为了在预测过程中得到确切的结果,我们通常对训练样本只进行图像增广,而在预测过程中不使用带随机操作的图像增广。1、增加一个已有数据集,使得有更多的多样性,比如加入不同的背景噪音、改变图片的颜色和形状。5、深度学习框架提供了许多不同的图像增广方法,这些方法可以被同时应用。#面积为原始面积10%到100%的区域,宽高比从0.5~2之间随机取值。1、数据增广通过变形数据来获取多样性,从而使得模型泛化性更好。2、常见图片增广包括翻转、切割、变色。2、增强数据是在线生成的。3、就是把数据集换了而已。原创 2024-07-11 15:56:47 · 648 阅读 · 0 评论 -
分布式训练
跟多GPU不同是:数据不是从主存拿的,是在分布式文件系统拿的,有多个工作站,工作站中有多个GPU,通过网络读取数据到GPU中,GPU通过网络接收到来自参数服务器的参数进行运算计算梯度,最后将梯度传回服务器,服务器对梯度进行求和更新参数。在分布式计算时要避免通信的开销大于计算的开销,一个简单的方法就是将batchsize增大,但数据集不大的时候用过于大的batchsize可能会使测试精度变低;但随着批量大小的增加,收敛程度会变低,需要更多的epoch进行训练,所以需要权衡。6、将所有GPU中的梯度求和。原创 2024-07-11 12:00:10 · 289 阅读 · 0 评论 -
单机多卡并行及多GPU训练
将ASIC设计为2D,为了深度学习内的矩阵运算;卷积也可以换成矩阵乘法。FPGA通常是做模拟的,做好后模拟成功进行ASIC留片。深度学习是计算密集型运算,GPU更适合计算密集型运算。四、Systolic Array。这是一种板子,可以进行烧制编程。一个PE里面可以做一个简单运算。一、DSP:数字信号处理。FFT:快速傅里叶变换。二、可编程阵列FPGA。原创 2024-07-10 10:53:05 · 476 阅读 · 0 评论 -
硬件:CPU和GPU、TPU和其他
2、Cpu一次可以计算一个线程,而gpu有多少个绿点一次就能计算多少个线程,Gpu比cpu快是因为gpu它的核多,Gpu通过多核和大的带宽去提高了运算效率,但gpu它的内存做不了很大。1、超线程一般是给不一样的任务的计算使用,而非在计算密集型工作中。3、每秒计算的浮点数,浮点数乘以主频。二、提升CPU利用率:计组学过的。三、提升GPU的利用率。原创 2024-07-09 17:06:41 · 204 阅读 · 0 评论 -
残差网络(ResNet)
(1)捷径连接(Shortcut Connection)实现了恒等映射(Identity Mapping),也就是说,网络至少可以直接输出输入数据的原始值 𝑥x。6、因为最优点附近梯度为0,拟合得越好,越靠近最优点,梯度越小,相应的最优点附近就越平坦;(2)通过捷径连接,梯度可以直接从输出层反向传播到输入层。3、利用残差块(residual blocks)可以训练出一个有效的深层神经网络:输入可以通过层间的残余连接更快地向前传播。4、残差块先接高宽减半(步幅为2)通道乘以2,再接多个高宽不变的残差块。原创 2024-07-09 16:37:22 · 1303 阅读 · 0 评论 -
批量归一化
在原来我们会考虑到梯度爆炸或梯度消失的情况,学习率过大的话,上层的梯度比较大,可能会直接爆炸,学习率过小下层梯度小可能训练不动,但是加入批量归一化之后,我们将每一层的输入都固定在一个比较稳定的范围内,这样就可以使用更大的学习率,不用担心出现之前的那样问题。2、初始化一般是一个均值为0,方差为1的的分布,如果不是那么适合的话,我们可以去学习一个新的方差和均值,能更好的进行神经网络的学习,BN的作用是把我们的均值方差拉的比较好,每一个新的小批量都会重新计算其均值和方差。momentum步长。原创 2024-07-09 11:18:15 · 741 阅读 · 0 评论 -
含并行连结的网络
2、GoogLeNet将9个设计精细的Inception块与其他层(卷积层、全连接层)串联起来,是第一个达到有上百层的网络。它通过不同窗口形状的卷积层和最大汇聚层来并行抽取信息,并使用1×1卷积层减少每像素级别上的通道维数从而降低模型复杂度,主要优点是模型参数小,计算复杂度低。2、并不强求最后的stage得出来的个数等于类别数,可以通过全局avegpool得到的结果拉成通道数的向量,在使用全连接层将其映射到相应的标号上。变种的1×7、7×1(3同理)卷积层是一个先看行的信息,另外一个在看列的信息。原创 2024-07-06 23:28:56 · 600 阅读 · 0 评论 -
网络中的网络 NiN
3、最后使用全局平均池化层得到输出(输出通道数是类别数),全局池化层它的高宽等于输入的高宽,等价于对一个类别来说,把它的平均拿出来,把这个值当做类别的预测,再加上soft max就能得到我们的预测了,这样我们就可以不用使用全连接层了,减少我们所占用内存的参数个数。3、一个卷积层后跟两个全连接层(1*1卷积,步幅1,无填充,输出形状跟卷积层输出一样,起到全连接作用):1×1卷积层相当于一个全连接层,它所做的操作是,按照像素去逐一做的全连接层。1、卷积层的参数:输入的通道数乘以输出的通道数再乘以窗口的高宽。原创 2024-07-06 22:55:11 · 904 阅读 · 0 评论 -
使用块的网络 VGG
1、VGG-11使用可复用的卷积块构造网络。不同的VGG模型可通过每个块中卷积层数量和输出通道数量的差异来定义。2、不同次数的重复块得到不同的架构,eg:VGG-16(卷积层和全连接层相加的总数)2、VGG块:3*3卷积(pad=1,n层,m通道)、2*2最大池化层。2、块的使用导致网络定义的非常简洁。使用块可以有效地设计复杂的网络。3、深层且窄的卷积(即3×3)比较浅层且宽的卷积更有效。1、深度学习追求更深更大,使用VGG将卷积层组合为块。1、多个VGG块后接全连接层。一、AlexNet与VGG。原创 2024-07-06 21:17:38 · 254 阅读 · 0 评论 -
深度卷积神经网络 AlexNet
2、relu与sigmoid的相比,relu在正值的梯度更大,梯度在正区间恒为1,在负区间为0,并且在零点的时候,relu的一阶导更好一点,Sigmoid 函数的导数在极值处(接近0或1)非常小,会导致梯度在反向传播过程中迅速衰减。1、在90年代的时候,数据量不是特别大,计算也比较均匀, 我们常用是神经网络,因为神经网络是一个比较便宜的框架,模型是比较小的,因为做了一个随机梯度下降,所以对内存的要求并不是特别高。4、计算能力和数据所要的算法能力,他们在不同阶段的发展程度,导致大家对网络的选取有不同的偏好。原创 2024-07-06 13:42:05 · 589 阅读 · 0 评论 -
经典卷积神经网络 LeNet
eval是将模型设置为评估模式,评估模式就不会改变模型参数了可以用来预测结果;#如果未提供设备参数,则使用模型第一个参数的设备作为默认设备。#(i + 1) % (num_batches // 5)每训练到一个阶段时(5次中的每一次)会更新可视化数据。# 训练损失之和,训练准确率之和,样本数。"""使用GPU计算模型在数据集上的精度""""""用GPU训练模型(在第六章定义)"""#我们传入的是28*28,所以加了padding。# 正确预测的数量,总预测的数量。计算的是当前批次的总损失。原创 2024-07-04 21:37:25 · 894 阅读 · 0 评论 -
池化层(最大、平均)
1、卷积层对位置非常敏感,使用卷积层时,可能一个地方的轻微变动都会使结果发生变化,我们希望不要这么敏感,就有了池化层(更加柔和)。(1)对于CNN卷积核可学习是指,卷积核的数值不是预先固定的,而是在训练过程中通过反向传播算法自动调整和优化的。2. 前向传播:在每一次前向传播中,卷积核对输入数据进行卷积操作,生成特征图。5. 参数更新:使用优化算法(如梯度下降法),调整卷积核的值。2、二维最大池化:返回滑动窗口中的最大值,每个窗口中最强的模式信号。(步骤:1. 初始化:卷积核的初始值通常是随机生成的。原创 2024-07-04 14:20:21 · 958 阅读 · 0 评论