自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 yolov5详解(二):通过yaml文件构建完整模型

依然拿yolov5l v6.0版本来讲解1. yaml文件以下是yolov5l.yaml文件内容# YOLOv5 🚀 by Ultralytics, GPL-3.0 license# Parametersnc: 80 # number of classesdepth_multiple: 1.0 # model depth multiplewidth_multiple: 1.0 # layer channel multipleanchors: - [10,13, 16,30, 33

2024-08-14 22:33:15 516

原创 yolov5详解(一):网络结构

以下是参考b站上作者以及yolov5官方代码画出的yolov5l v6.0版本的模型结构,v6.0版本的模型结构是目前yolov5版本的稳定版本,想必以后也不会有什么改变。l,m,n,s,x只是有些层以及输出通道数变化,整体架构是完全一样的,因此我们只拿一个l模型来说。其他的就不在一一介绍了。从上图可以看出,模型主要分为三个部分:backbone:主要用于图片的特征提取;neck:主要对特征图进行多尺度融合,传给detect层;detect:用来预测最终结果。

2024-08-14 22:32:20 947

原创 VQ-VAE(Vector Quantized Variational Autoencoder)代码详解及实现

看这篇文章之前,希望能够熟知以下我写的一遍原理介绍,代码中的名称尽可能和原论文保持一致,如ze,z,zq这些名称等。理论不在重新介绍。同样仍然使用mnist数据集。

2024-07-30 15:47:37 1097

原创 深入探索VQ-VAE:原理、架构与应用实践全解析

我们知道作者做的一个假设是先验的离散分布p是均匀分布,但是实际上生成任务上并没有在均匀分布上采样,当然也可以,但是效果是很差的,所以引入了pixelcnn使得整个离散分布有了意义,这也是为什么说VQ-VAE是一个AE不是一个VAE的主要原因,后面在详细解释。但是为什么要有呢,你可别忘了,最终我们在生成图像的时候,只是用到decoder,要有一个采样过程,而这个采样就是在z上随机采样。,但是效果很差,原因是什么,原因就是VQ-VAE是一个AE啊,本身就不具备生成的能力,即使离散化的z也是有一定的意义的。

2024-07-30 15:19:07 913

原创 YOLOv3深入解析与实战:实时目标检测的高效多尺度架构网络

网上有很多关于yolo的文章,有些东西没讲清楚,基于自己对论文的理解,也做一个按照自己的想法做的理解。

2024-06-02 23:13:50 1198

原创 YOLOv1深入解析与实战:目标检测算法原理

学习目标检测算法,yolov1是必看内容,不同于生成模型,没有特别多的理论,关键在于模型结构的构造。先直接从作者给的图,来解释yolo到底干了一件什么事情,为什么速度那么快。我们重点分析这几张图,搞明白图就明白了算法核心。输入:输入是一张完整的图片,不是说把一张图片分成S*S个网络输出S×S×B∗5CS×S×B∗5CS×SS\times SS×S相当于把原图分成S×SS\times SS×S个grid cell,这里是7x7;B∗5C。

2024-06-02 23:13:26 874

原创 像素级创意:深入浅出PixelCNN图像合成技术

参考需要熟悉熵的一些理论、和极大释然估计等价于最小化交叉熵等知识。

2024-05-20 22:31:12 1404

原创 深入解析与实现:变分自编码器(VAE)完整代码详解

VAE理论上一篇已经详细讲完了,虽然VAE已经是过去的东西了,但是它对后面强大的生成模型是很有指导意义的。接下来,我们简单实现一下其代码吧。

2024-05-20 22:29:07 1588 3

原创 VAE理论详解,从概率的角度出发,还原论文推导

如下图所示,生成模型的目标是在一个已只分布p(z)中随机采样z,经过网络G,生成的结果xGzxGz是满足训练数据p(x)的分布,我们假定生成的分布为pgp_gpg​,训练样本的分布为pdatap_{data}pdata​,一个非常麻烦的事是我们不知道,也无法去知道pdatap_{data}pdata​的分布,无法去做损失函数求解G。你可以这样理解,我们生成网络的目的是要得到pgpdatapg​pdata​。

2024-05-09 14:30:01 859 1

原创 使用pytorch构建GAN网络并实现FID评估

上一篇文章介绍了GAN的详细理论,只要掌握了GAN,对于后面各种GAN的变形都变得很简单,基础打好了,盖大楼自然就容易了。既然有了理论,实践也是必不可少的,这篇文章将使用mnist数据集来实现简单的GAN网络,并附带使用FID来评估生成质量。

2024-05-07 11:39:10 1612 1

原创 GAN详解,公式推导解读,详细到每一步的理论推导

在看这一篇文章之前,希望熟悉掌握熵的知识,可看我写的跟熵相关的一篇博客。

2024-04-24 19:30:06 2190

原创 深度学习中的熵、交叉熵、相对熵(KL散度)、极大释然估计之间的联系与区别

熵的最初来源于热力学。在热力学中,熵代表了系统的无序程度或混乱程度,也可以理解为系统的热力学状态的一种度量。后来被广泛引用于各个领域中,如信息学、统计学、AI等,甚至社会学当中。接下来将大家领略一下深度学习中熵的应用。

2024-04-24 10:02:53 1383

原创 python 几种常见的音频数据读取、保存方式

soundfile库是一个Python库,主要用于读取和写入音频文件。它支持多种音频格式,包括WAV、AIFF、FLAC和OGG等。通过soundfile库,用户可以方便地将numpy数组存储到音频文件或者将音频文件加载到numpy数组中。此外,soundfile库还提供了一些函数,用于处理音频数据。它的使用简单且灵活,方便进行音频处理和分析的工作。

2024-02-22 18:18:46 5837

原创 wav2vec 2.0 语音特征提取器的使用方法

wav2vec 2.0 的作用和使用方法

2024-02-05 17:24:33 4231 7

原创 如何构建TCN网络提取序列特征

TCN网络主要在于提取序列的特征,并且可以实现特征维度的改变,并保持序列长度不变。

2024-02-05 16:50:16 1098

原创 opencv c++ (7):模糊与锐化

在图像处理中,模糊(也称为平滑)和锐化是两种常见的图像滤波技术,它们可以用来改变图像的外观和质量。在OpenCV中,模糊和锐化可以通过不同的滤波器来实现,如平均滤波、高斯滤波、拉普拉斯滤波等。根据具体的需求和应用场景,可以选择合适的滤波器来达到期望的效果。以下是一些具体方法。

2024-02-02 17:56:47 1021

原创 opencv c++ (6):直方图

在OpenCV C++中,直方图是一种用来表示图像亮度或颜色分布情况的工具。直方图可以帮助我们了解图像中不同亮度或颜色值的像素数量,从而可以进行图像增强、图像分割、特征提取等操作。在OpenCV C++中,我们可以使用cv::calcHist()函数来计算图像的直方图,使用cv::normalize()函数对直方图进行归一化处理。直方图可以用来进行直方图均衡化、直方图匹配、直方图反向投影等操作,以改善图像质量或实现特定的图像处理需求。

2024-02-02 15:22:20 1057

原创 opencv c++ (5):通道分离与合并

很简单,就split和merge api,例子在下面。

2023-11-07 15:27:32 561

原创 opencv c++ (4):图型绘制

以下是几个绘制图形的api,细节不多说。值得注意的是指定线宽时候-1代表填充。

2023-11-07 11:41:49 167

原创 opencv c++ (3):像素操作4

在OpenCV中,可以使用函数来计算图像中的最大值和最小值,使用cv::mean函数来计算图像的平均值,使用函数来计算图像的平均值和标准差。下面是相关代码使用。这里分别举例了data指针和ptr指针的用法。

2023-11-03 18:10:19 144

原创 opencv c++ (3):像素操作3

在 OpenCV 中,比特位操作主要用于图像处理和计算机视觉任务中。总的来说,比特位操作在 OpenCV 中有着广泛的应用,能够帮助实现图像处理、特征提取、压缩等功能,提高图像处理的效率和性能。位操作就是bit位的与或非等,很简单,直接给代码没什么可说的,直接看代码注释就明白了,主要是mask的理解,mask意思是,maks不为0的区域才进行操作,为0的区域就是黑色的。

2023-11-02 18:11:09 87

原创 opencv c++ (3):像素操作2

四则运算

2023-11-02 11:07:53 110

原创 opencv c++ (3):像素操作1

像素的遍历在图像处理中起着至关重要的作用,它可以用于实现各种图像处理算法和技术。以下是像素的遍历在图像处理中的一些常见应用:图像增强:通过遍历图像的每个像素,可以对像素进行各种操作,如调整亮度、对比度、色彩平衡等,从而实现图像的增强。滤波:通过遍历图像的每个像素及其周围像素,可以实现各种滤波操作,如均值滤波、高斯滤波、中值滤波等,用于去除噪声或模糊图像。特征提取:通过遍历图像的每个像素及其周围像素,可以实现特征提取算法,如边缘检测、角点检测、纹理分析等,用于识别和描述图像中的特征。

2023-11-01 16:12:14 164

原创 常用激活函数和loss函数详解

交叉熵损失对于错误分类的惩罚更严厉,能够更好地推动模型向正确的方向优化。Hinge Loss对于正确分类的样本不会产生损失,只有错误分类的样本才会产生损失,能够使得模型更加关注错误分类的样本。平滑损失(Smooth Loss)的优点: - 平滑损失可以在模型训练中平衡L1 Loss和L2 Loss的优点,既能够对异常值比较鲁棒,又能够在优化过程中收敛稳定。L1 Loss(绝对值损失)的优点: - 对异常值比较鲁棒,因为L1 Loss在异常值处的梯度不会特别大,相对于L2 Loss更不容易受到异常值的影响。

2023-11-01 09:47:00 90 1

原创 python不常见但是比较高级的关键字

python 常用关键字

2023-10-31 11:29:08 70 1

原创 transformer pytorch 样例

pytorch 官方给的transformer 样例,非常实用。

2023-10-31 11:26:37 77 1

原创 pytorch gpu推理、onnxruntime gpu推理、tensorrt gpu推理比较,及安装教程,有详细代码解释

onnx , tensorrt 安装推理比较,有代码

2023-10-30 18:04:15 5360 1

原创 diffusion model 常用参考链接

这种算法主要应用生成数据生成上,类型于VAE、GAN,比他们效果好。主要原理是通过对数据加噪和去噪实现数据生成,由于加噪过程是可以计算的,去噪过程很难计算,因此diffusion model就是设计一个去噪模型来训练噪声,模型的选择设计可任意。由于去噪是需要多步完成,这也导致diffusion model耗时比较长,很难达到实时效果。不需要看太多,这两篇足以,Top1里面讲解非常详细,包括理论推导,到代码实现非常详细;这篇综述很全,介绍了diffusion model 的原理和应用。

2023-09-27 11:22:41 107 1

原创 python通俗易懂的GIL、多进程、多线程

在Python中,有两种并发处理方式:多线程和多进程。这两种方式都可以用于实现并行处理,提高程序的性能。

2023-09-26 11:51:10 159 1

原创 torch.FloatTensor,torch.Tensor,torch.tensor,torch.as_tensor,torch.from_numpy的区别与连系总结

torch.FloatTensor:    类, 深copy。可更改类型,devicetorch.Tensor:       同torch.FloatTensortorch.tensor:        函数,深copy。可更改类型,devicetorch.as_tensor:     函数,浅copy。不可更改类型,devicetorch.from_numpy:   函数,浅copy。不可更改类型,device共同点:最终都创建一个torch.Tensor对象。

2023-09-25 18:11:04 295 1

原创 一文让你熟练使用python装饰器

python 装饰器 、@ 魔法糖

2023-08-08 17:26:35 71

原创 git 的常用操作详解

git clone url 获取远程代码git branch 查看当期分支git branch -a 查看所有分支git branch newBranch 创建分支git pull 拉取与本地分支名相同的远程分支到本地git pull origin 远程分支名 拉取指定的远程分支到本地git checkout 你的分支名称 切换本地分支git merge branchName 合并分支到当前分支git status 工作区的状态,让我们时刻掌握仓库当前的状态。

2023-07-07 18:13:12 293 1

原创 python fvcore 简单安装及使用详解,CfgNode和Registry祥解付代码

fvcore是一个由Facebook AI Research开发的Python工具库,提供了一些方便的工具函数和类,用于简化深度学习项目的开发过程。下面是一些fvcorefvcorefvcorefvcorefvcorefvcoreconfigfvcoreloggerfvcoretimerfvcorefvcorefvcorefvcorefvcore库提供了许多方便的工具函数和类,可以帮助开发者简化代码,减少重复性工作,提高代码的可读性和可维护性。fvcore。

2023-07-07 18:01:10 2123 1

原创 RNN及LSTM、GRU详解,附pytorch代码解释,超详细讲解

拿chatgpt给的答案,这就是这次的全部了,重要一点rnn都是历史的产物了,但是是基础,后面有机会在看transform如何克服rnn这些缺点,一度逆袭的。RNN:可以处理时间序列数据,具有记忆功能,能够传递信息;网络结构简单,易于实现;可以接受任意长度的输入。长期依赖关系不佳,容易出现梯度消失或爆炸问题;训练过程中参数更新困难,容易过拟合;难以处理变长的输入数据。LSTM:具有很好的长期依赖性,能够处理长序列数据;

2023-06-13 23:57:56 3623 5

原创 opencv c++(2):图像处理常用方法详解

opencv 窗口创建等操作,如nameWindow、imshow等;读图imread、保存图片imwrite等;常用图片处理,缩放resize、翻转flip、高斯模糊、仿射变换warpAffine等操作详解

2023-06-05 21:46:08 1065 1

原创 opencv c++ (1):创建Mat对象的常用方法

常见几种创建Mat对象的方法、Mat的对象的常用属性以及Mat的type参数详解

2023-05-18 22:11:32 2685 4

原创 horovod和pytorch多机多卡分布式并行训练代码配置及训练启动

只需要安装pytorch GPU版本即可,使用其内部DistributedDataParallel 方法即可实现,方便简单。从终端torchrun启动,初始化使用环境变量,并行实际上是给每个GPU启动一个进程先看整体改动架构,只列出改动部分,适合单机多卡,多机多卡这里强调一下几个比较重要的参数;我们拿两台机器,每台机器四个显卡来举例说明–node_rank 这个是在运行torchrun时候指定,指多机的时候每个机器都有一个唯一标识,两台机器就是0,1,一台机器上指定0,另一台机器指定1。

2023-05-17 11:53:41 2376

原创 windows 10 Qt5 + opencv配置,免编译,有运行实例结果,欢迎咨询各种crash

windows qt + opencv的配置,免编译opencv,解决遇到的一些crash问题

2023-05-05 11:50:34 922 9

原创 python 可迭代对象(Iterable)、迭代器(Iterator)、iter()、next()、__iter__()、__next__()、__getitem__()用法

python 可迭代对象(Iterable)、迭代器(Iterator)、iter()、next()、__iter__()、__next__()、__getitem__()用法

2023-02-10 21:30:34 2180

原创 windows下使用pybind11生成python调用c++模块(超详细一看就会)

windows下使用pybind11生成python调用c++模块,通过cmake编译生成python能够调用的pyd动态库

2023-01-29 14:23:19 4048 3

ImageNet 1000分类

ImageNet 1000分类

2023-10-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除