
深度学习
文章平均质量分 88
andyL_05
EE 计算机视觉 机器学习 深度学习 算法
展开
-
论文笔记 - CFNet: Cascade and Fused Cost Volume for Robust Stereo Matching. CVPR 2021
论文笔记。本文是2021年CVPR的一篇文章,针对双目立体匹配任务。文章数提出了一种级联+融合的costvolume构造和回归策略,从而获得了高精度、对数据高鲁棒性的立体匹配结果。本文的切入点主要针对立体匹配的鲁棒性,指出由于数据集之间的差异以及视差分布的差异,导致很多算法只能在特定数据集获得很好的结果,迁移性和泛化性不足,这也严重制约了很多算法模型在真实场景的应用。因此,本文提出了CFNet采用融合+级联的方式提升立体匹配算法的鲁棒性。...原创 2022-07-22 19:50:08 · 1602 阅读 · 1 评论 -
论文笔记 - RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching
这篇博客是对论文RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching的阅读笔记。论文地址位于,代码已开源,位于:RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching本文是一篇将光流算法RAFT迁移至立体匹配领域的文章,基于光路估计网络RAFT,提出了多级卷积GRU实现立体匹配的代价传播。文章对RAFT进行优化,并得到了一个高精度原创 2022-05-14 11:06:57 · 3029 阅读 · 1 评论 -
论文笔记 - Omnidirectional stereo depth estimation based on spherical deep network
论文笔记 Omnidirectional stereo depth estimation based on spherical deep network本文是2021 Image and Vision Computing上的一篇文章。IVC算是领域内认可度较高的期刊之一。本文针对双目全景深度估计,提出了基于球面卷积的级联网络,将全景图的平面投影转换到球面表示,获取了高精度的全景深度图。......原创 2021-09-15 20:59:06 · 1292 阅读 · 1 评论 -
训练过程中Loss突然变为NaN的可能原因与解决
训练过程中Loss突然变为NaN的可能原因与解决深度学习训练过程中,我们依赖模型当前参数训练得到的loss,根据所选择的优化策略,如Adam、SGD等得到参数步进调整值,对参数进行不断的调整,直到模型达到我们的预期。但在实际训练过程中,有时候会发现loss变为NaN或Inf的情况,导致训练无法正常进行。出现这种情况的原因主要有以下几点:1. 梯度爆炸2. 出现除零、对数函数自变量为负值等数学问题3. 出现坏样本1. 梯度爆炸训练过程中由于学习率等超参数设置的不合理,导致优化过程中没有减小los原创 2021-07-27 13:03:19 · 35376 阅读 · 15 评论 -
论文笔记 - BiFuse: Monocular 360◦ Depth Estimation via Bi-Projection Fusion. CVPR 2020
论文笔记 - BiFuse: Monocular 360◦ Depth Estimation via Bi-Projection Fusion. CVPR 20201. Introduction2. Related Work3. Approach4. Experimental Results实际测试:这篇博客介绍一篇CVPR2020的论文,这篇论文结合了全景图(360°图像)的两种常见投影方式,设计了融合模块及双分支神经网络,实现了出色的单目全景图深度估计性能。论文地址:https://ieeexplor原创 2021-03-06 22:03:00 · 1323 阅读 · 0 评论 -
论文笔记 - PSM-Net: Pyramid Stereo Matching Network. CVPR 2018
Pyramid Stereo Matching Network. CVPR 2018本文指出,通过立体图像对估计深度已经能够表征为监督学习任务并且通过卷积神经网络解决。但是已有算法都依赖于基于patch的孪生网络,缺乏对上下文信息的利用,难以找到非适定区域关联性。本文提出了金字塔立体匹配网络PSM-Net,主要包括了空间金字塔池化与3D CNN。空间金字塔池化能够通过多尺度累积获取全局语境信息,3DCNN能够通过堆叠沙漏网络及中间结果监督规则化cost volume,获取视差图。Introduction原创 2020-12-10 21:33:12 · 1233 阅读 · 0 评论 -
pytorch命令行打印模型结构的两种方法及对比
pytorch命令行打印模型结构的两种方法及对比当我们使用pytorch进行模型训练或测试时,有时候希望能知道模型每一层分别是什么,具有怎样的参数。此时我们可以将模型打印出来,输出每一层的名字、类型、参数等。常用的命令行打印模型结构的方法有两种:一是直接print二是使用torchsummary库的summary但是二者在输出上有着一些区别。首先说结论:1. print输出结果是每一层的名字、类别、以及构造时的参数,例如对于卷积层,还包括用户定义的stride、bias等;而torch summ原创 2020-10-24 22:42:26 · 43496 阅读 · 5 评论 -
pytorch 使用预训练模型如resnet、vgg等并修改部分结构
pytorch 使用预训练模型并修改部分结构原创 2020-10-06 17:28:03 · 34159 阅读 · 13 评论 -
论文笔记 - Cycle-GAN Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
论文笔记 - Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks本文是ICCV 2017的一篇文章,也就是著名的Cycle-GAN一文。同时期研究生成模型的算法很多(现在依然有很多)起了各种xxxGAN的名字。CycleGAN是生成模型中很有启发性的一个工作,马和斑马的图也在网络上广为流传。论文和源码、模型都可以在作者的网页找到。AbstractIntroduction &&原创 2020-07-09 21:54:20 · 569 阅读 · 0 评论 -
【论文笔记】Generative Adversarial Frontal View to Bird View Synthesis - 论文阅读笔记
【论文笔记】Generative Adversarial Frontal View to Bird View Synthesis这篇论文是一篇发表在3DV会议上的文章,提出了基于GAN进行视角迁移与生成的方法,针对的场景是基于正面视角frontal view来生成俯视图bird view。作者提出了名为Bridge GAN的模型,结合homography,实现了由Frontal view生成Bi...原创 2020-07-08 20:36:11 · 450 阅读 · 0 评论 -
pytorch 网络train、eval以及在训练与测试时实现不同输出的方法
pytorch 网络train、eval以及在训练与测试时实现不同输出的方法深度学习网络往往都是通过训练过程将初始参数调优,然后通过训练后的模型进行测试与预测。对于一些场景,比如图像生成、深度图预测、分割等,有可能需要在训练过程中采用多尺度的思想,生成不同尺度的结果并计算loss,但是在测试与预测阶段,实际上只需要输出最后要求的一个尺度(分辨率)下的结果即可。这就需要我们在测试和训练时实现不同的输出。方法pytorch的网络模型有一个属性 training,用于判断当前模型是否处于训练阶段,因此,我们原创 2020-06-28 17:40:48 · 4681 阅读 · 4 评论 -
Ubuntu 18.04 升级内核 配置GPU驱动+CUDA+CUDNN
Ubuntu 18.04 升级内核 配置GPU驱动+CUDA+CUDNN本文简述Ubuntu 18.04系统下内核的升级以及CPU驱动、CUDA、CUDNN等的配置过程。希望能够能帮助大家避坑。首先我系统初始为4.15版本内核的Ubuntu 18.04系统,这里我对内核做了一下升级。实际上不升级也完全没有问题,不影响后续操作。需要注意的地方在于内核版本与NVIDIA驱动版本应当匹配(比如410版本的驱动就无法在4.18以上的内核正常运行)。升级内核这里只需要简单的通过apt安装即可。sudo ap原创 2020-06-26 21:29:15 · 2591 阅读 · 0 评论 -
one of the variables needed for gradient computation has been modified by an inplace operation
本文主要讨论pytorch在训练时出现错误:Runtime Error:one of the variables needed for gradient computation has been modified by an inplace operation 的不同情况。对需要求导的Tensor使用了 inplace 操作inplace操作类似于a+=5即使用变量参与了运算,又修改了变量的值。这类问题在这里降解的比较清楚。比如一个张量a用于计算张量b,随后又对a重新赋值,但是使用b求解loss并反原创 2020-06-23 16:24:48 · 3128 阅读 · 4 评论 -
PyTorch 加载数据集PIL.Image和numpy相互转化出现 TypeError: Cannot handle this data type的问题
PyTorch 加载数据集PIL.Image和numpy相互转化出现 TypeError: Cannot handle this data type的问题pytorch 加载图片数据集通常会使用 PIL读入图片,进行一些预处理转化为Tensor并有dataloader加载进行训练或测试。有时候我们对图像的预处理要求较高,PIL库无法快捷的完成,常常会用numpy数据辅助完成。但是使用不当也会造成一些问题,例如:Traceback (most recent call last): File "trai原创 2020-06-22 17:40:05 · 8809 阅读 · 5 评论 -
PyTorch+TensorboardX 出现“Found more than one "run metadata" ”以及可视化多个模型graph的问题
Tensorboard是一个非常好用的深度学习可视化工具,能够将训练过程loss变化、模型结构等可视化显示,方便我们了解细节,在使用TensorFlow框架时经常用到。TensorboardX则是适用于PyTorch框架的可视化工具,使用方法基本类似。本文主要解决使用PyTorch和TensorboardX出现的一些问题。1. 出现“Found more than one “run metad...原创 2020-04-16 11:47:31 · 1244 阅读 · 0 评论 -
PyTorch 与 TensorboardX 的版本兼容性问题
1· PyTorch 与 TensorboardX 的版本兼容性问题在tensorflow的使用中,大家往往都会用tensorboard进行数据的可视化,例如模型结构、损失函数的变化等,实际上PyTorch也可以使用TensorboardX 进行可视化。PyTorch有自己的visdom模块实现可视化,但是从接口的方便、简介的角度来说,TensorboardX用起来更加容易。本文简要介绍一下自...原创 2020-01-10 21:49:42 · 19804 阅读 · 2 评论 -
pytorch 损失函数详解及自定义方法
pytorch 损失函数详解及自定义方法损失函数是机器学习与深度学习解决问题中非常重要的一部分,可以说,损失函数给出了问题的定义,也就是需要优化的目标:怎么样可以认为这个模型是否够好、怎样可以认为当前训练是否有效等。pytorch框架上手十分方便,也为我们定义了很多常用的损失函数。当然,面对特殊的应用场景或实际问题,往往也需要自行定义损失函数。本文首先介绍如何自定义损失函数,再选择一些常用或...原创 2019-12-30 14:57:52 · 4493 阅读 · 1 评论 -
BN层和Dropout在训练与测试时的差别以及实现细节
BN层和Dropout在训练与测试时的差别以及实现细节1·BN层介绍及测试训练的差别BN也即Batch Normalization,批规范化,是由谷歌的大佬们在2015年《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》提出的。文章指出,深度网络中每一层的输...原创 2019-12-26 22:29:06 · 8977 阅读 · 5 评论 -
Pytorch 模型构建、训练、测试及预测
Pytorch 模型构建、训练、测试及预测本文以AlexNet识别手写数字为例,简要介绍如何使用pytorch构建网络模型,并进行训练、测试及预测所使用的环境:Ubuntu 19.04,python 3.7,pytorch 1.1.0,torchvision 0.3.01· Pytorch模型构建pytorch自定义网络模型较为简单,自定义class继承自(torch.nn.Module)...原创 2019-12-03 13:07:18 · 38506 阅读 · 7 评论 -
Pytorch数据集的加载与使用
Pytorch 数据集的加载使用Pytorch数据集通常使用 torch.util.data.Dataset 以及 torch.utils.data.DataLoader完成。对于图像数据集,torchvision.datasets提供了一种加载数据集的方法,通过torchvision.datasets.ImageFolder将根目录下图像加载为dataset,其效果是将根目录下的指定子目录内...原创 2019-11-28 17:18:59 · 1362 阅读 · 0 评论 -
深度神经网络常见激活函数及导数
常用激活函数及导数一、激活函数简介激活函数是深度神经网络的重要组成部分,其作用是对模型引入非线性表达与特性。神经网络通常由多层神经元组成,后一层的单个神经元可以表达为前层神经元的线性组合。显然,如果不引入非线性因素,深层神经网络也仅仅是输入的线性组合。激活函数将非线性的表达引入模型,对每个神经元,根据前层输出线性计算得到的数值进行非线性的映射,从而增大模型的表达性能。二、常见激活函数及导数...原创 2019-10-21 15:02:06 · 750 阅读 · 0 评论