Toggle navigation
ShaoZi's Blog
Home
About
Tags
ShaoZi's Blog
Hello World!
Pytorch学习8:关于显存溢出
Pytorch
cuda runtime error(2): out of memory 上面这一行应该是最常见的bug之一了。解决这个问题,可以按以下步骤: 第一,检查一下你的显卡的存储是否满足实验要求。 ——这里的实验要求不太好界定,基本跑的主干网络多了,应该能有一个大致的估计,vgg16输入224*224的图像batchsize设为多少能占多少显存,resnet50又能占多少。然后看看自己的网络结构...
Posted by Shaozi on May 6, 2018
Pytorch学习7:设置梯度
Pytorch
深度学习很重要的一点是反向传播,所以梯度的计算尤为重要,pytorch中对于tensor可以自动的计算梯度,对于其中已经包含的层,梯度的计算也是自动的。但是当你使用一个fine-tunning的操作,或者自己定义层时,如何定义处理梯度问题,或者设置梯度就尤为关键了。这里将简单介绍一下pytorch中如何开启或关闭tensor的梯度计算和层的梯度计算。 直接上代码: >>> ...
Posted by Shaozi on May 6, 2018
Pytorch学习6:数据的读入和处理
Pytorch
这一部分将是我这个教程的最后一节,其他的内容还是建议大家去pytorch的官网上进行查阅,因为实在是太多。完整的看一遍意义不大,这篇教程之后将以各种实例的形式介绍pytorch的使用。不再阅读官方的教程。 完成这一部分的demo需要在conda环境下添加两个新的工具包: conda install scikit-image #用于图像的读取与转换 conda install pandas...
Posted by Shaozi on May 6, 2018
Pytorch学习5:训练一个分类器
Pytorch
现在已经知道了一个网络的结构搭建,正向反向传播以及梯度下降的训练方法。那么如何读入一组数据? 首先使用现有的python工具包将训练数据读入存为numpy的形式,之后将numpy转换为pytorch使用的tensor: -图像:使用Pillow或者OpenCV -音频:使用scipy或者librosa 在pytorch中提供了一个数据库的读取包torchvision,可以读取并使用一些常用...
Posted by Shaozi on May 6, 2018
Pytorch学习4:神经网络流程
Pytorch
现在试着用pytorch搭建一个手写字母识别的网络,这是一个很经典的demo,网络结构如下: 流程包括以下几步 1.定义一个神经网络 2.迭代输入训练数据 3.前向传播 4.计算loss 5.反向传播 6.更新网络参数(weight = weight - learning_rate * gradient,weight往梯度下降的方向增加) 首先定义网络: import torch im...
Posted by Shaozi on May 6, 2018
Pytorch学习3:训练第一个网络
Pytorch
首先torch.Tensor是整个框架的核心,所有的操作都是基于其展开,当完成前向运算后,可以通过调用.backward()来进行反向传播,梯度会被自动的计算,并且存在.grad中。 可以调用.detach()来关闭一个tensor,使其不被tracking。 当网络中的某一个tensor不需要梯度时,可以使用torch.no_grad()来处理。 巴拉巴拉巴拉,官网上的解释太复杂了,...
Posted by Shaozi on May 6, 2018
Pytorch学习2:基础
Pytorch
个人之前没有tensorflow的使用经验,只接触过caffe,因此对于tensors的概念也是初步接触。如有谬误,欢迎指正。 官网的教程从tensor的使用入手。tensor的使用主要是为了能够在GPU上实现运算。算是数据和GPU的一个接口吧。该数据类型类似numpy,使用他需要加上以下预处理: form __future__ import print_function import t...
Posted by Shaozi on May 6, 2018
Pytorch学习1:环境的搭建
Pytorch
#环境搭建 ubuntu14.04+anaconda2+python2.7 首先在conda中新建一个环境: conda create –name pytorch_learn python=2.7 进入该环境: source activate pytorch_learn 安装pytorch,(可参考官网)这里根据我的环境,按照官网的方式: conda install...
Posted by Shaozi on May 6, 2018
Pytorch学习11:GPU并行
Pytorch
pytorch在GPU并行方面还算很方便。在定义好model之后只需要使用一行: model = torch.nn.DataParallel(model) 即可实现在所有GPU上并行运算。 但是有时候直接占用所的GPU是没有必要的,如果要指定GPU,可以在DataParallel中增加一个参数: model = torch.nn.DataParallel(model, device_ids...
Posted by Shaozi on May 6, 2018
Pytorch学习10:如何切断梯度的反向传播
Pytorch
这个问题好像目前还没有一篇博客有过系统的介绍。这里我简单说一下吧。 首先为什么要切断梯度的反向传播?这里要先从模型的fine-tunning说起。 提到pytorch下的fine-tunning操作。网上的方法也是各式各样。基本上是先读取一个已有的模型,然后读取其中部分层,然后删去不需要的层,增加需要重新训练的层,往往是最后的FC。然后将这两部分设为不同的学习率。这一部分操作网上很多,我...
Posted by Shaozi on May 6, 2018
← Newer Posts
Older Posts →
FEATURED TAGS
Detection
Deep Learning
Detectron
Pytorch
Fine-grained
Embedding
Metric Learning
mmdetection
detection
ABOUT ME
Hello World!
简
✉️ chenyue21@jd.com
FRIENDS
shaozi_ss