4 于小勇

尚未进行身份认证

我要认证

计算机视觉/机器学习研究者

等级
TA的排名 1k+

MSELoss损失函数

  MSELoss损失函数中文名字就是:均方损失函数,公式如下所示:这里 loss, x, y 的维度是一样的,可以是向量或者矩阵,i 是下标。很多的 loss 函数都有 size_average 和 reduce 两个布尔类型的参数。因为一般损失函数都是直接计算 batch 的数据,因此返回的 loss 结果都是维度为 (batch_size, ) 的向量。一般的使用格式如下所示:loss_fn = torch.nn.MSELoss(reduce=True, size_average

2020-07-10 11:40:08

pytorch torch.nn 实现上采样——nn.Upsample

1)UpsampleCLASS torch.nn.Upsample(size=None, scale_factor=None, mode='nearest', align_corners=None)上采样一个给定的多通道的 1D (temporal,如向量数据), 2D (spatial,如jpg、png等图像数据) or 3D (volumetric,如点云数据)数据假设输入数据的格式为minibatch x channels x [optional depth] x [optional he

2020-07-10 11:31:58

Pytorch之认识Variable

Tensor是Pytorch的一个完美组件,但是要构建神经网络还是远远不够的,我们需要能够计算图的Tensor,那就是Variable。Variable是对Tensor的一个封装,操作和Tensor是一样的,但是每个Variable都有三个属性,Varibale的Tensor本身的.data,对应Tensor的梯度.grad,以及这个Variable是通过什么方式得到的.grad_fn。# 通过一下方式导入Variablefrom torch.autograd import Variableimp

2020-07-10 11:28:03

batch size设置

深度学习中经常看到epoch、 iteration和batchsize,下面按自己的理解说说这三个的区别:(1)batchsize:批大小。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练;(2)iteration:1个iteration等于使用batchsize个样本训练一次;(3)epoch:1个epoch等于使用训练集中的全部样本训练一次;举个例子,训练集有1000个样本,batchsize=10,那么:训练完整个样本集需要:100次iteratio

2020-07-10 11:24:27

pytorch .detach() .detach_() 和 .data用于切断反向传播的实现

这篇文章主要介绍了pytorch .detach() .detach_() 和 .data用于切断反向传播的实现。当我们再训练网络的时候可能希望保持一部分的网络参数不变,只对其中一部分的参数进行调整;或者只训练部分分支网络,并不让其梯度对主网络的梯度造成影响,这时候我们就需要使用detach()函数来切断一些分支的反向传播。1、detach()返回一个新的Variable,从当前计算图中分离下来的,但是仍指向原变量的存放位置,不同之处只是requires_grad为false,得到的这个Vari

2020-07-10 10:41:21

读取文件夹中指定后缀的文件

import ospath = ''path_list=os.listdir(path)for filename in path_list: if os.path.splitext(filename)[1] == '.mhd': XXXXXX

2020-07-08 16:00:19

深度学习的调参经验

目录(1)、获取数据(2)、预处理(3)、验证集(4)、批处理(5)、权值初始化(6)、学习率(7)、数值梯度检查(8)、Dropout(9)、综合(Ensembling)(10)、自动调参(11)、RNN和LSTM的调参(1)、获取数据确保要有高质量的输入/输出数据集,这个数据集要足够大、具有代表性以及拥有相对清楚的标签。缺乏数据集是很难成功的。(2)、预处理将数据进行集中是非常重要的,也就是要使数据均值为0,从而使每个维度的每次变动为1。有时,

2020-07-08 14:41:18

optimizer.step()和scheduler.step()

optimizer.step()和scheduler.step()的区别optimizer.step()通常用在每个mini-batch之中,而scheduler.step()通常用在epoch里面,但是不绝对,可以根据具体的需求来做。只有用了optimizer.step(),模型才会更新,而scheduler.step()是对lr进行调整。通常我们有optimizer = optim.SGD(model.parameters(), lr = 0.01, momentum = 0.9)sched

2020-07-05 20:07:16

pytorch中 model.cuba的作用是什么?

在pytorch中,即使是有GPU的机器,它也不会自动使用GPU,而是需要在程序中显示指定。调用model.cuda(),可以将模型加载到GPU上去。这种方法不被提倡,而建议使用model.to(device)的方式,这样可以显示指定需要使用的计算资源,特别是有多个GPU的情况下。...

2020-07-05 20:02:57

迭代(iterable)和迭代器

简介: 迭代(iterable) #任何可迭代对象都可以作用于for循环,包括我们自定义的数据类型,只要符合迭代条件,就可以使用for循环 d = {'a': 1, 'b': 2, 'c': 3} #对dict迭代 for k,v in d.迭代(iterable)#任何可迭代对象都可以作用于for循环,包括我们自定义的数据类型,只要符合迭代条件,就可以使用for循环d = {'a': 1, 'b': 2, 'c': 3} #对dict迭代for k,v in d.items(): # 如

2020-07-05 19:59:02

param.requires_grad = False的作用

param.requires_grad = False的作用是:屏蔽预训练模型的权重。只训练最后一层的全连接的权重。最后一层的添加,是通过[2]中的一句代码:model_conv.fc = nn.Linear(num_ftrs, 2)可以发现,冻结预训练模型的权重后,验证精度会下降。...

2020-07-05 19:55:46

PyTorch中的model.zero_grad()和optimizer.zero_grad()

model.zero_grad()optimizer.zero_grad()首先,这两种方式都是把模型中参数的梯度设为0当optimizer = optim.Optimizer(net.parameters())时,二者等效,其中Optimizer可以是Adam、SGD等优化器def zero_grad(self): """Sets gradients of all model parameters to zero.""" for p in self.par.

2020-07-05 19:52:55

A Survey on Rain Removal from Video and Single Image

Hong Wang, Yichen Wu, Minghan Li, Qian Zhao, and Deyu Meng[Arxiv]Citation@article{WangA,title={A Survey on Rain Removal from Video and Single Image},author={Wang, Hong and Wu, Yichen and Li, Minghan and Zhao, Qian and Meng, Deyu},journal={arXiv

2020-07-05 19:50:14

可变学习率

from bisect import bisect_rightimport torch# FIXME ideally this would be achieved with a CombinedLRScheduler,# separating MultiStepLR with WarmupLR# but the current LRScheduler design doesn't allow itclass WarmupMultiStepLR(torch.optim.lr_schedule.

2020-07-05 19:50:03

Deep Retinex Decomposition for Low-Light Enhancement

目录摘要1、简介2、弱光增强的视黄素网2.1、数据驱动的图像分解2.2、支持结构平滑损失2.3、多尺度照明调整2.4、反射上的去噪3、数据集3.1、真实场景中捕获的数据集3.2、从Raw图中合成图像4、实验4.1、实验设置4.2、分解结果4.3、评估4.4、联合微光增强和去噪5、结论摘要Retinex模型是微光图像增强的有效工具。假设观测图像可以分解为反射率和光照。大多数现有的基于retinx的方法都为这种高度病态分解精心设计了手工制作

2020-07-05 19:49:44

去雾算法总结(传统+深度学习)

目录传统的去雾方法1.Single Image Haze Removal Using Dark Channel Prior 何凯明 2009 CVPR2. A Fast Single Image Haze Removal Algorithm Using Color Attenuation Prior 2015 TIP基于深度学习的图像去雾方法1. DehazeNet: An End-to-End System for Single Image Haze Removal 华南理工大学 ..

2020-07-05 19:49:40

pytorch使用tensorboardX进行网络可视化

我们知道,对于pytorch上的搭建动态图的代码的可读性非常高,实际上对于一些比较简单的网络,比如alexnet,vgg阅读起来就能够脑补它们的网络结构,但是对于比较复杂的网络,如unet,直接从代码脑补网络结构可能就比较吃力tensorflow上的tensorboard进行计算图的可视化可谓是非常成熟了,那么有没有可以可视化pytorch动态图的工具呢?实际上是有的,前两天介绍了tensorboardX,pytorch上的一个功能强大的可视化工具,他可以直接可视化网络结构关于如何使用tenso

2020-07-05 19:49:03

Latex如何首行不空格/不缩进

综述有时候我们使用Latex希望首行不空格/不缩进。代码前面加上:\noindent1即可

2020-07-04 22:04:08

Latex 制作表格出现以下错误 Extra alignment tab has been changed to \cr

Latex 制作表格出现以下错误:Extra alignment tab has been changed to \cr. \endtemplate是由于列数没有对齐查看一共有几列,如果是五列,则将\begin{tabular}{cccc}中的c增加至五个:\begin{tabular}{ccccc}

2020-07-04 22:03:14

C++ N叉树的实现

引言最近一个项目需要使用多叉树结构来存储数据,但是基于平时学习的都是二叉树的结构,以及网上都是二叉树为基础来进行学习,所以今天实现一个多叉树的数据结构。理论基础树和二叉树:多叉树:多叉树,顾名思义,就是一个节点可能有若干个子节点,构造的一个较为复杂的树结构。树的遍历:树的遍历一般认为有三种:前序遍历二叉树、中序遍历二叉树、后序遍历二叉树[2]。(1). 前序遍历二叉树。若二叉树为空,则为空操作,返回空否则访问根结点-->前序遍历左子树-->前序遍历右子树。(2).

2020-07-03 14:45:42

查看更多

勋章 我的勋章
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。