自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 YOLO理论(V1-V3)

也就是相当于用预测bounding box替换了anchor。V1问题:1、对群体性小目标效果很差2、定位不准。

2023-10-25 16:50:16 122

原创 torch.gather

torch.gather就是能够在一个tensor中按索引取值。但是它的取值比较自由,可以第一行取0,1,第二行取1,2,第三行取2,3,只要保证每行(列)取得数量就行了。如果index = torch.tensor([[2, 1],[1]])就会报错,因为每个维度取得值必须相同,除非不取。因为是按列取得,结果也按列排。第一列取2,1,所以结果就是。sparse_grad代表是否需要求稀疏索引。dim是按行还是按哪个维度取值。index中存储取值的索引。dim=1为按行取列元素。可能会有疑问为什么不是。

2023-09-13 12:34:15 125

原创 IDDPM框架代码

混合损失,不但包括DDPM中预测噪音与真实噪音的均方误差,还有预测的xt-1分布和真实xt-1分布的KL散度。但是这里真实xt-1分布并不是通过前向过程使用x0和t-1算出来的,是通过一个复杂公式计算出来,并不是很理解。·模型预测β与真实方差之间的线性权重。·使用余弦方案生成β。这三点我的讲解已经在我的。写了,所以直接放代码。

2023-06-18 22:21:48 422

原创 显存不够?试试with torch.no_grad():!

在我训练完IDDPM后,想要用他进行超分辨率,总是遇到的问题,一开始我以为是我的3050太拉,于是去了Autodl的4090,发现一样显存不足,最后通过小小的。

2023-06-18 14:57:32 396

原创 IDDPM中的Unet网络(整体代码在文末)

首先,我做的是超分辨率任务,所以不需要处理条件的代码。在我学习IDDPM和DDPM时,对Unet有两个疑惑:1:时间t怎么用于模型的预测?2:attention机制时怎么融入进去的?

2023-06-17 23:29:10 1632 3

原创 RuntimeError: CUDA error: device-side assert triggeredCUDA kernel errors might be asynchronously re

解决办法:先测试自己的代码有没有代码上的问题,再考虑有没有cuda内存泄漏的问题,但内存泄漏基本上不会发生。在消除这两种可能后,可以在代码最前面加上下面这段代码,这个方法是gpt告诉我的,这也是报错中所提示的,但是并没有解决我的问题,各位老铁不妨一试。我用的是COCO2017数据集,这个数据集比较大,其中图片很多,我在我的dataloader中将所有图片都调成了[3,256,256]的大小。有意思的是,在训练最开始时一切顺利,到了几千张图片后就发生了上述的报错。到此为止跑了十几万张图片都没有再报错。

2023-06-16 18:36:09 8069

原创 NotImplementedError: No KL(p || q) is implemented for p type Tensor and q type Tensor

函数用于计算两个概率分布之间的 KL 散度,它要求输入的参数是概率分布对象而不是张量。因此需要将张量转换为概率分布对象,然后再进行 KL 散度的计算。在计算 KL 散度后不需要将概率分布对象再转换回张量。因为KL 散度的计算是基于概率分布对象进行的,计算结果也会是一个张量,所以不需要再进行额外的转换。函数对两个张量类型的参数进行 KL 散度计算。转换为概率分布对象。

2023-06-15 23:45:52 164 1

原创 einsum is all you need

最近发现一个超赞的函数:einsum!

2023-06-04 23:17:18 53

原创 Improved Denoising Diffusion Probabilistic Models

文章仅供学习,内容源自视频部分内容引用自IDDPM与DDPM区别:在Forward Process中DDPM不含参,IDDPM含参;Xt-1的方差,在DDPM中使用β,IDDPM预测β和真实方差的线性加权的权重;DDPM使用MSELoss,IDDPM使用hybrid loss,也就是将MSELoss与KL loss相加;训练时,DDPM的每个t是均匀采样,IDDPM使用非均匀采样。基于每一步t重要性。

2023-06-04 14:26:32 529

原创 DDPM中框架代码

这里是DDPM框架的代码,等我成功把他用在超分辨率中后我会将项目代码和视频发出来。想起来SRGANext的视频还一直没做完。

2023-05-30 16:17:26 116

原创 DDPM(概率扩散模型)

这里关于采样中生成的分布z又有了新说法,与李宏毅所说的为了优化效果的意思不同,这里的意思类似于参数重整化,用z来表示一个新分布的意思。

2023-05-24 19:25:34 160

原创 Diffusion模型(唐宇迪)

正向过程可以直接推导出最后,但是反向过程需要一步一步向前还原。上一篇中李宏毅管这叫auto-regressive。

2023-05-23 23:57:53 773 6

原创 Diffusion模型(李宏毅)

类似于seq2seq。

2023-05-23 17:43:38 991

原创 GAN网络的辨别器将生成图片和真图片全部辨别为真图片?这是训练失衡的一种!

我首先遇到的问题是GAN的通病----训练不稳定。GAN网络的理想情况是无论输入真实图片还是假图片,辨别给出的概率都应该是0.5。在最开始的时候我的辨别器损失在一两个epoch中就迅速下降为0,能够精确地把真图片判断为1,假图片判断为0。但后来我进行了一些优化,现在的结果是鉴别器无论是鉴别真图片还是假图片,辨别器辨别的概率都是1,1。我认为这在一定程度上是我的生成器已经骗过了辨别器,辨别器的损失也提高了,但我不知道这有什么影响吗?我找了许多地方都没有找到答案,包括gpt和bard,如果有哪位大佬

2023-05-22 17:27:25 368

原创 使用Convnext升级SRGAN

我找了许多地方都没有找到答案,包括gpt和bard,如果有哪位大佬知道这个问题请不吝赐教!!!!!如下是我的使用Convnext的SRGANext与SRGAN的比较。如下是SRGAN在第100轮训练的低分辨率图像,由低分辨率图像生成的高分辨率图像,和高分辨率图像如下是SRGANext在第100轮训练的低分辨率图像,由低分辨率图像生成的高分辨率图像,和高分辨率图像这是SRGAN的结构这是我的SRGANext的生成器结构这是我的SRGANext的辨别器结构。

2023-05-22 17:19:25 1185 2

原创 SSIM和PSNR表现过好

在超分辨率重建任务中,当我使用SSIM和PSNR评估我的模型的时候,神奇的事情发生了,我发现我模型的表现远远优于论文,比如PSNR一般在20-40,而我的在70+,并且我的SSIM都在0.9999+。我随机生成了两个numpy的随机数,发现SSIM仍然是0.9990+,终于知道不是我的模型好,而是代码出问题了。这里SSIM仍然高的原因是我用DIV2K进行训练,这是在DIV2K的验证集上进行验证,换到别的不同分布的数据集就会变低。附上上一篇文章要附的代码。

2023-05-16 10:47:42 406 4

原创 NotImplementedError: Input Error: Only 3D, 4D and 5D input Tensors supported (got 3D) for the modes:

因为hr_image是一个三维张量,没有batch_size维度,只用给hr_image通过unsqueeze(0)增加一个batch_size维度就ok了。

2023-05-16 02:55:22 1196

原创 win_size exceeds image extent. Either ensure that your images are at least 7x7; or pass win_size ex

在进行超分辨率重建后想计算SSIM和PSNR,最开始发现导入compare_psnr,compare_ssim居然报错了,上网一查发现版本更新换成了structural_similarity和peak_signal_noise_ratio。好家伙,这么一大段话,我估计 multichannel=True也已经不用了,报错中说。

2023-05-13 19:10:41 9179 8

原创 记第一次悲惨的AutoDL

如果AutoDl没有提供的数据集,比如我用的DIV2K,比较大,用WinScp传。顺便一提,根目录就是你的项目文件,比如我想读到这里。然后再jupyter的终端进入你的项目,我这里是。最坑爹的来了,这b还有初始化环境,我。然后直接python要运行的文件就好了。首先将自己项目的.zip直接拖上来就好。这个还要自己初始化是真滴坑。

2023-05-11 00:11:32 184

原创 语义分割笔记

语义分割:FCN实例分割:MASK R-CNN全景分割:panoptic FPN。

2023-04-25 19:05:27 331

原创 MobileViT摘要

纯Transformer的问题:1、参数多,复杂度高2、缺少空间归纳偏置3、迁移到其他任务比较繁琐4、模型训练困难解决方法:将CNN与Transformer混合使用。由于CNN有空间归纳偏置,所以不再需要位置编码。并且可以加速网络收敛。

2023-04-22 19:43:42 109

原创 前Vit时代CV模型大串烧

首次应用cpurelu替代sigmoid和tanhiLRN局部响应归一化dropout。

2023-04-20 23:52:08 120

原创 Convnext实现(pytorch)

整体:类似于patchify,使用卷积核大小为4*4,步距为4的卷积层的stem → LN → stage1 → 类似于patchmerging的downsample,使用卷积核大小为2*2,步距为2 → stage2 → ...... → 全局平均池化+LN+Linear。

2023-04-19 10:26:10 934

原创 A Convnet for 2020s 笔记

Swin Transformer表现得很好,并且可以作为通用的骨干网络。然而,这种混合方法的有效性在很大程度上归功于Transformer的内在优越性,而不是卷积的固有的归纳偏差。于是,我们重新调查了设计空间并且测试了纯卷积网络所能达到的极限。将一个标准resnet朝着Vit的方向现代化.

2023-04-18 19:28:05 142

原创 Convnext前传----resnext及pytorch实现

套娃一下,resnext又与VGG,inception,resnet相关联。

2023-04-16 17:05:37 196

原创 Swin Transformer代码详解(必懂)

上一篇文章中我们写完了最难的两个数学原理部分,mask和相对位置编码的代码。本篇文章将讲解Swin的全部代码。文章仅供学习,若有纰漏请不吝赐教。全部代码放在文章最后。我看这些代码的经验是跟着维度一点一点的串,当然只是个人经验。可以跟我下面的维度图走。

2023-04-14 22:57:14 3539 2

原创 Swin Transformer之Mask和相对位置编码代码详解

Swin Transformer的详细原理我已经在上一篇文章写过了,这回我来细细的写一篇它的代码原理。有朋友跟我反应Vit代码直接全贴上去光靠注释也不容易看懂,这会我用分总的方法介绍。注:此代码支持多尺度训练。文章仅供学习先从最难的下手。

2023-04-14 15:36:43 1874 1

原创 Swin Transformer详解

Vit出现后虽然让大家看到了Transformer在视觉领域的潜力,但并不确定Transformer可以做掉所有视觉任务。Swin Transformer可以作为一个通用的骨干网络。面对的挑战:1、多尺度。2、高像素。移动窗口提高效率,并通过Shifted操作变相达到全局建模能力。层次结构:灵活,可以提供各个尺度特征信息,容易使用到下游任务中。最后分层设计和移位窗口方法也被证明对所有mlp体系结构都是有益的。

2023-04-11 19:26:40 3853 1

原创 Vit极简原理+pytorch代码

Vit比它爹Transformer步骤要简单的多,需要注意的点也要少得多,最令人兴奋的是它在代码中没有令人头疼的MASK,还有许多简化的操作,容我慢慢道来。

2023-04-10 15:52:07 1964 1

空空如也

空空如也

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

TA关注的人

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