深度学习
文章平均质量分 65
陈壮实的搬砖生活
软件工程渣硕一个,移动开发死粉(目前仅会android),OCR、AIGC爱好者,欢迎和大家交流
展开
-
结合数学原理详解交叉熵损失(Cross Entropy Loss)
如:使用Sigmoid激活函数时,假设给定输入为x,label为y,其中y的取值为0或者1,是一个分类问题。再回到神经网络上,神经网络可以看作是一个黑盒,每个类别的输出是一个概率,每个样本的输出可以看作是一次独立抽样,每个label可以看出是一次观测值。当输出a接近0或者1时,Sigmoid函数的梯度时候是非常小的,接近0故导致在使用最小均方差Loss时,模型参数w会学习的非常慢。所以,当与预测值y_hat的概率和真实概率一致,则满足信息熵的最短特性,从而损失最小。根据图中右侧公式,求导后可得p=0.8.原创 2024-08-18 10:21:33 · 446 阅读 · 0 评论 -
深度学习之激活函数
激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。在神经元中,输入的input经过一系列加权求和后作用于另一个函数,这个函数就是这里的激活函数。原创 2024-06-12 10:09:53 · 1204 阅读 · 1 评论 -
Swin-Transformer白话详解
(2)再进行位置编码,这里的位置编码,有一维位置编码,二维位置编码,相对位置编码。实验表明,一维位置编码相对更好;2D(分别计算行和列的编码,然后求和)的效果还不如1D的每一层都加共享的位置编码也没啥太大用!(1)Vit就是将图片切割各个patch, 然后拉平,进行线性映射(linear线性层);结论:编码有用,但是怎么编码影响不大,干脆用简单的得了。二、ViT(图像transformer)在检测任务中:可能使用2D更好。2.位置编码的作用和选择。原创 2024-06-03 13:55:49 · 2307 阅读 · 0 评论 -
白话Transformer&常见面试问题
Tranformer现如今无论是在CV还是NLP,甚至现在非常或的LLM领域都非常重要!该架构是谷歌在2017年《Attention is all you need》中提出的,下面将分析本人对各个模块的理解+算法面试中的常见问题。原创 2024-05-20 16:00:30 · 1632 阅读 · 1 评论 -
深度学习入门:pytorch基础学习、各模块解析、调优技巧和问题结局
整理了一下之前写的深度学习基础知识文章,方便浏览!原创 2024-03-21 10:08:11 · 273 阅读 · 0 评论 -
python_Anaconda虚拟环境导出以及重现
我们有时候需要把一个虚拟环境迁移到别的服务器上面去,这时候,我们有多种办法可以解决。在重新激活所需环境即可。但这种方法有些麻烦!里面就包含各种安装包的名字及版本。修改上面类似代码的第一行路径!原创 2024-03-14 16:24:38 · 2258 阅读 · 0 评论 -
PyTorch基础学习系列、深度学习基础模块、调优合集
整理了一下之前写的深度学习基础知识文章,方便浏览!原创 2024-03-11 14:00:46 · 369 阅读 · 3 评论 -
深度学习经典算法详细模型图
很早绘制的一些模型图,当时放在CSDN的草稿里,今天发现了,把它分享出来吧,还能更清晰的帮助理解!原创 2024-01-09 11:08:32 · 685 阅读 · 1 评论 -
扩散模型(一)——DDPM推导笔记-大白话推导
各位佬看文章之前,可以先去看看这个视频,并给这位up主点赞投币,这位佬讲解的太好了:大白话AI (1)正态分布的概率密度函数f(x)=12πσe−(x−μ)22σ2,记为N(μ,σ2)f(x) = {1 \over \sqrt{2 \pi } \sigma} e^{-{{(x-\mu)^2} \over {2 \sigma^2}}} ,记为N(\mu, \sigma^2)f(x)=2πσ1e−2σ2(x−μ)2,记为N(μ,σ2) 当μ=0,σ2=1\mu = 0, \sigma^2=原创 2023-12-21 23:01:49 · 3269 阅读 · 13 评论 -
pytorch中nn.ModuleList()和python的list的区别
你可以把任意 nn.Module 的子类 (比如 nn.Conv2d, nn.Linear 之类的) 加到这个 list 里面,方法和 Python 自带的 list 一样,无非是 extend,append 等操作。使用 Python 的 list 添加的卷积层和它们的 parameters 并没有自动注册到我们的网络中。但不同于一般的 list,加入到 nn.ModuleList 里面的 module 是会自动注册到整个网络上的,同时 module 的 parameters 也会自动添加到整个网络中。原创 2023-06-05 12:05:11 · 305 阅读 · 0 评论 -
《深度学习之模型设计:核心算法与案例实践》知识记录
CNN通过分层进行信息抽象,随着网络的加深,抽象层级也加深。更深的网络层能学习到更加复杂的表达。网络过浅,则意味着要学习的表达非常复杂,这是很难做到的。网络足够深,则每层需要学习的变换比较简单,从而使模型性能更优。现在深度学习模型结构的主要模块是。,这些是标准的非线性变换模块。(2)dropout的设计。但模型中用到的更多的是。(1)pool的设计。...原创 2022-08-18 22:45:14 · 484 阅读 · 0 评论 -
深度学习中的模型设计
分组卷积可以大幅降低计算量。分组卷积的类型有:(1)(2)(3)(4)(5)原创 2022-08-08 22:43:35 · 2777 阅读 · 0 评论 -
python项目调优合集(长期更新):提升准确率、训练提速、pytorch trich
BN将网络中每一层的输出标准化为正态分布,并使用缩放和平移参数对标准化之后的数据分布进行调整,可以将集中在梯度饱和区的原始输出拉向线性变化区,增大梯度值,缓解梯度消失问题,并加快网络的学习速度。如果模型更新幅度非常小,其绝对值1000,很可能是梯度爆炸;使用ResNet可以轻松搭建几百层、上千层的网络,而不用担心梯度消失问题.1)使用BatchNorm批标准化。2)选用Relu()激活函数。3)使用残差网络ResNet。梯度爆炸常见原因使用了。.........原创 2022-07-28 10:32:31 · 721 阅读 · 2 评论 -
python运行问题合集(长期更新):PyCharm中可运行,终端报错找不到自己创建的包;
当你在IDLE中启动解释器时,当前的工作目录就是项目目录,能顺利调用同项目中的模块;,如果当时的位置不是项目目录,那么项目目录中的模块就不会被找到。因为PyCharm在启动解释器(Interpreter)的时候。......原创 2022-07-28 10:13:32 · 2280 阅读 · 0 评论 -
SE(Squeeze and Excitation)模块的理解以及代码实现
SEBlock并非一个完整的网络,而且一个子结构,可以嵌在其他分类或检测模型中。SEBlock的核心思想是通过网络根据loss去学习特征权重,使得有效的featuremap权重更大,无效或效果小的featuremap权重更小的方式去训练模型已达到更好的结果。当然,SEblock嵌在原有的一些分类网络中不可避免地增加了一些参数和计算量,但是在效果面前还是可以接受的。.........原创 2022-07-26 23:28:49 · 9209 阅读 · 1 评论 -
pytorch中对BatchNorm2d()函数的理解
机器学习中,进行模型训练之前,需对数据做归一化处理,使其分布一致。在深度神经网络训练过程中,通常一次训练是一个batch,而非全体数据。每个batch具有不同的分布产生了internalcovarivateshift问题——在训练过程中,数据分布会发生变化,对下一层网络的学习带来困难。BatchNormalization强行将数据拉回到均值为0,方差为1的正太分布上,一方面使得数据分布一致,另一方面避免梯度消失。...原创 2022-07-25 22:47:53 · 9701 阅读 · 3 评论 -
吴恩达-02 改善深层神经网络:超参数调试、正则化以及优化
L2。原创 2022-07-18 22:38:30 · 612 阅读 · 3 评论 -
torch.nn.CTCLoss()的使用
CTC(Connectionist Temporal Classification)中文称之为“连续时序分类”,主要解决Label和output不对齐的问题。优点: 不用强制对齐标签,即标签可边长。仅需要输入序列和监督标签序列即可进行训练。应用场景: 场景文本识别、语音识别、手写字体识别等场景。Step1: 获取CTCLoss对象参数说明:(1) blank: 空白标签所在的label值,默认为0,需要根据实际的标签定义进行设定;(2) reduction: 处理output losses的方式,原创 2022-07-12 22:39:56 · 2832 阅读 · 0 评论 -
CUPTI error: CUPTI could not be loaded or symbol could not be found.
这个问题非常麻烦,这里提供了很多解决方式但这些解决方式都没有解决到我的问题。注意,上面链接中的这些文件是在:这个目录里面。但即使我将图中文件添加到指定位置,也没有解决问题!我发现该报错与我在代码中使用了Tensorborad有关,然后我就直接把Tensorboard去除了。这个是原来的,修改之后如下:...原创 2022-06-27 09:25:48 · 960 阅读 · 0 评论 -
python项目,关闭本地电脑,使用screen让程序脱机运行在服务器上
对应深度学习,目前我们都是在本地写代码,然后通过ide(如pycharm)连接服务器,将代码和数据传输上去,然后在ide中运行代码,即可在服务器上跑程序了。pycharm连接服务器请看此博文pycharm连接服务器如果仅仅是这样,那么本地的电脑已关闭,服务器上跑的程序就关闭了。那么怎样关闭本地电脑,同时服务器上面又可以继续跑程序呢?请看下文。本地IDE是:PyCharm服务器是Linux系统Step1: 检测有无安装screen使用命令:查看是否有无screen,如报错,说明没有安装screen.S原创 2022-06-26 15:15:17 · 1775 阅读 · 4 评论 -
pytorch中view()与permute()的维度变换的区别
两者都可以对tensor矩阵进行维度变化,例如:原 x.shape = [batch_size, c, h, w], 使用 x.view(batch_size, c, w, h), 即可将x的维度变换成:[batch_size, c, w, h]。也可以使用,x.permute(batch_size, c, w, h)将维度变换成:[batch_size, c, w, h]。Step1: 先按序将数据展开;Step2: 再按照view(a, b, c)中的a,b,c进行维度填充。例如:其变换过程如图原创 2022-06-17 12:07:16 · 826 阅读 · 0 评论 -
举例说明tf中LSTMCell的cell、num_unit是什么意思
LSTM一般都会一连串的小团团,这一个个小团团就表示一个cell。如上图所示。上图中,我们很多步计算中都有用到W, 其实num_units就表示线性层的隐藏节点个数,也即输出的维度。例如:num_units = 128, 就表示我们输出的维度是[128, 1](也有可能是[1, 128],看具体需要,两者只差一个转置,没有太大的本质区别)。我们的输入xt的维度为[28, 1], 那么[ht−1,xt]=[128+28,1]=[156,1][h_{t-1},x_t]=[128+28, 1]=[156,原创 2022-06-07 21:56:41 · 1380 阅读 · 0 评论 -
举例理解transformer中的位置编码
在transformer的结构图中,由一个“Positional Encoding”,即位置编码,查看了以下资料后,稍微有点儿理解了,记录于此。 由于transformer是并行化运算,所以输入的信息中没有位置信,而在语音文本中,绝大部分都是有语序的。例如:我爱你,要是翻译成’“You love me”,那意思就完全不一样了。于是,就有了位置编码,其作用就是让输入数据携带位置信息,是模型能够找出位置特点。 在transformer中的位置编码中,其编码公式如下:PE(pos,2i)=sin(原创 2022-06-07 15:29:49 · 8179 阅读 · 9 评论 -
Self-Attention机制的计算详解
个人理解,就是对参数进行“加权求和”。 其中,XXX表示输入的数据,Q,K,VQ,K,VQ,K,V对应内容如图,其值都是通过XXX和超参(先初始化,后通过训练优化)进行矩阵运算得来的。 结合代码进行理解:Step1: 初始化WQ,WK,WVW^Q , W^K,W^VWQ,WK,WV矩阵 假设三种操作的输入都是同等维度的矩阵,这里每个特征维度都是768.即三者的维度:WQ.shape=[768,768]WK.shape=[768,768]WV.shape=[768,768]W^Q.sh原创 2022-06-07 10:51:43 · 17338 阅读 · 2 评论 -
详解RNN(数据解释、结构、计算、优缺点)
传统的神经网络就像这种全连接网络,每个输入都和中间的隐藏层进行连接,然后输出。但这种网络,完全没有时序特点,无法深度挖掘具有时序特点的数据的特征。例如:x1 = ‘我的手机坏了’,x2 = ‘想买一个256g的苹果’。那么在全连接网络中,就很难理解‘256g的苹果’是真实的苹果还是手机了。 于是,就又了RNN(循环精神网络)。 RNN网络会在下一个x中输入前一个网络的输出,不废话,直接上图,以下是我自己理解的图:这个是很多网上经典的图:这张图是转载的一篇博文的,关于RNN这篇博文也写得非常好原创 2022-06-05 22:56:02 · 4654 阅读 · 1 评论 -
使用pycharm调试远程服务器上的程序(含调出远程终端)
请详见此文,写得非常好PyCharm连接远程服务器转载 2022-05-31 11:45:49 · 1052 阅读 · 1 评论 -
深度学习:标签平滑(Label Smoothing Regularization)
文章目录1.标签平滑的作用—防止过拟合2. 传统的交叉熵损失计算3.带有标签平滑的交叉熵损失的计算4.标签平滑与传统的交叉熵损失的比较与分析5. 标签平滑的应用场景1.标签平滑的作用—防止过拟合在进行多分类时,很多时候采用one-hot标签进行计算交叉熵损失,而单纯的交叉熵损失时,只考虑到了正确标签的位置的损失,而忽略了错误标签位置的损失。这样导致模型可能会在训练集上拟合的非常好,但由于其错误标签位置的损失没有计算,导致预测的时候,预测错误的概率比较大,也就是常说的过拟合。标签平滑可以在一定程度上防止原创 2022-05-18 22:44:25 · 5047 阅读 · 17 评论 -
深度学习step、iteration、epoch、batch、batch_size等专业名字的解释(持续更新中.ing)
文章目录说明1. batch和batch_size2. step、iteration、epoch说明全部基于自己的实践理解,如有不对之处,欢迎在评论区指出。1. batch和batch_size还是以例子进行解释吧,假设我们有2000个数据样本,设batch_size = 100,则 batch = 2000/100 = 20.注:batch_size 一般取32,64,128等2的N次方,batch的计算也是向上取整。2. step、iteration、epochstep和iteratio原创 2022-05-18 17:53:08 · 3377 阅读 · 0 评论 -
《PyTorch深度学习实践》12 RNN基础_使用RnnCell构造RNN
1. 说明本系列博客记录B站课程《PyTorch深度学习实践》的实践代码课程链接请点我2. 知识点(1)RNN由多个RnnCell组成,RnnCell中是由线性层组成,且每个RnnCell是一摸一样的,即同一个RnnCell.(2)对参数的理解input_size = 4 # 输入的维度,例如我们输入为:hello, 看起来是5个,但只有4个不同的字符,按下面顺序,[1, 0, 0, 0]即可表示e, 所以输入维度为4hidden_size = 4 # 输出的隐藏单元,自定原创 2022-04-26 21:35:22 · 1545 阅读 · 0 评论 -
《PyTorch深度学习实践》11CNN高级_ResidualBlock块(GPU版本)
1. 说明本系列博客记录B站课程《PyTorch深度学习实践》的实践代码课程链接请点我2. ResidualBlock作用:可有效解决梯度消失问题结构图如下:3. 代码# ---------------------------# @Time : 2022/4/25 11:32# @Author : lcq# @File : 11_CNN_GPU_Residual.py# @Function : CNN高级——实现Residual块,防止梯度消失# -------原创 2022-04-25 12:32:42 · 869 阅读 · 0 评论 -
《PyTorch深度学习实践》11CNN高级_Inception块(GPU版本)
1. 说明本系列博客记录B站课程《PyTorch深度学习实践》的实践代码课程链接请点我2. InceptionA块结构图3. 代码如下# ---------------------------# @Time : 2022/4/21 16:05# @Author : lcq# @File : 11_CNN_GPU_advance.py# @Function : CNN高级--GoogleNet的Inception实验# -------------------------原创 2022-04-25 11:15:15 · 1271 阅读 · 0 评论 -
《PyTorch深度学习实践》10CNN基础(GPU版本)
1. 说明本系列博客记录B站课程《PyTorch深度学习实践》的实践代码课程链接请点我2. 代码(代码有比较详细的注释)# ---------------------------# @Time : 2022/4/21 11:23# @Author : lcq# @File : 10_CNN_GPU_base.py# @Function : # ---------------------------import torchfrom torchvision import原创 2022-04-24 22:42:46 · 1261 阅读 · 0 评论 -
Anaconda新建环境并安装GPU版本的pytorch
1. 为什么要新建环境最近学习深度学习使用GPU训练更快,但在程序运行时发现之前安装的是CPU版本的pytorch.原本想着把CPU版本的pytorch删除,然后换上新的GPU版本pytorch.但一搜索,还挺麻烦的,怕在这过程中出现问题,而且以前写的一些代码也是CPU版本的,怕到时只有GPU版本的会出问题。于是,就想到了在Anaconda里新建一个gpu版本的环境,然后在里面安装GPU版本的pytorch。在网上找了各种方案,在我这种环境下不太适用,是综合了很多才最终解决,特记录在此。2. 安装CU原创 2022-04-21 11:02:07 · 989 阅读 · 0 评论 -
《PyTorch深度学习实践》09 多分类问题
1. 说明本系列博客记录B站课程《PyTorch深度学习实践》的实践代码课程链接请点我2. 代码加载了mnist数据库# ---------------------------# @Time : 2022/4/15 20:25# @Author : lcq# @File : 09_MultiClassification.py# @Function : 多分类问题# ---------------------------import torchfrom torchv原创 2022-04-20 16:49:08 · 884 阅读 · 0 评论 -
《PyTorch深度学习实践》08 加载数据集
1. 说明本系列博客记录B站课程《PyTorch深度学习实践》的实践代码课程链接请点我# ---------------------------# @Time : 2022/4/14 11:45# @Author : lcq# @File : 08_MyDataLoaderTest.py# @Function : # ---------------------------import torchimport numpy as npfrom torch.utils.d原创 2022-04-20 11:02:12 · 846 阅读 · 0 评论 -
《PyTorch深度学习实践》07加载数据集
1. 说明本系列博客记录B站课程《PyTorch深度学习实践》的实践代码课程链接请点我2. 代码# ---------------------------# @Time : 2022/4/13 20:20# @Author : lcq# @File : 07_MoreDateInput.py# @Function : 多维数据输入# ---------------------------import torchimport numpy as npimport ma原创 2022-04-13 22:18:42 · 264 阅读 · 1 评论 -
《PyTorch深度学习实践》06 用PyTorch实现Logistic回归
1. 说明本系列博客记录B站课程《PyTorch深度学习实践》的实践代码课程链接请点我2. Pytorch写代码的一般逻辑3. 代码# ---------------------------# @Time : 2022/4/12 18:17# @Author : lcq# @File : Logistic_Regression.py# @Function : PyTorch实现Logistic回归# ---------------------------import原创 2022-04-12 19:38:59 · 1179 阅读 · 0 评论 -
《PyTorch深度学习实践》05 用PyTorch实现线性回归
1. 说明本系列博客记录B站课程《PyTorch深度学习实践》的实践代码课程链接请点我2.代码这个篇章相对简单,直接贴上代码。代码解析直接看注释即可:# ---------------------------# @Time : 2022/4/12 16:29# @Author : lcq# @File : Linear_Regression.py# @Function : PyTorch实现线性回归# ---------------------------impor原创 2022-04-12 17:39:06 · 1236 阅读 · 0 评论 -
深度学习的实用层面<吴恩达深度学习_第2课_week1>
1. 数据分类数据一般分为<训练集(train)、验证机(dev)、测试集(test)>其中,验证集的作用是选择最好的模型,测试集用来评估。训练集验证集测试集(1)当数据量较小时(100、1000、1000)数据一般按照以下比例训练集验证集测试集60%20%20%(2) 当数据量较大时(几十万,百万级)数据一般按照以下比例训练集验证集测试集98%1%1%或者:训练集验证集测试集原创 2021-12-08 22:43:59 · 985 阅读 · 0 评论