
Pytorch
文章平均质量分 68
mjiansun
Live and Learn.
展开
-
【PyTorch】冻结网络参数
这种方式只需要在网络定义中的forward方法中,将需要冻结的层放在 torch.no_grad()下,强力推这种方式。转载 2022-09-15 22:43:48 · 1390 阅读 · 0 评论 -
【Pytorch】详细的torch.norm的用法
(4)keepdim:True or False,如果True,则保留dim指定的维度,False则不保留。调试一下可以发现:t_norm的shape为(64,3,3),而且每一个元素都是为3.②:p='nuc’时,是求核范数,核范数是矩阵奇异值的和。指定p=1,dim=3。也就是在t的第3个维度(从0开始)进行1。(5)out:输出的tensor,文档没说具体含义,暂时不知。:指定在哪个维度进行,如果不指定,则是在所有维度进行计算。(6)dtype:指定输出的tensor的数据类型。转载 2022-08-22 17:31:18 · 2400 阅读 · 0 评论 -
【Pytorch】数据读取详解
研读完代码再来补充数据库DataBase + 数据集DataSet + 采样器Sampler = 加载器Loaderfrom torch.utils.data import *IMDB+Dataset+Sampler||BatchSampler=DataLoader1数据库 DataBaseImage DataBase 简称IMDB,指的是存储在文件中的数据信息。文件格式可以多种多样。比如xml, yaml, json, sql.VOC是xml格式的,COCO...转载 2021-03-02 16:41:03 · 971 阅读 · 0 评论 -
【Pytorch】SGDR
pytorch中既自带了学习率函数,我们也可以自定义学习率调整函数。调整函数通常随epoch的变化而变化。首先实现自定义学习率调整:自定义学习率调整以SGDR余弦学习率调整为例:论文地址:https://arxiv.org/abs/1608.03983在pytorch中的训练代码:# 第epoch值进行计算并更新学习率def adjust_lr(optimizer, epoch, T_0=10, eta_max=0.1, eta_min=0.): if T_mul == 2:转载 2021-01-07 16:47:34 · 1033 阅读 · 1 评论 -
【PyTorch】transforms的二十二个方法
目录一、 裁剪——Crop1.随机裁剪:transforms.RandomCrop2.中心裁剪:transforms.CenterCrop3.随机长宽比裁剪 transforms.RandomResizedCrop4.上下左右中心裁剪:transforms.FiveCrop5.上下左右中心裁剪后翻转: transforms.TenCrop二、翻转和旋转——Flip and Rotation6.依概率p水平翻转transforms.RandomHorizontalFlip7转载 2021-01-05 21:07:46 · 773 阅读 · 0 评论 -
【Torch】torch.max()使用讲解
在分类问题中,通常需要使用max()函数对softmax函数的输出值进行操作,求出预测值索引。下面讲解一下torch.max()函数的输入及输出值都是什么。1. torch.max(input, dim) 函数output = torch.max(input, dim)输入input是softmax函数输出的一个tensor dim是max函数索引的维度0/1,0是每列的最大值,1是每行的最大值输出函数会返回两个tensor,第一个tensor是每行的最大值,softmax的转载 2021-01-04 14:13:16 · 2160 阅读 · 0 评论 -
【Pytorch】模型不同层设置不同的学习率
在目标检测的模型训练中, 我们通常都会有一个特征提取网络backbone, 例如YOLO使用的darknet SSD使用的VGG-16。为了达到比较好的训练效果, 往往会加载预训练的backbone模型参数, 然后在此基础上训练检测网络, 并对backbone进行微调, 这时候就需要为backbone设置一个较小的lr。class net(torch.nn.Module): def __init__(self): super(net, self).__init__()转载 2020-12-28 15:20:45 · 1756 阅读 · 0 评论 -
IndexError: invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Python
报错原因分析:train_loss += loss.data[0] 是pytorch0.3.1版本代码,在0.4-0.5版本的pytorch会出现警告,不会报错,但是0.5版本以上的pytorch就会报错,总的来说是版本更新问题.解决方法:#将原语句:train_loss+=loss.data[0]#修改为:train_loss+=loss.item()#bingo...转载 2020-12-25 14:51:53 · 131 阅读 · 0 评论 -
【Pytorch】多GPU的计算和Sync BatchNorm
https://zhuanlan.zhihu.com/p/69940683转载 2020-12-03 17:03:23 · 2004 阅读 · 0 评论 -
【Pytorch】使用torch.load()加载模型参数时,提示“xxx.pt is a zip archive(did you mean to use torch.jit.load()?)“
前两天刚在服务器上安装了torch,开开心心开始自己的DL之旅。但是在将训练好的模型参数,加载到模型中时,出现了如下图所示的错误,百度半天无果。1.官网查看torch.save参数在torch官网查看了torch.save的介绍,如下图所示。可以看到在torch1.6版本中,对torch.save进行了更改.The 1.6 release of PyTorch switched torch.save to use a new zipfile-based file format. torch.load转载 2020-10-27 18:54:35 · 9387 阅读 · 4 评论 -
【Pytorch】测试单张图片(调用transforms)
Pytorch测试单张图片(调用transforms)import torchimport torch.nn.functional as Ffrom torch.utils.data import DataLoaderimport tqdmimport numpy as npimport argparseimport os.path as ospimport os# from pytorch_toolbelt.inference import ttaimport shutilimp原创 2020-10-22 15:36:18 · 4085 阅读 · 1 评论 -
【Pytorch】tensor.scatter_()将label变成one hot编码
将针对全连接网络和全卷积网络输出的形式不同,将one hot编码分两种情况: 第一种针对网络输出是二维,即全连接层的输出形式, [Batchsize, Num_class] 第二种针对输出是四维特征图,即分割网络的输出形式,[Batchsize, Num_class, H,W] 第二种方式:[Batchsize, Num_class, H,W]input.scatter_(dim, index, src) → Tensor参数:input: 我们需要插入数据的起源tens转载 2020-10-19 10:32:02 · 744 阅读 · 0 评论 -
AssertionError: Default process group is not initialized
博主解决这个问题的方法为:如果项目里有分布式训练相关的代码,如果不使用分布式训练,就不要启动syncbn。参考:https://github.com/pytorch/pytorch/issues/22538转载 2020-09-16 14:22:18 · 5097 阅读 · 0 评论 -
【mmdetection】测试单张图像
本人刚入门目标检测,发现了一个开源的工具箱mmdetection,便自己使用里面的模型试着测试一张图片,网上大多数博客写的还是不够详细,所以想自己写一篇,方便大家及自己今后可以回顾。首先,mmdetection的安装就不用多说了,网上有很多。1、克隆mmdetection到自己的文件夹中(安装mmdetection时已经克隆就不需要在克隆了),在终端服务器中输入git clonehttps://github.com/open-mmlab/mmdetectioncd mmdetectio.转载 2020-07-31 10:54:45 · 3453 阅读 · 5 评论 -
【Pytorch】详解用pytorch搭建一个简单的神经网络
前言本文通过一个简单的神经网络的实现,来介绍相关的pytorch函数,以及相关流程。前面首先介绍代码的实现,后面再针对问题进行相应的解释。前期准备1.pytorch中文文档2.神经网络基础3.BP算法4.文中代码来源代码实现import torchimport torch.nn.functional as Ffrom torch.autograd import Variableimport matplotlib.pyplot as plt x = torch.转载 2020-07-24 19:12:29 · 2871 阅读 · 0 评论 -
【Pytorch】多GPU训练
在具体使用pytorch框架进行训练的时候,发现实验室的服务器是多GPU服务器,因此需要在训练过程中,将网络参数都放入多GPU中进行训练。正文开始:涉及的代码为torch.nn.DataParallel,而且官方推荐使用nn.DataParallel而不是使用multiprocessing。官方代码文档如下:nn.DataParallel教程文档如下:tutorial...转载 2020-03-10 14:19:24 · 523 阅读 · 0 评论 -
【Pytorch】函数DataLoader
Dataset(https://blog.youkuaiyun.com/TH_NUM/article/details/80877196)只负责数据的抽象,一次调用getitem只返回一个样本。前面提到过,在训练神经网络时,最好是对一个batch的数据进行操作,同时还需要对数据进行shuffle和并行加速等。对此,PyTorch提供了DataLoader帮助我们实现这些功能。DataLoader的函数定义如...转载 2020-03-10 13:51:38 · 658 阅读 · 0 评论 -
【YOLACT】代码解读
源码:https://github.com/dbolya/yolactnum_class是算上背景的类别,比如你的类别就一个person,那么记得此时的num_class应该为2,因为还需要算上背景啊。YOLACT的网络结构及输出YOLACT的backbone结构其中_make_layer就是常规的resnet101中的_make_layer,具体是如何操作的可以查看源码ht...原创 2020-01-20 17:31:30 · 7624 阅读 · 9 评论 -
【YOLACT】测试自己数据集
在上面已经讲过如何训练了https://blog.youkuaiyun.com/u013066730/article/details/103720215那么需要将eval_cell.py中的加 ########################################的内容进行修改,具体请看下面的代码。主要就是修改输入的文件夹,然后修改解析输入的代码。from data import CO...原创 2020-01-20 09:47:03 · 4338 阅读 · 0 评论 -
【SSD】pytorch版本的SSD测试
调试的代码源码:https://github.com/amdegroot/ssd.pytorch其中部分配置的参数请参考:https://blog.youkuaiyun.com/u013066730/article/details/103988471修改eval.py主要添加了将检测框,显示在原图上的操作。"""Adapted from: @longcw faster_rcnn_py...原创 2020-01-17 13:51:00 · 2745 阅读 · 5 评论 -
【SSD】pytorch版本的SSD训练
调试的代码源码:https://github.com/amdegroot/ssd.pytorch环境:python3.7 cuda10.0 cudnn7 pytorch1.2.0 torchvision0.4.0问题1使用的是VOC,没有COCO数据,那么就需要将COCO的部分注释掉,如果不注释就会报错。解决方法将train.py中的COCO的部分直接注释掉,修改如下...原创 2020-01-15 14:22:25 · 1706 阅读 · 1 评论 -
【Numpy】矩阵相乘@的用法和pytorch的@用法
首先注明:这里numpy的用法和pytorch的tensor用法是一样的,所以只以numpy进行举例。numpy矩阵相乘matmul可以用@来代替在正常的python编程里面@是作为修饰符使用的,但是在numpy的矩阵乘法中可以使用@来替代matmulmatmul‘@’ operator as method with out parameter.numpy的文档正...转载 2020-01-02 14:41:30 · 1152 阅读 · 0 评论 -
【Pytorch】tensor 转置 t()
tensor的t()属性实现转置>>> import torch>>> x = torch.Tensor([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])>>> x 1 2 3 4 5 6 7 8 9 10[torch.FloatTensor of size 2x5]...转载 2020-01-02 14:33:11 · 35235 阅读 · 0 评论 -
【YOLACT】训练自己数据集
环境win10,cuda10,pytorch1.2,python3.7数据格式由于我的数据标签并不是使用labelme方式得到的,但是为了能使得代码有效运行,将我的数据都整理成如下形式:在train文件夹下有三个子文件夹image,mask,yaml。image当中保存的是rgb三通道的图像image1.pngimage2.pngimage3.png......原创 2019-12-26 18:33:52 · 14418 阅读 · 23 评论 -
vscode调试时报错raise RuntimeError('already started')
vscode远程调试pytorch模型训练时,报错如下:File “/home/xxxx/.vscode-server/extensions/ms-python.python-2019.5.18875/pythonFiles/lib/python/ptvsd/daemon.py”, line 145, in startraise RuntimeError(‘already started’)...转载 2019-11-07 10:46:35 · 1489 阅读 · 0 评论 -
【PyTorch】使用指定的GPU
PyTorch默认使用从0开始的GPU,如果GPU0正在运行程序,需要指定其他GPU。有如下两种方法来指定需要使用的GPU。1. 类似tensorflow指定GPU的方式,使用CUDA_VISIBLE_DEVICES。1.1 直接终端中设定:CUDA_VISIBLE_DEVICES=1 python my_script.py1.2 python代码中设定:import ...转载 2019-10-22 15:38:56 · 251 阅读 · 0 评论 -
【Python】torch.nn.Module类属性
nn.Module基类的构造函数:def __init__(self): self._parameters = OrderedDict() self._modules = OrderedDict() self._buffers = OrderedDict() self._backward_hooks = OrderedDict() self._forw...转载 2019-10-18 10:42:56 · 2232 阅读 · 0 评论 -
【Pytorch】读取model中的module和name
例一from torchvision import modelsimport torchfrom torch.autograd import Variableimport cv2import numpy as npx = cv2.imread(r"./examples/both.png")[:,:,(2,1,0)]x = np.transpose(x, (2, 0, 1))...原创 2019-10-18 09:43:20 · 11441 阅读 · 3 评论 -
Keras vs PyTorch
Keras vs PyTorch:debug 和内省Keras 封装了大量计算模块,这使得确定导致问题的代码较为困难。相比起来,PyTorch 更加详细,我们可以逐行执行脚本。和 debug NumPy 类似,我们可以轻松访问代码中的所有对象,使用 print 语句(或任何标准 Python debug 语句)查看有问题的代码。Keras 用户创建的标准网络要比 PyTorch 用户创...转载 2019-10-17 15:37:15 · 1418 阅读 · 0 评论 -
【PyTorch】register_hook
pytorch 的 hook 函数分为 torch.Tensor 和 torch.nn.Module 两类, 分别对应 torch.Tensor.register_hook torch.nn.Module.register_backward_hook 一般用第1个比较多。每一个tensor都有register_hook方法,每次当关于这个参数的gradient被计算出来以后...转载 2019-10-17 11:14:30 · 3151 阅读 · 0 评论 -
Clinical-grade computational pathology using weakly 使用透彻影像提供的数据集进行训练
目录数据数据处理代码构建数据处理代码执行MIL训练训练了大概4天,训练得到的convergence为书接上回https://blog.youkuaiyun.com/u013066730/article/details/96705542,当时没有提供数据,但是我最近从透彻影像的github网站https://blog.youkuaiyun.com/u013066730/article/deta...原创 2019-10-16 17:30:34 · 2116 阅读 · 6 评论 -
【Pytorch】backward的 retain_variables=True与retain_graph=True 区别及应用
首先 :retain_variables=True 与 retain_graph=True没有任何区别只是 retain_variables 会在pytorch 新版本中被取消掉,将使用 retain_graph 。所以 在使用 retain_variables=True 时报错:TypeError: backward() got...转载 2019-10-15 16:22:15 · 1280 阅读 · 0 评论 -
pytorch导出onnx格式时报错,RuntimeError: Failed to export an ONNX attribute, since it's not constant, please
运行程序,Pytorch版YOLOv3,链接地址:https://github.com/eriklindernoren/PyTorch-YOLOv3Pytorch版本:1.1.0onnx转换程序:import torchimport torchvisionfrom models import *import argparsedef main(): par...转载 2019-10-15 09:52:09 · 3553 阅读 · 0 评论 -
【Pytorch】F.avg_pool1d()和F.avg_pool2d()
目录F.avg_pool1d()F.avg_pool2d()F.avg_pool1d()数据是三维输入input维度: (batch_size,channels,width)channel可以看成高度kenerl维度:(一维:表示width的跨度)channel和输入的channel一致可以认为是矩阵的高度假设kernel_size=2,则每俩列相加求平均,stride默认...转载 2019-10-14 17:41:21 · 9082 阅读 · 2 评论 -
【Pytorch】torch.nn.functional.normalize
目录本质官方参考实例本质torch.nn.functional.normalize(input,p=2,dim=1,eps=1e-12,out=None)本质上就是按照某个维度计算范数,p表示计算p范数(等于2就是2范数),dim计算范数的维度(这里为1,一般就是通道数那个维度)官方参考官方api:https://pytorch.org/docs...原创 2019-07-09 16:47:44 · 21117 阅读 · 1 评论 -
【Pytorch】模型微调
https://segmentfault.com/p/1210000018024703/read#top转载 2019-07-03 23:32:39 · 870 阅读 · 0 评论 -
【Pytorch】AdaptiveAvgPool2d的用法
torch.nn.functional.adaptive_avg_pool2d(input,output_size)意思就是不管之前的特征图尺寸为多少,只要设置为(1,1),那么最终特征图大小都为(1,1)def _make_test_model(): import torch.nn as nn from inferno.extensions.laye...转载 2019-07-03 23:14:14 · 30104 阅读 · 0 评论 -
【Pytorch】的函数中的group参数的作用
官方的api介绍:https://pytorch.org/docs/stable/nn.html?highlight=nn conv2d#torch.nn.Conv2d1.当设置group=1时:conv = nn.Conv2d(in_channels=6, out_channels=6, kernel_size=1, groups=1)conv.weight.data.size()...转载 2019-07-09 10:36:52 · 2819 阅读 · 1 评论 -
【Pytorch】label smoothing
本质上就是将标签变得平滑,让预测的结果不那么相信所属的类别,起到增强鲁棒性的作用。标签平滑的想法首先被提出用于训练 Inception-v2 [26]。它将真实概率的构造改成:其中ε是一个小常数,K 是标签总数量。图 4:ImageNet 上标签平滑效果的可视化。顶部:当增加ε时,目标类别与其它类别之间的理论差距减小。下图:最大预测与其它类别平均值之间差距的经验分布。很明...转载 2019-07-03 08:54:13 · 8171 阅读 · 0 评论 -
【Pytorch】view的用法
torch.Tensor.view会返回具有相同数据但大小不同的新张量。 返回的张量必须有与原张量相同的数据和相同数量的元素,但可以有不同的大小。一个张量必须是连续contiguous()的才能被查看。类似于Numpy的np.reshape()。pytorch中view的用法torch.Tensor.view会将原有数据重新分配为一个新的张量,比如我们使用:x = torch.ran...转载 2019-07-02 22:44:26 · 2027 阅读 · 0 评论