
深度学习
文章平均质量分 77
以实战为线索,科普深度学习中常用的知识点
码农研究僧
计算机研究生、全栈领域优质创作者、阿里云专家博主、优快云内容合伙人、万码优才推广合伙人、资深技术砖家、专业铲除bug贡献者。❥(^_-)商业合作&考研软考毕设等学习交流❥(^_-)
展开
-
详细分析TensorFlow中的backend.clear_session()基本知识
tf.keras.backend.clear_session() 是 TensorFlow 中的一个函数,用于清理当前计算图的状态通常在训练多个模型或评估模型时使用,以避免显存占用过多或状态冲突问题原创 2024-11-29 08:00:00 · 601 阅读 · 0 评论 -
详细分析LSB 隐写术的原理、方法 | 附基本Demo
实现图片隐写的基本方法是利用图片的像素数据将信息嵌入其中,同时尽可能保持图片的视觉效果不变基于 LSB(Least Significant Bit,最低有效位)隐写术:将数据嵌入到图片的像素值的最低有效位原创 2024-11-23 08:00:00 · 1076 阅读 · 0 评论 -
了解pytroch中的nelement()基本知识(附Demo)
在 PyTorch 中,nelement() 是一个 Tensor 对象的内置方法,用于返回 Tensor 中所有元素的总数量适用于任何形状的 Tensor,不论其维度大小,通过统计总元素数来帮助分析 Tensor 的数据量原创 2024-11-11 08:00:00 · 346 阅读 · 0 评论 -
简易了解Pytorch中的@ 和 * 运算符(附Demo)
在 PyTorch 中,@ 和 * 运算符用于不同类型的数学运算,具体是矩阵乘法和逐元素乘法原创 2024-10-29 08:00:00 · 919 阅读 · 0 评论 -
详细分析Pytorch中的transpose基本知识(附Demo)| 对比 permute
transpose 是 PyTorch 中用于交换张量维度的函数,特别是用于二维张量(矩阵)的转置操作,常用于线性代数运算、深度学习模型的输入和输出处理等原创 2024-10-29 08:00:00 · 869 阅读 · 0 评论 -
详细分析Pytorch中的permute基本知识(附Demo)
permute 是 PyTorch 中用于改变张量维度的函数,它允许用户以任意顺序重排张量的维度,从而方便地进行各种操作,如数据处理和模型输入功能: 改变张量的维度顺序输入:一个张量和一个表示新维度顺序的整数元组输出: 具有新维度顺序的张量原创 2024-10-28 08:00:00 · 812 阅读 · 0 评论 -
详细分析Pytorch中的repeat以及reshape基本知识(附Demo)
repeat 用于数据重复,适合需要扩展张量的场景reshape 用于改变张量的形状,适合需要重新组织数据的场景原创 2024-10-28 08:00:00 · 522 阅读 · 0 评论 -
详细分析Pytorch中的masked_fill基本知识(附Demo)
基本的原理知识如下:输入张量和掩码:masked_fill 接受两个主要参数:一个输入张量和一个布尔掩码掩码的形状必须与输入张量相同,True 表示需要填充的位置,False 表示保持原值掩码操作:在执行 masked_fill 操作时,函数会检查掩码中每个元素的值如果掩码对应的位置为 True,则在输出张量中填充指定的值;如果为 False,则保留输入张量中对应位置的值输出结果:最终生成的新张量包含了在掩码位置上被替换的值,其余位置保持原样原创 2024-10-26 08:00:00 · 1218 阅读 · 0 评论 -
一文读懂PyTorch中cdist 函数的知识
torch.cdist 是一个用于计算两个批次的点之间的成对距离的函数它在很多任务中非常有用,例如最近邻搜索、聚类等(K-Means聚类算法基本知识(附Demo))函数原型:torch.cdist(x1, x2, p=2)原创 2024-10-04 08:00:00 · 1960 阅读 · 0 评论 -
详细分析Pytorch中的register_buffer基本知识(附Demo)
register_buffer 是 PyTorch 中 torch.nn.Module 提供的一个方法,允许用户将某些张量注册为模块的一部分,但不会被视为可训练参数。这些张量会随模型保存和加载,但在反向传播过程中不会更新register_buffer 的作用:将张量注册为模型的缓冲区(buffer),意味着这些张量会与模型一起保存和加载与参数不同,缓冲区不会参与梯度计算,因此不会在训练时更新常用于存储像均值、方差、掩码或其他状态信息原创 2024-09-13 08:00:00 · 2139 阅读 · 0 评论 -
一文读懂torch.unsqueeze中的基本知识(附Demo)
torch.unsqueeze 是 PyTorch 中的一个函数,用于在指定的维度上插入一个大小为1的维度对于改变张量的形状(形状变换)非常有用,特别是在需要对张量的形状进行匹配以便进行后续操作时原创 2024-06-24 08:00:00 · 11058 阅读 · 0 评论 -
详细分析线性插值的基本知识(附Python代码)
简单且常用的插值方法,主要用于在两个已知数据点之间进行插值其基本思想是假设两个数据点之间的变化是线性的,从而可以通过计算两个数据点之间的线性方程来估计中间点的值原创 2024-06-08 08:00:00 · 2223 阅读 · 0 评论 -
K-Means聚类算法基本知识(附Demo)
K-Means算法是一种常用的无监督学习算法,旨在将数据集划分为k个簇,使得同一簇内的数据点尽可能接近,而不同簇的数据点尽可能远离原创 2024-05-18 08:00:00 · 531 阅读 · 0 评论 -
探讨AIGC的发展现状以及趋势(2024)
AIGC(Artificial Intelligence in Games and Creativity,游戏与创意中的人工智能)技术的发展现状和未来趋势是一个令人兴奋的话题原创 2024-05-05 08:00:00 · 1195 阅读 · 0 评论 -
了解常见的启发式算法
启发式算法是一类解决复杂问题的计算方法,通常用于在大规模搜索空间中找到较好的解决方案,而不是通过穷举搜索所有可能的解原创 2024-04-28 19:46:06 · 803 阅读 · 0 评论 -
详细分析Python中Tensor基本知识
Tensor是深度学习中广泛使用的数据结构,是多维数组或矩阵的泛化在深度学习框架中,如TensorFlow和PyTorch,Tensor被用来表示输入数据、模型参数和输出数据原创 2024-04-25 20:47:04 · 3032 阅读 · 0 评论 -
Python合并两张图片 | 先叠透明度再合并 (附Demo)
用在深度学习可增加噪音,增加数据集等推荐阅读:Pytorch 图像增强 实现翻转裁剪色调等 附代码(全)原创 2024-03-12 22:12:45 · 1449 阅读 · 0 评论 -
集显如何安装pytorch (CPU)
确定自身为集显,想要安装CPU版本原创 2024-02-01 08:00:00 · 1265 阅读 · 2 评论 -
深度学习中指定特定的GPU使用
出现出现 CUDA out of memory 的解决方法 除了代码上的优化,如果物理显卡支持也可选择另外一个GPU原创 2024-01-16 07:00:00 · 1062 阅读 · 0 评论 -
模型训练 出现NaN的原因以及解决方法
学习率过高: 过大的学习率可能导致权重更新过大,使得权重变得非常大或非常小,从而导致数值不稳定性。梯度爆炸: 当反向传播过程中的梯度变得非常大时,权重更新可能会导致数值不稳定。这通常与深度神经网络中的梯度消失/爆炸问题有关。数值不稳定的激活函数: 某些激活函数在输入值很大或很小的情况下可能产生数值不稳定性。例如,Sigmoid函数在输入值非常大或非常小时可能会返回饱和的输出,导致梯度接近于零。数据预处理问题: 数据中的异常值或不稳定性可能导致网络在处理这些值时出现数值问题。原创 2023-12-05 11:36:10 · 6664 阅读 · 4 评论 -
Pytorch中的Net.train()和 Net.eval()函数讲解
这两个方法通常用于训练和测试阶段使用这两个方法的主要目的是确保在训练和测试阶段使用正确的模型行为。在没有涉及到 Batch Normalization 和 Dropout 的模型中,这两个函数的使用通常不是必须的,因为模型在训练和测试中的行为没有本质的不同。但在包含了这些层的模型中,使用 net.train() 和 net.eval() 可以确保在训练和测试阶段使用正确的模型行为,以防止对测试数据的不当影响。在测试阶段,关闭一些训练中使用的特殊处理可以提高模型的性能和稳定性,避免对测试数据的不当影响。原创 2023-11-29 16:26:57 · 2882 阅读 · 0 评论 -
剖析深度学习中的epoch与batch_size关系、代码
为了区分深度学习中这两者的定义,详细讲解其关系以及代码在 PyTorch 中,“epoch”(周期)和 “batch size”(批大小)是训练神经网络时的两个重要概念它们用于控制训练的迭代和数据处理方式。Epoch 是指整个训练数据集被神经网络完整地遍历一次的次数。在每个 epoch 中,模型会一次又一次地使用数据集中的不同样本进行训练,以更新模型的权重。通常,一个 epoch 包含多个迭代(iterations),每个迭代是一次权重更新的过程。原创 2023-10-19 14:02:41 · 9706 阅读 · 0 评论 -
深入剖析 深度学习中 __init()__函数和forward()函数
再看代码时,发现init函数和forward函数都有参数,具体是怎么传参的呢?为了更方便的讲解,会举简单的代码例子结合讲解。forward()和__init__()是神经网络模型类中的两个重要函数。它们通常是通过类的实例化和调用来执行的。原创 2023-10-16 11:10:51 · 2819 阅读 · 0 评论 -
Pytorch中关于forward函数的理解与用法
深入深度学习框架的代码,发现forward函数没有被显示调用但代码确重写了forward函数,于是好奇是不是python的魔术方法起的作用。原创 2023-09-28 07:20:55 · 6666 阅读 · 2 评论 -
YOLOv5网络模型的结构原理讲解(全)
YOLOv5有几种不同的架构,各网络模型算法性能分别如下:YOLOv5是一种目标检测算法,其模型结构主要包括以下组成部分:输入端:YOLOv5的Head网络由3个不同的输出层组成,分别负责检测大中小尺度的目标。Backbone网络:YOLOv5使用CSPDarknet53作为其主干网络,其具有较强的特征提取能力和计算效率。Neck网络:YOLOv5使用的是FPN(FPN网络能够在不同的特征图层次上进行检测,可以提高目标检测的性能)网络,可以融合来自不同特征图层次的信息。输出端:损失函数,YOLOv5使用的原创 2023-04-25 19:40:01 · 80789 阅读 · 8 评论 -
batchsize大小对网络模型的理解
每一次的epoch都是将其数据集经过神经网络,进行正向传播以及反向传播。由于epoch训练的数据集可能过大,需要将其分块,对应设置batchsize的尺寸个数。训练数据的时候,batchsize的大小会影响精确度以及训练的时长问题等batchsize大小的选择,介于1到数据总量之间,选择过大或者过小都会出现极端。过小可能出现欠拟合,过大可能出现过拟合,具体选择多少的batchsize根据网络以及数据集来决定batchsize的大小决定梯度下降的方向和大小。原创 2023-04-14 18:04:38 · 1310 阅读 · 0 评论 -
Yolov5 代码从入门到畅通(v6.2) 附代码注释
网上资料对于Yolov5原理比较多,代码解释比较少。那就写个注释补充个流程吧这部分代码主要来源于官方,v6.2:官方github通过detect代码文件来预测window文件用\,而linux操作系统使用/一开始的文件都是导入包名(为了验证导入的包路径正确,使用如下的代码进行验证)整体的主函数为:对应命令行格式下的参数可以为图片或者视频流:,代码运行截图如下:具体解析参数的函数如下:具体main函数的执行如下:补充参数讲解,可看我这篇文章的补充:Python关于 *args 和 **kwargs原创 2022-11-19 19:51:45 · 15256 阅读 · 5 评论 -
You Only Look Once: Unified, Real-Time Object Detection(Yolov1) 论文详细解读
研究目标检测相关的论文,将其文章梳理总结如下目标检测主要分为两类Region Proposal的R-CNN系(R-CNN、Fast R-CNN、Faster R-CNN)。两个阶段YOLO、SSD。一个阶段所谓的两阶段与一阶段两个阶段:将其图片使用启发式或者CNN产生Region Proposal,在对其分类回归一个阶段:将其图片使用CNN输出类别与位置原本人类看一眼图像,就可知道图像在表达什么。原创 2022-09-23 11:24:15 · 1591 阅读 · 0 评论 -
Deep Residual Learning for Image Recognition (ResNet)论文详细解读
更深的神经网络更加难以训练,残差网络主要用来减轻训练的网络,这些网络比之前使用的网络都要深得多在ImageNet的的数据集中网络层数达到了152层,前一年夺冠的VGG只有19层。在COCO物体检测数据集上获得了28%的相对改进在以往的知识中,深度学习层数越深,提取的特征越多。如下图所示,并非网络层数越多越好。引起这部分的原因,这种现象主要是退化:随着网络层数的加深,准确性会达到饱和,梯度传播过程中会逐渐消失,导致无法对前面的网络层权重进行调整,训练误差加大,结果也随之变差。原创 2022-10-25 16:57:11 · 2181 阅读 · 0 评论 -
YOLO9000: Better, Faster, Stronger (Yolov2)论文详细解读
You Only Look Once: Unified, Real-Time Object Detection(Yolov1) 论文详细解读论文解读栏目(实时更新阅读)YOLOv1检测速度快,但是精度没有R-CNN高,但它是一阶段的初始代表。YOLOv2将其YOLOv1的精确度以及召回率提高,来提高mAP更准确、更快、类别更多(用于检测9000种类别)以下章节也是随着标题进行解析。原创 2022-10-31 21:19:49 · 1129 阅读 · 0 评论 -
YOLOv3: An Incremental Improvement 论文详细解读
You Only Look Once: Unified, Real-Time Object Detection(Yolov1) 论文详细解读YOLO9000: Better, Faster, Stronger (Yolov2)论文详细解读论文解读栏目(实时更新阅读)原创 2022-11-02 11:46:02 · 493 阅读 · 0 评论 -
Yolov5 训练自已的数据集 详细图文操作(全)
大致思路在window操作系统安装labelimg(基于anconda环境下,创建出虚拟环境在安装labelimg)通过虚拟环境启动labelimg 并 添加对应的标注框训练自身的数据集Yolov5 代码从入门到畅通(v6.2) 附代码注释。原创 2022-11-20 14:46:11 · 1713 阅读 · 1 评论 -
Pytorch 图像增强 实现翻转裁剪色调等 附代码(全)
python之Matplotlib详细分析(附代码)数据比较少的时候使用数据增强是一个不错的选择# 此处的Path 该项目的相对路径 或者 绝对路径 # 读取 显示 照片 image = Image . open('Gym.jpg') print(image . size) image截图如下:(图片展示不全)数据增强的处理方式有如下。原创 2022-11-22 14:20:47 · 3577 阅读 · 0 评论 -
二元交叉熵的基本概念
反之如果两者越来越偏差,则数字会越来越大,如果两者直接对立,则损失趋近正无穷。当两者的标签值损失很大的时候,有利用模型的学习。通过上面的概率以及图像可得知,当预测标签和真实标签接近的时候,损失函数越接近。标签为1,p(y)概率趋近0,则整体的损失函数值为正无穷。标签为0,p(y)概率趋近1,则整体的损失函数值为正无穷。))为预测的标签值。对应公式为标签值乘以改标签的概率值。标签为1,p(y)概率趋近1,则整体的损失函数值为0。标签为0,p(y)概率趋近0,则整体的损失函数值为0。此文针对该知识点查漏补缺。原创 2022-10-14 15:53:19 · 1574 阅读 · 2 评论 -
三分钟认知Softmax和Sigmoid的详细区别
Softmax以及Sigmoid这两者都是神经网络中的激活函数,对应还有其他的激活函数引入激活函数是为了将其输入非线性化,使得神经网络可以逼近任何非线性函数(原本没有引入激活函数,就是多个矩阵进行相乘,无论神经网络多少层都是线性组合,这个概念是感知机)Softmax以及Sigmoid两者都是作为神经网络的最后一层,通过激活函数之后转换为概率值这两种激活函数如何选择,以及如何应用在不同场景,本身就是伯努利分布和二项分布的差别。原创 2022-10-13 20:26:49 · 20975 阅读 · 3 评论