![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PyTorch
全员鳄鱼
中科院北京某所憨憨学生
展开
-
VSCODE debug 配置文件
先把interpreter(左下角调整至需要的环境)点击左侧debug,配置debug文件,一般选current file即可想要添加参数通过"args",格式是"A", “B”。A=参数key,B=参数value原创 2021-06-17 15:07:58 · 838 阅读 · 1 评论 -
Fast Enhancement for Non-Uniform Illumination Images using Light-weight CNNs
重点暗光增强任务面临着输入图像模糊、信息少、低饱和度、低对比度等退化问题,目前有非常多的方法已经提出来解决问题,但是,并没有一个方法足够轻量化、速度快,以至于将模型部署到移动端上。全文最最重要的就是说自己的网络轻量化、速度快作者提出了一种方法:使用经过预处理(retouching module)的数据集(图选自COCO),以原图+max value of RGB+反 max value of RGB 结合图 作为input,先训练illumination net和fushion net,illum原创 2020-10-15 20:14:42 · 1254 阅读 · 4 评论 -
神经网络调参:loss震荡过于明显/loss剧烈抖动
前言在训练网络的时候,常常会出现loss出现非常明显的剧烈抖动情况,虽然大多数情况可以继续训练下去,但是实际上还是预示着问题存在。而且,有不同维度的问题,这也需要不同的解决方法,但是具体究竟是哪一种,还得具体情况具体分析。无过拟合是否找到合适的loss函数:在深度学习里面,不同的loss针对的任务是有不同的,有些loss函数比较通用例如L1/L2等,而如perceptual loss则比较适合在图像恢复/生成领域的任务上。当loss出现问题的适合,想一想,是不是loss设置的有问题,别人在此领域的任原创 2020-09-24 21:46:19 · 56218 阅读 · 8 评论 -
cuda版本不一致以及更新cudatoolkit出现错误以及RemoveError: ‘requests‘
在更改cudatoolkit版本的时候,出现错误:RemoveError: ‘requests’ is a dependency of conda and cannot be removed from conda’s operating environment.通过查询资料,有提供了几种方法:有说conda版本太低的,于是乎使用conda update conda,但是仍旧报错。之后查询,使用conda update --force conda,强制执行升级conda有说是因为requests原创 2020-09-15 20:42:44 · 2075 阅读 · 0 评论 -
low-light系列:Lightening Network for Low-light Image Enhancement
前言文章下载链接在后面这是一篇顶刊TIP2020的文章,重点在于:文章将暗光增强任务视为一个求residual(残差)的任务LBP模块的提出,借用了SR(超分辨率)任务中的back-projection思想可调亮度的参数γ没有采用常用的L1、L2作为loss,而是采用SSIM loss 与TV smooth loss暗光增强任务需要融合global和local不同层级的特征才能很好地完成任务residual的假设Y=X+γP(X)−nY = X + \gamma P(X)-nY=X+γ原创 2020-09-14 15:02:42 · 2857 阅读 · 8 评论 -
ipdb用于深度学习框架pytorch上的debug
安装pip install ipdb使用程序内import ipdb# 在希望断点的位置写上ipdb.set_trace()程序外在程序内写断点回有点给代码不整洁的感觉,所以有时候也在linux命令行上直接启动ipdb:python -m ipdb xxxx.py这时候是从第一行开始debug的噢!!常用按键n:下一步s:步入某函数中c:运行完程序或运行到下一个set_trace()(如有)crt+d:键盘操作,退出debug...原创 2020-09-09 22:15:06 · 658 阅读 · 0 评论 -
RCAN/RCAB:Image Super-Resolution Using Very Deep Residual Channel Attention Networks
前言这是使用在超分辨率 领域的一个论文,主要卖点是提出的名叫RCAB的注意力模块。Motivation低分辨率图像(DR)中包含大量低频信息,但是在一般的卷积神经网络中每个通道中的特征会被同等对待,缺乏跨特征通道的区分学习能力,阻碍了深层网络的表征能力,不符合超分辨率任务中尽可能多地恢复高频信息的需求。MethodsRCAN本文提出了residual channel attention network(RCAN),残差通道注意力网络,来自适应地学习较深的网络中不同通道中的特征。提出residu原创 2020-08-20 17:26:54 · 2481 阅读 · 1 评论 -
视频特征提取:C3D/Learning Spatiotemporal Features with 3D Convolutional Networks
总结3D conv在之前并没有广为盛行于视频处理领域。作者认为,相比会丢失时间信息的2D conv,3D conv非常适合时空特征学习(即针对视频),下图是2D conv和3D conv的区别。作者使用基于3x3x3的3D conv的带有全连接层的深度卷积神经网络对视频进行特征提取,同时验证了3x3x3的3D conv性能相对其他大小的3D conv更优秀。并且,训练好的C3D可以作为优秀的特征提取器,能够提取输入视频的特征,用作在其他任务上。作者认为,一个优秀的视频描述符应该有四个指标:通用原创 2020-08-13 11:59:31 · 3501 阅读 · 0 评论 -
Python:分类时究竟使用sigmoid还是softmax?探究sigmoid和softmax的应用区别
直截了当,不谈公式:Sigmoid=>多标签分类问题=>多个正确答案=非独占输出举例:如胸部X光检查可能同时存在两种病症Softmax=>多类别分类问题=>只有一个正确答案=>互斥输出(所有概率总和为1)举例:手写数字识别,鸢尾花分类参考:https://www.sohu.com/a/321563936_100118081...原创 2020-08-03 23:52:40 · 793 阅读 · 0 评论 -
Pytorch:能够减少计算量的非对称卷积(asymmetric convolution)的pytorch实现
前言在实际应用中,我们可能会遇到使用非对称卷积的情况,如谷歌的inceptionv3v4中就有使用1x7,7x1的卷积,这和我们平时使用的3x3卷积不同,是不对称的。计算量相比直接进行卷积,非对称卷积能够减少计算量。原来是 n×n 次乘法,改了以后,变成了 2×n 次乘法了,n越大,运算量减少的越多。假设有一个5x5大小的特征图,使用3x3的卷积,不进行padding(即valid),步长默认为1。计算量:先进行3x1卷积核的滑动,横向滑动3次,纵向滑动5次,每一次计算量为3,计算量为(3x5)原创 2020-07-26 11:32:32 · 3620 阅读 · 0 评论 -
Pytorch:torch.mul点乘和torch.mm矩阵乘法
torch.mul() 点乘:即矩阵内元素一一对应相乘import torchinput1 = torch.Tensor([[1,2],[3,4]])input2 = torch.Tensor([[2,2],[2,2]])print(input1.shape)print(input2.shape)output = torch.mul(input1,input2)print(output)print(output.shape)得到:torch.Size([2, 2])torch.S原创 2020-07-25 23:28:46 · 1133 阅读 · 0 评论 -
Pytorch:flatten()函数,压缩tensor的维度
前言有时候会面对需要把数据进行维度转换的情况,比如本来512*N*W*H(BNWH)的维度需要转换为512*(N*W*H)的一个output和(N*W*H)*512的一个output,然后将两者进行矩阵乘法。即(NHW)*512 X 512*(NWH) = (NHW)*(NHW),然后再和初始的512*N*W*H进行矩阵乘法,结果仍旧是512*N*W*H,常用在一些non-local conv block中。代码import torchimport numpy as npinput = t原创 2020-07-25 22:57:50 · 5067 阅读 · 1 评论 -
Pytorch学习:图像分类入门!使用CIFAR-10数据集,完整地创建深度神经网络进行训练、测试并保存和读取
1. 导入Pytorch以及相关包本文使用pytorch=1.5.1+cuda10.1import torchimport torch.nn as nnimport torch.nn.functional as Fimport torchvisionimport torchvision.transforms as transformsimport torch.optim as optimimport time,ostorch.nn是torch.nn.functional中torchv原创 2020-07-16 13:38:43 · 4162 阅读 · 3 评论 -
Pytorch:关于epoch、batch_size和batch_idx(iteration )的一些理解(深度学习)
前言在新手搭建神经网络时,常弄不清epoch、batch_size、iteration和batch_idx(iteration )的区别。这里以torchvision自带的CIFAR10数据集来举例,通过代码操作来直观地对这几个概念进行理解。声明,这里batch_idx==iteration。数据准备首先加载数据集:import torchimport torch.nn as nnimport torchvisiontrain_dataset = torchvision.datasets原创 2020-07-15 10:22:28 · 18818 阅读 · 8 评论 -
PyTorch:重写/改写Dataset并载入Dataloader
前言众所周知,Dataset和Dataloder是pytorch中进行数据载入的部件。必须将数据载入后,再进行深度学习模型的训练。在pytorch的一些案例教学中,常使用torchvision.datasets自带的MNIST、CIFAR-10数据集,一般流程为:# 下载并存放数据集train_dataset = torchvision.datasets.CIFAR10(root="数据集存放位置",download=True)# load数据train_loader = torch.utils.原创 2020-07-13 19:27:21 · 5902 阅读 · 1 评论