
pytorch
文章平均质量分 71
tony365
树大招风
展开
-
deepflow相关spynet, pwc, raft, uflow, upflow, Back to Basics,unflow, homoflow8base
实际训练自己的图像,flow一直全为0,loss 停止,这在github issue中也有人遇到类似的问题,为什么学习不到内容呢?level i:n,5x5,h,w -> 24,1 相减—> boxfilter n,24,h,w—> top position x,y–>flow。训练的时候,model input是 两张图像: batch_size, 6, h, w。这样我们通过上面的公式可以得到 前向遮挡区域 和 后向遮挡区域的mask。输出第二张图像的flow, 和 第二张图像的warp。原创 2024-08-02 16:27:23 · 1030 阅读 · 0 评论 -
关于pytorch的加载数据,cpu init, cpu getitem, gpu init
如果GPU显存比较大的时候,或者有多个GPU的时候,可以在init函数中将图像读取到若干个GPU中。但是读取到GPU之后,训练的时候 好像不能使用dataloader, 容易报错。这种方法可以处理大数据集,比如所有图像占用内存大于电脑内存的时候,用这种方法。但是由于读取图像放在了get_item中,训练的时候加载数据会比较慢。就是cpu内存不够不能使用方法一,且我们不像速度太慢不能使用方法二。这种方法比较常用,读取图像的效率也高,但是cpu内存要够。这个时候自己设计一个 批处理函数,和shuffle。原创 2024-07-04 14:28:06 · 511 阅读 · 0 评论 -
mobilenet v1结构介绍
【代码】mobilenet v1结构介绍。原创 2024-04-08 10:50:36 · 387 阅读 · 0 评论 -
yolo-yolov5介绍
预处理数据集得到 yolov1需要的label训练后处理数据得到方便显示的方式。后处理:98个bbox , 20个种类, 然后NMS处理。原创 2024-04-08 10:46:05 · 940 阅读 · 0 评论 -
pytorch的 F.pixel_unshuffle函数理解,利用卷积来实现pixel_unshuffle, yolov5中focus操作和pixel_unshuffle是否一样?
b3是yolov5中用到的focus操作,上述代码我用卷积实现了pixel_unshuffle操作, focus操作同理当然也可以利用卷积实现。pixel_unshuffle示意图:和focus不同的是最后的输出的通道排列顺序有差异。结果显示:b = b1 =b2 但是和b3不太一样.原创 2024-04-03 13:39:18 · 1053 阅读 · 0 评论 -
大疆的raw图噪声合成:Towards General Low-Light Raw Noise Synthesis and Modeling
这是关于raw noise model的最新一篇论文,结合了物理建模和深度学习,创新点吧也是有一些的,当然作者也提到可能对于特别暗的场景可能效果好一些,如果sidd数据集其实 P-G噪声模型也许就够好了,实际使用的适合我主要是基于PG,以及sampling建模的方法,标定噪声和制作数据集。这一系列论文是不断对raw noise model的建模方法改进,来生成噪声数据,效果是可以的。当然如果直接使用 n2n, nb2nb等无监督方法降噪也是可以的。建模越准,训练的model效果就会越好吗?原创 2024-03-08 14:36:20 · 1606 阅读 · 3 评论 -
GAN 网络的损失函数介绍代码
pixel_opt:相比于一般的l1 loss多了 loss weight, reduction, weight三个功能。首先loss_util.py文件定义weight_lossArgs:Returns:"""else:Args:Returns:"""else::Example:tensor(3.)"""loss = loss_func(pred, target, **kwargs) # 这里 reduction='none'接下来定义带weight的L1 loss。原创 2024-03-07 17:55:11 · 2592 阅读 · 0 评论 -
gan, pixel2pixel, cyclegan, srgan图像超分辨率
上图的左上部分如下就是1个 gan, gan生成目标B, 但是没有label条件约束,因此pixel2pixel中的L1损失就没法使用了,那么如何保持生成的图像目标图像的一致性呢?那么生成器呢,除了原来的损失,再加上一个L1损失。就是通过添加限制条件,来控制GAN生成数据的特征(类别),比如之前我们的随机噪声可以生成数字0-9但是我们并不能控制生成的是0还是1,还是2.噪声z 输入生成器,希望判别器得到 1, 即希望生成器生成的图 输入判别器时 是 1,即希望生成器生成的图,和real更接近。原创 2024-03-06 16:41:29 · 1368 阅读 · 0 评论 -
DCTNet
一个对输入图像进行频域转换和选择的方法,达到压缩的目的,主要应用大分辨率图像压缩为小的输入图像,输入到神经网络。原创 2024-03-04 17:13:45 · 521 阅读 · 0 评论 -
pytorch 自定义函数
比如 layernorm: 参考:https://github.com/zhangyi-3/KBNet/blob/main/basicsr/models/archs/kb_utils.py。导数的推导:https://blog.youkuaiyun.com/qinduohao333/article/details/132309091。介绍:https://zhuanlan.zhihu.com/p/344802526。主要构建 static method forward 和 backward。原创 2024-03-04 17:08:56 · 477 阅读 · 0 评论 -
卷积模块结构re-parameterization
就是 3x3, 1x3, 3x1 3个卷积核在推理阶段融合为1个3x3卷积核。在实际使用的时候注意,并不是先将每个分支卷积核融合 再进行BN,而是先 每个卷积核都有自己的BN 然后与BN融合后, 再进行每个分支卷积核融合。后者比前者效果更好,虽然前者也比直接训练一个3x3要好。原创 2024-02-19 16:57:28 · 1256 阅读 · 0 评论 -
一些常见的激活函数介绍
超参数α的取值也已经被很多实验研究过,有一种取值方法是 对α随机取值,α的分布满足均值为0,标准差为1的正态分布,该方法叫做随机LeakyReLU(Randomized LeakyReLU)。至于为什么随机LeakyReLU能取得更好的结果,解释之一就是随机LeakyReLU小于0部分的随机梯度,为优化方法引入了随机性,这些随机噪声可以帮助参数取值跳出局部最优和鞍点,这部分内容可能需要一整篇文章来阐述。如果对于所有的样本输入,该激活函数的输入都是负的,那么该神经元再也无法学习,称为神经元”死亡“问题。原创 2024-02-18 11:51:50 · 1032 阅读 · 0 评论 -
Deep Unfolding Network for Image Super-Resolution
退化模型:本文提出的USRNet可以有效地处理经典的退化模型(即等式(1))。可以通过单一模型处理不同的模糊核、尺度因子和噪声水平。另一方面,与基于学习的方法类似,USRNet可以以端到端的方式进行训练,以保证有效性和效率。原创 2024-01-11 11:20:07 · 689 阅读 · 0 评论 -
基于pytorch 的psnr和ssim计算
【代码】基于pytorch 的psnr和ssim计算。原创 2024-01-03 11:39:23 · 2480 阅读 · 0 评论 -
pytorch分类和回归:阿里天池宠物年龄预测
阿里天池宠物年龄预测https://tianchi.aliyun.com/competition/实验了多种方法,最终成绩并不是特别好,比赛结束后如果有更好的思路,欢迎指教。其他方法:参考:torch.nn.CrossEntropyLoss() = log_softmax + nll_loss详细介绍:https://zhuanlan.zhihu.com/p/159477597描述分布的差异,如果分类的目标不是one-hot而是soft-label的时候可以用https://zhuanlan.zhihu原创 2023-07-27 15:06:20 · 2819 阅读 · 13 评论 -
IDR: Self-Supervised Image Denoising via Iterative Data Refinement sensenoise-500 dataset
这里的n表示的是sensor的噪声模型(也可以是采样得到的,参考作者另一篇论文rethinking noise).由于 新的数据集 更接近 noisy-clean 数据,因此训练的结果对于noisy的表现会更好。3.因此可以迭代训练,不断生成新的less biased数据集, 训练新的model。这样改进下来,和正常训练差别不大了,除了每个epoch要更新一次数据集。以上迭代训练需要生成多次数据集,训练多次model.对噪声图像再添加噪声,得到 噪声更大的图像。1.训练F0,生成新的数据集。原创 2023-07-18 10:18:31 · 757 阅读 · 1 评论 -
pytorch的并行:nn.DataParallel 方法
【代码】pytorch的并行:nn.DataParallel 方法。原创 2023-07-11 10:33:16 · 317 阅读 · 0 评论 -
pytorch AverageMeter
【代码】pytorch AverageMeter。原创 2023-06-07 09:20:45 · 298 阅读 · 0 评论 -
pytorch中Dataloader读取数据太慢的问题
在dataset中,会将数据从磁盘读入内存中,如果启用了dataloader中的pin_memory,就会让数据常驻内存,同时设置num_workers还能实现多进程读取数据,但即使设置了这些,数据加载速度依然没有质的提升。数据读取的速度远远大于GPU训练的速度,导致整个训练流程中有大部分时间都在等待数据发送到GPU,在资源管理器中呈现出CUDA使用率周期性波动,且大部分时间都是在等待数据加载。如果把__getitem__中的一些操作移到 __init__中。编写datast的__init__函数的时候。原创 2023-06-07 09:18:42 · 3532 阅读 · 0 评论 -
pytorch 测量模型运行时间,GPU时间和CPU时间,model.eval()介绍
我们知道,在pytorch中,模型有两种模式可以设置,一个是train模式、另一个是eval模式。model.train()的作用是启用 Batch Normalization 和 Dropout。在train模式,Dropout层会按照设定的参数p设置保留激活单元的概率,如keep_prob=0.8,Batch Normalization层会继续计算数据的mean和var并进行更新。model.eval()的作用是不启用 Batch Normalization 和 Dropout。原创 2023-05-15 14:55:47 · 11464 阅读 · 1 评论 -
单应性Homography梳理,概念解释,传统方法,深度学习方法
homography flow 相比light flow 有更多的约束,homography flow是light flow的一个特殊情况,因为homography flow所有pixel的位移是通过一个转换关系得到的,而light flow是更generatic的情况。都用于计算单应矩阵,即解一个线性方程组。由于单应矩阵有8个未知数(3*3,其中第9个数为1),所以至少需要4个点(每个点-x,y,提供2个约束方程)。该篇论文和6类似,都是无监督学习,只是6把warp等操作放在网络里,7放在了损失函数里.原创 2023-02-01 19:31:29 · 1862 阅读 · 0 评论 -
depthwise-seperate conv 深度可分离卷积解释和pytorch滤波
主要包括depthwise conv 和 pointwise conv。原创 2023-02-01 10:19:58 · 542 阅读 · 0 评论