![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
深度学习
文章平均质量分 84
包含深度学习的一些知识点,一些网络结构的详解,以及对YOLOv5系列和图像分割的一个补充
tt丫
最近比较忙,评论可能比较晚回复,真的很不好意思呜呜呜,因为有一些太久没用我已经忘了,要回复的话我要重新过一遍呜呜呜,不好意思,等这阵子忙完我统一回复,sorry
展开
-
小型中文版聊天机器人
自己用pytorch搭建模型,训练一个小型的中文闲聊机器人。原创 2023-06-10 20:30:20 · 3380 阅读 · 3 评论 -
深度学习之优化算法
目录一、优化算法与深度学习二、深度学习中优化算法的常见算法三、总结四、常用优化算法的代码调库实现一、优化算法与深度学习1、优化算法对于深度学习的意义 深度学习中的优化问题通常指的是:寻找模型上的一组参数θ,它能显著地降低(最小化)代价函数J(θ),通常也有采取最大化问题转化为最小化问题再优化的方法。 优化算法直接影响模型的训练效率。2、优化算法与深度学习的关系优化算法的目的:降低训练误差;原创 2023-01-28 13:44:19 · 3039 阅读 · 0 评论 -
长短期记忆(LSTM)详解
目录一、背景二、原理三、总结四、LSTM的优缺点五、LSTM代码实现一、背景 当时间步数(T)较大或时间步(t)较小的时候,RNN的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但是无法解决梯度衰减的问题。这个原因使得RNN在实际中难以捕捉时间序列中时间步(t)距离较大的依赖关系。因此LSTM应运而生。 RNN详解可以看看:RNN循环神经网络_tt丫的博客-CSDN博客_rnn应用领域二、原原创 2023-01-23 10:10:19 · 16777 阅读 · 0 评论 -
门控循环单元(GRU)
目录一、背景二、原理三、GRU的优缺点四、代码实现GRU一、背景 当时间步数(T)较大或时间步(t)较小的时候,RNN的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但是无法解决梯度衰减的问题。这个原因使得RNN在实际中难以捕捉时间序列中时间步(t)距离较大的依赖关系。因此GRU应运而生。 RNN详解可以看看:RNN循环神经网络_tt丫的博客-CSDN博客_rnn应用领域二、原理1、前向传播(1)重置门和原创 2023-01-21 10:06:08 · 3581 阅读 · 1 评论 -
几个卷积神经网络总结
LeNet —— 卷积层(含激活函数)+ 池化层,末尾加全连接层作为判别AlexNet —— 模块加宽,增加通道数🌳网络结构方面:(1)使用ReLU作为激活函数代替了传统的Sigmoid(2)重叠最大池化(3)使用dropout🌳数据预处理方面:图像增广,数据增强🌳计算性能方面:多GPU训练自AlexNet之后的两个方向:小卷积核和多尺度VGG —— 加深网络深度。原创 2023-01-08 19:46:57 · 1008 阅读 · 0 评论 -
DenseNet详解
目录一、DenseNet网络的背景二、DenseNet网络结构四、DenseNet优缺点五、DenseNet代码实现一、DenseNet网络的背景 DenseNet模型的基本思路与ResNet一致,但它建立的是前面所有层与后面层的密集连接(即相加变连结),它的名称也是由此而来。 DenseNet的另一大特色是通过特征在通道上的连接来实现特征重用。这些特点让DenseNet的参数量和计算成本都变得更少了(相对ResNet),效果也原创 2023-01-08 14:40:24 · 21525 阅读 · 5 评论 -
GoogLeNet详解
目录一、GoogLeNet网络的背景二、GooLeNet网络结构三、GooLeNet的亮点四、GooLeNet代码实现一、GoogLeNet网络的背景想要更好的预测效果,就要从网络深度和网络宽度两个角度出发增加网络的复杂度。但这个思路有两个较为明显的问题:首先,更复杂的网络意味着更多的参数,也很容易过拟合;其次,更复杂的网络会消耗更多的计算资源,而且卷积核个数设计不合理,导致了卷积核中参数没有被完全利用(多数权重都趋近0)时,会造成大量计算资源的浪费原创 2023-01-07 11:06:19 · 18455 阅读 · 2 评论 -
NiN详解
这也是为了解决全连接层参数过多的问题。对于分类问题,在之前通常的解决方法是:在最后一个卷积层的feature map和全连接层连接,最后通过softmax进行分类。但全连接层带来的问题就是参数空间过大,容易过拟合。早期AlexNet采用了Dropout来减轻过拟合,提高网络的泛化能力,但依旧无法解决参数过多的问题。而全局平均池化的做法是将全连接层去掉,在最后一层,将卷积层数目设为与类别数目一致,然后全局pooling, 从而直接输出属于各个类的结果分数。原创 2023-01-04 15:31:46 · 1420 阅读 · 2 评论 -
VGG详解
一、VGG网络的背景二、VGG网络结构1、各网络结构参数图示2、输入3、双层 —— 一层卷积+(一层卷积+最大池化)4、三层 —— 两层卷积+(一层卷积+最大池化)5、全连接层——分类判决6、拓展:VGG16_bn三、VGG网络的亮点——连续小卷积核代替大卷积核四、VGG网络的不足五、VGG代码实现一、VGG网络的背景AlexNet问世之后,很多学者通过改进AlexNet的网络结构来提高自己的准确率,主要有两个方向:小卷积核和多尺度。而VGG的作者们则选择原创 2023-01-04 09:16:19 · 4187 阅读 · 0 评论 -
AlexNet详解
分为上下两层,分别对应两个GPU的操作过程,除了中间某些卷积层和全连接层会有GPU间的交互外,其他层都是由两个GPU分别计算结果。除去局部响应规范化操作(LRN),AlexNet一共包含8层,前5层由卷积层(其中卷积层1、2、5后含有下采样层)组成,(中间还夹带一个平均池化),剩下的3层为全连接层。最后一层全连接层输出,得到1000个图像分类标签对应的得分值。除了GPU并行结构的设计,AlexNet网络结构和LeNet很相像。原创 2023-01-03 11:10:59 · 4408 阅读 · 4 评论 -
机器学习之softmax
###################全连接网络定义部分########################def __init__(self, num_input, num_output): # 全连接层初始化# 参数初始化def forward(self, input): # 前向传播计算# 全连接层的前向传播,计算输出结果self.output = np.matmul(self.input,self.w)+self.b#利用矩阵乘法(Y=XW+B)——(n,c)原创 2022-12-23 10:50:54 · 3321 阅读 · 0 评论 -
impot torch报错UnicodeDecodeError
impot torch报错UnicodeDecodeError。可能是因为torch里有非utf-8编码的吧。原创 2022-09-02 13:27:45 · 254 阅读 · 0 评论 -
CogView中网络结构的总体构建
目录一、构建图二、代码解析一、构建图二、代码解析这部分代码在model/gpt2_modeling.py中1、__init__(1)参数设定num_layers:transformerLayer的层数;vocab_size:词典大小;hidden_size:输入层大小;num_attention_heads:attention head的数目;embedding_dropout_prob:embedding的dropout概率;attention.原创 2022-08-30 21:59:17 · 686 阅读 · 0 评论 -
CogView整体图解
目录一、总括二、数据集输入(token)三、Transformer(GPT)四、TransformerLayer五、Self Attention六、MLP一、总括二、数据集输入(token)1、生成由cogdata生成二进制数据集(生成token)cogdata用法:GitHub - Sleepychord/cogdata: A light-weight data management system for large-scale pretraining2、原创 2022-08-30 21:53:02 · 1793 阅读 · 1 评论 -
CogView中的Word embeddings (parallel)
目录一、用途二、代码解析一、用途转化为词向量咯二、代码解析这一部分在mpu/layers.py里的VocabParallelEmbedding类里实现1、__init__def __init__(self, num_embeddings, embedding_dim, init_method=init.xavier_normal_): super(VocabParallelEmbedding, self).原创 2022-08-29 14:35:25 · 1187 阅读 · 4 评论 -
CogView中的Transformer
目录一、原理二、代码解析一、原理1、总体介绍将n个的 transformer blocks 打包在一起,即 n * transformer layer + final layernorm 两部分组成2、具体实现(1)不采取稀疏处理(默认)(2)采取稀疏训练新建的rmask(k为输入的总列数;w为窗口大小;t为调整窗口数量所用)(3)稀疏推断二、代码解析1、__init__(1)参数设定.........原创 2022-08-29 14:53:36 · 1275 阅读 · 0 评论 -
CogView中的单层TransformerLayer
目录一、原理二、代码解析一、原理输入层:hidden state,shape为(b, s, h);最终输出也是(b,s,h);1、LayerNorm简单而言,LayerNorm就是针对每条样本,对每条样本的所有特征做归一化。为的是让当前层的参数稳定下来,避免梯度消失或者梯度爆炸,方便后面的继续学习。公式:(其中防止分母为0)2、self attention详见3、残差结构的引入可以看看深度学习之Resnet详解|CSDN创作打.原创 2022-08-29 14:46:41 · 826 阅读 · 0 评论 -
CogView中的Self Attention
一、原理1、为什么需要self attention模仿人类注意力,希望将有限的注意力集中在重点信息上,快速得到最有效的信息。比如说关注图上的“小鸟”,希望把重心放在图中的小鸟上。如何把关注点放在我们想关注的数据上?最简单的思路就是对数据进行加权处理,关注的部分权重大。2、基本公式:向量的点积的几何意义是一个向量在另一个向量上的投影,点积越大,两向量间的相关性越强。所以结合Q,K代表的意思,即表示查询的和索引的相关度矩阵,即得到相似度矩阵。除以:因为该方法假设 Q 和 K.原创 2022-08-29 14:38:26 · 805 阅读 · 0 评论 -
CogView中的MLP
目录一、原理二、代码解析一、原理1、总体介绍MLP是“多层感知器”,也被称为前馈神经网络或人工神经网络(ANN)原理图如下所示:令f为激活函数,则有:2、具体内容(1)输入输入的shape:(b,s,h);(2)ColumnParallelLinear(h->4h)权重矩阵W的shape:(4hp,h);所以 X*W^T 的shape为:(b,s,4hp);偏置矩阵B的shape:(1,4hp);(默认原创 2022-08-25 15:34:40 · 752 阅读 · 0 评论 -
CogView中的ColumnParallelLinear
目录一、原理二、代码详解1、__init__(1)参数说明(2)沿第二个维度划分权重矩阵(获取分给每个进程的权重矩阵列数)(3)初始化权重矩阵(W)和偏置矩阵(b)2、forward一、原理简单来说就是基于模型分片地按列切分权重的线性变换。权重:W = [W_1, ..., W_p](p为分区数量,即GPU数量);偏置:B =[b_1, ..., b_p];输入:X(每个GPU都拥有相同的X);输出:Y;表达式:Y = XW+B=X*[W_1, ...原创 2022-08-25 15:31:05 · 1192 阅读 · 2 评论 -
CogView中的RowParallelLinear
目录一、原理二、代码解析一、原理简单来说就是基于模型分片地按行切分权重的线性变换。权重:(p为分区数量,即GPU数量);偏置:B ;输入:[X_1, ..., X_p];输出:Y;表达式:二、代码解析1、__init__(1)参数说明input_size:矩阵W的第一维;output_size:矩阵A的第二维度;bias:是否添加偏置;input_is_parallel:如果为真,我们假设输入已经在GPU上拆分,并且不再拆分。假则需要我们自行拆原创 2022-08-25 15:30:47 · 537 阅读 · 0 评论 -
跑通CogView教程
一、代码下载二、环境配置三、下载 image tokenizer——vqvae_hard_biggerset_011.pt四、下载模型五、准备input的文字六、运行七、结果一、代码下载GitHub - THUDM/CogView: Text-to-Image generation. The repo for NeurIPS 2021 paper "CogView: Mastering Text-to-Image Generation via Transformer原创 2022-07-31 23:06:05 · 1917 阅读 · 17 评论 -
基于高频词抽样+负采样的CBOW模型
深度学习入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。原创 2022-03-19 09:41:44 · 2862 阅读 · 0 评论 -
基于分层softmax的CBoW模型详解
入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。一、朴素CBoW模型介绍及代码实现word2vector之CBoW模型详解_tt丫的博客-CSDN博客二、使用分层softmax改进CBoW模型的原因CBoW模型是用上下文X来预测中间词Y,那么其输出层(输出是1 ∗ V的向量)有V个神经元,我们对这V个神经元一开始是等同对待的,但是如果V的数值非常大,等同对待,会导致效率过低,计算量过大。三、背景知识——哈夫曼树和逻辑回归Sigmoi原创 2022-03-16 09:37:37 · 2818 阅读 · 0 评论 -
NLP之文本特征提取详解
深度学习入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。一、词袋模型(Bag of Words, BoW)1、目的将不定长的文本型数据转化为定长的数值型数据,方便用作机器学习模型的输入2、主要思想建立一个词典库,其中包含训练语料库的所有词语,每个词语都对应一个唯一识别的编号,利用one-hot文本来表示;文档的词向量维度与单词向量的维度相同,每个位置的值是对应位置词语在文档中出现的次数。3、具体算法步骤(1)对所有文本进行单原创 2022-03-03 20:15:02 · 11168 阅读 · 0 评论 -
word2vector之Skip_Gram模型详解
深度学习入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。目录一、前景知识二、Skip-gram模型思想三、Skip-gram模型结构分析1、网络图2、网络层次级分析3、注意点四、代码实现朴素skip-gram一、前景知识CBoW模型word2vector之CBoW模型详解_tt丫的博客-CSDN博客二、Skip-gram模型思想Skip-gram模型跟CBoW模型是反过来的。CBoW模型通过上下文来预原创 2022-03-13 21:07:26 · 5331 阅读 · 3 评论 -
word2vector之CBoW模型详解
深度学习入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。目录一、前景知识二、CBoW模型思想三、CBoW模型结构分析1、网络结构图2、CBoW模型 Vs NNLM3、网络层次级分析四、代码实现一、前景知识二、CBoW模型思想通过上下文来预测当前值,即像我们的填词游戏。CBoW模型等价于一个词袋模型的向量乘一个矩阵,得到一个连续的embedding向量。三、CBoW模型结构分析1、网络结构图原创 2022-03-13 20:59:50 · 5456 阅读 · 2 评论 -
基于神经网络语言模型的词向量生成(NNLM)详解
深度学习入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。目录一、NNLM的网络结构分析二、NNLM的代码实现一、NNLM的网络结构分析神经网络语言模型NNLM是概率语言模型,它通过神经网络来计算概率语言模型中每个参数。模型如图所示模型输入:,即输入的是的前n-1个词模型输出:根据这已知的 n- 1 个词预测下一个词其中上图:语料库的词向量表示:矩阵C ——大小为 |V| * m ,V表示语料中的总词..原创 2022-03-05 19:19:13 · 3462 阅读 · 3 评论 -
NLP之文本预处理详解
入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。Ps预防针:与英文分类文本预处理相比,中文分类文本预处理更加复杂关键一、进行文本预处理的原因解决特征空间高维性、特征分布稀疏和语义相关性毕竟计算机不是人嘛,我们的语言需要经过一定的预处理让他们可以读入以及方便后续训练分类,接下来我们来说说文本预处理有哪些常用的方法二、去除停用词1、停用词定义:在信息检索中,为节省存储空间和提高搜索效率,在处理文本之前自动过滤掉某些字或词,这原创 2022-02-28 22:20:57 · 7528 阅读 · 2 评论 -
pytorch加载torchvision中预训练好的模型时,更改模型保存地址
入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。感谢【Pytorch】加载torchvision中预训练好的模型并修改默认下载路径(使用models.__dict__[model_name]()读取) - 灰信网(软件开发博客聚合)今天我在执行这行代码时,它开始给我把resnet101的预训练模型下载安装在我的C盘里!!!model = getattr(models, backbone)(pretrained)可是我的C盘已经要这原创 2022-02-25 10:11:34 · 2931 阅读 · 1 评论 -
conda安装albumentations
入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。PS:今天用conda装albumentations的时候遇到了一个小问题,记录一下conda install -c conda-forge imgaugconda install -c conda-forge albumentations另外推荐一下albumentations,它是一个快速训练的数据增强库,挺好用的~...原创 2022-02-25 08:52:10 · 2584 阅读 · 0 评论 -
用conda安装sklearn
入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。PS:今天用conda装sklearn的时候遇到了一个小问题,记录一下🌳conda安装不是直接安装sklearn,他们的名字不太一样,在这里翻了个车 conda install scikit-learn这样就OK啦~🌳这里补充pip安装sklearn的方法pip install -U scikit-learn欢迎大家在评论区批评指正,谢谢啦~...原创 2022-02-25 08:37:52 · 10115 阅读 · 0 评论 -
空洞卷积详解
入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。一、感受野(知道的可以直接跳)感受野指:卷积神经网络每一层输出的特征图上的像素点在输入图片上映射的区域大小,即FC层每个输出节点的值都依赖FC层所有输入,而CONV层每个输出节点的值仅依赖CONV层输入的一个区域,这个区域之外的其他输入值都不会影响输出值,该区域就是感受野。简单来说就是特征图上的一个点对应输入图上的区域。举个栗子:一个5*5的特征图经过2个3*3卷积核后(步长为1,padd原创 2022-02-23 11:09:27 · 21228 阅读 · 0 评论 -
全卷积网络FCN详解
入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。一、FCN提出原因为了解决图像分割这种像素级别的问题。图像分类是图像级别的,一般使用CNN为基础框架进行分类,但是CNN难以应用于图像分割原因:(1)CNN在进行卷积和池化过程中丢失了图像细节,即feature map size渐渐减小,因此不能很好指出物体的具体轮廓,指出每个像素具体属于哪个物体,从而无法做到精确的分割。(2)一般CNN分类网络都会在最后加入一些全连接层,经过s原创 2022-02-21 21:04:11 · 10658 阅读 · 0 评论 -
U-Net详解
入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。一、U-Net产生的原因以及简单介绍????产生原因及背景:U-Net 是为了解决生物医学图像分割问题而产生的。因为它的效果很好,所以后来被广泛应用于语义分割的各个方向:比如卫星图像分割等等。????变体:U-Net是由FCN衍生而来的,都是 Encoder-Decoder 结构,结构比较简单。想了解FCN可以看博主往期文章全卷积网络FCN详解_tt丫的博客-CSDN博客原创 2022-02-22 10:53:26 · 33304 阅读 · 8 评论 -
deeplab-v3+原理详解
入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。一、deeplab-v3+提出原因与简单介绍deeplab-v3+是一个语义分割网络,它基于deeplab-v3,添加一个简单有效的Decoder来细化分割结果,尤其是沿着目标对象边界的分割结果,即采用空间金字塔池模块或编解码结构二合一的方式进行实现。二、deeplab-v3+网络结构图可以看到他是Encoder-Decoder网络结构。接下来我们分成Encoder和Decoder进行原创 2022-02-23 08:39:56 · 21685 阅读 · 0 评论 -
基于神经网络的图像分割
入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。一、图像分割简介与分类????图像分割:把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标。简单来说就是把图像中的对象分割出来????常用方法:基于阈值的分割方法;基于区域的分割方法;基于边缘的分割方法;基于特定理论的分割方法等(本篇只说明利用神经网络实现的图像分割方法)????图像分割的类型:语义分割和实例分割语义分割:所有相同类型的对象都使用一个类标签进行标记 实例分割:原创 2022-02-22 20:22:07 · 7679 阅读 · 7 评论 -
RNN循环神经网络
目录一、RNN出现的意义二、引入 —— 语言模型三、RNN原理四、RNN的应用以及不足五、RNN代码实现六、经典RNN变体七、双向循环神经网络(BRNN)一、RNN出现的意义我们所熟悉的CNN,它的输出都是只考虑前一个输入的影响而不考虑其它时刻输入的影响(即只能单独去处理一个又一个的输入)但是, 对于一些与时间先后有关的, 一序列的信息(即前后输入是有关系的),比如进行文档前后文内容的预测等等, 这时候CNN的效果原创 2022-02-15 17:27:01 · 3169 阅读 · 3 评论 -
制作自己的数据集
入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。虽然现在有很多可以现用的数据集,比如说coco,MINIST等,但有些时候需求不一样,还是没法偷懒,要自己制作shu...原创 2022-02-09 20:39:15 · 9394 阅读 · 9 评论 -
深度学习之PAN详解
深度学习入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。一、提出原因说到PAN,总能联想到与之相似的FPN。有关FPN的介绍分析可以康康博主之前的文章(PAN推荐和FPN结合一起学习)深度学习中的FPN详解_tt丫的博客-CSDN博客FPN是自上向下的一个特征金字塔,把高层的强语义特征传递下来,对整个金字塔进行增强,不过它只增强了语义信息,却对定位信息没有传递(或者说是因为向上传递路径太长,传递效果不好)。PAN就是针对这一点,在FPN原创 2022-01-22 15:43:12 · 21662 阅读 · 8 评论