![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pytorch
文章平均质量分 69
WYXHAHAHA123
这个作者很懒,什么都没留下…
展开
-
torch.Tensor和torch.tensor的区别
torch.Tensor将输入的data转换成torch.FloatTensor,只能转换成浮点数类型torch.tenor将输入的data转换成torch.tensor类型,其中数据类型根据输入的data的数据类型决定,故而torch.tensor的应用场景会更多。...原创 2020-01-12 22:24:39 · 439 阅读 · 0 评论 -
torch.where和布尔索引的速度比较
import torchimport timex = torch.Tensor([[1, 2, 3], [5, 5, 5], [7, 8, 9],[5,5,5],[1,2,3,],[1,2,4]])'''使用pytorch实现对于任意shape的torch.tensor,如果其中的element不等于5则为0,等于5则保留原数值实现该功能的两种方式,并比较两种实现方式的速度'''...原创 2019-03-05 21:46:00 · 3021 阅读 · 1 评论 -
torch.LongTensor转换成one hot tensor编码
import torch'''pytorch0.4.0及以上的高版本,加上pytorch0.2.0都支持torch.Tensor._scatter功能实现将torch.LongTensor编码成 one-hot vector的功能'''rois_label=torch.tensor( [[0,1,0,5,2,7,4,3,1,2]])#假设当前的ground truth box...原创 2019-02-27 10:24:58 · 5094 阅读 · 0 评论 -
pytorch numpy list类型之间的相互转换
import torchfrom torch.autograd import Variableimport numpy as np'''pytorch中Variable与torch.Tensor类型的相互转换'''# 1.torch.Tensor转换成Variablea=torch.randn((5,3))b=Variable(a)print('a',a.type(),a.sh...原创 2019-03-08 20:59:53 · 15220 阅读 · 3 评论 -
基于深度学习的单目深度估计
最近为了应付面试,把扔了好久当初也没好好学的单目深度估计拿出来,怕面试被问到。 代码:https://github.com/xanderchf/MonoDepth-FPN-PyTorch 1.数据预处理 首先从数据集中分别读取RGB彩色图像和对应的深度图标签从图像中读取出来,得到rgb和depth,其中RGB是彩色图,先resize到192*640,再取出12...原创 2019-03-06 20:47:34 · 2769 阅读 · 7 评论 -
refinedet:Single-Shot Refinement Neural Network for Object Detection
这是中国科学院自动化所在CVPR2018发表的论文。论文链接:https://arxiv.org/abs/1711.06897pytorch代码链接:https://github.com/luuuyi/RefineDet.PyTorchRefinedet模型大致上是将RPN、SSD和FPN融合到了一起。 对于物体检测任务而言,两个阶段的方法two stage method...原创 2019-03-09 22:13:59 · 953 阅读 · 0 评论 -
pytorch 实现cross entropy损失函数计算的三种方式
import torchimport torch.nn.functional as F'''实现cross entropy损失函数计算的三种方式'''input = torch.randn(3, 5, requires_grad=True)# each element in target has to have 0 <= value < Ctarget = torch....原创 2019-03-08 10:35:38 · 4190 阅读 · 1 评论 -
pytorch实现focal loss的两种方式
import torchimport torch.nn.functional as Fimport numpy as npfrom torch.autograd import Variable'''pytorch实现focal loss的两种方式(现在讨论的是基于分割任务)在计算损失函数的过程中考虑到类别不平衡的问题,假设加上背景类别共有6个类别'''def compute_cl...原创 2019-03-08 11:26:17 · 6898 阅读 · 18 评论 -
物体检测初学者github代码
其实比较R-CNN、fast R-CNN、faster R-CNN、YOLO、SSD等模型的准确度,直接给出准确率的意义不大,因为这些网络的基网络可能不同,故在给出detector准确率的同时,最好也同时给出基网络的模型:如VGG、resnet。为什么region-based method的方法train from scratch会不收敛,而SSD的train from scratch mAP...原创 2019-03-13 16:41:50 · 978 阅读 · 0 评论 -
SSD模型实现过程
1.调用self._get_anchor_wh()函数得到anchor_wh: (tensor) anchor wh, sized [#fm, #anchors_per_cell, 2].每个特征图上的9种不同anchor boxes的宽、高以下操作对于某个特定尺度的特征图:2.根据特征图尺寸和出入图像尺寸计算放大倍数grid_size3.在特征图的每个像素点上,以特征图像素数为单...原创 2019-03-13 16:42:18 · 1943 阅读 · 6 评论 -
FC中的BN(伪代码)
'''全连接层中的batch normalization'''import torchimport torch.nn as nnimport copyclass Net(nn.Module): def __init__(self,dim,pretrained): super(Net,self).__init__() self.bn=nn.Bat...原创 2019-03-27 23:07:01 · 871 阅读 · 0 评论 -
CNN中的BN(伪代码讲解)
https: // www.cnblogs.com / adong7639 / p / 9145911.html写的很好'''本文讲解的是在CNN中的batch normalization'''import torchimport torch.nn as nnimport copyclass Net(nn.Module): def __init__(self, di...原创 2019-03-27 22:27:42 · 4467 阅读 · 0 评论 -
pytorch 图像预处理之减去均值,除以方差
#coding=gbk'''GPU上面的环境变化太复杂,这里我直接给出在笔记本CPU上面的运行时间结果由于方式3需要将tensor转换到GPU上面,这一过程很消耗时间,大概需要十秒,故而果断抛弃这样的做法img (168, 300, 3)sub div in numpy,time 0.0110sub div in torch.tensor,time 0.0070su...原创 2019-02-25 21:06:46 · 8984 阅读 · 2 评论 -
focal loss和OHEM(on-line hard example mining)如何应用到faster RCNN中
在物体检测问题中,主要分为两类检测器模型:one stage detector(SSD,YOLO系列,retinanet)和two stage detector(faster RCNN系列及其改进模型),然而无论是一个阶段的检测器还是两个阶段的检测器,都使用到了anchor机制,即在特征图上密集地画anchor boxes,根据先验知识设定的IOU阈值将这些anchor划分为正样本和负样本,再对于...原创 2019-02-25 17:47:27 · 5562 阅读 · 24 评论 -
torch.where和numpy.where faster element wise operation build-in implement
import torcha=torch.randn((2,3))print(a)'''tensor([[-0.4695, 0.0949, -0.7063], [-0.2190, 0.7319, -0.6530]])'''b=torch.where(a>0,torch.tensor(10.),a)print(b)'''tensor([[-0.4695, ...原创 2019-01-24 20:29:08 · 489 阅读 · 0 评论 -
torch.ge,torch.gt,torch.le
https://blog.csdn.net/ljs_a/article/details/79848994转载 2019-01-24 23:30:03 · 437 阅读 · 0 评论 -
pytorch cross entropy training trick
我现在使用SGD optimizer训练Faster R-CNN时,初始学习率1e-3则收敛效果很好,如果设置成1e-2则loss会出现NAN的情况。而在使用Adam optimizer时,使用initial learning rate=1e-3和1e-4都会导致loss在epoch=1时出现NAN的情况,故而想到之前的计算cross entropy分类损失所使用的trick,loss函数值...原创 2019-01-25 15:00:42 · 467 阅读 · 0 评论 -
pytorch中加载训练数据集的两种方法
在pytorch中使用torch.utils.data.Dataset创建训练数据集,使用torch.utils.data.DataLoader数据加载器加载出一个batch size的数据。因此为了完成一个epoch中对于整个训练数据集的学习,需要对于data.DataLoader进行访问,无论是通过enumerate还是iter方法,其返回对象都是一个列表,列表长度与所定义的dataset的_...原创 2019-01-22 14:51:12 · 3750 阅读 · 0 评论 -
pytorch查看torch.Tensor和model是否在CUDA上
今天训练faster R-CNN时,发现之前跑的很好的程序(是指在运行程序过程中,显卡利用率能够一直维持在70%以上),今天看的时候,显卡利用率很低,所以在想是不是我的训练数据torch.Tensor或者模型model没有加载到GPU上训练,于是查找如何查看tensor和model所在设备的命令。import torchimport torchvision.models as models...原创 2019-01-22 16:56:22 · 43490 阅读 · 4 评论 -
pytorch实现设置不定长的epoch点集降低学习率
之前一直想过在调参时实现一下,比如训练300个epoch,在100个epoch降低学习率,然后在150个epoch又去降低学习率,现在实现的代码大多数是设定epoch的every数,就是说每隔多少个epoch,就将学习率降低0.1倍,我现在想借助于python中的队列结构实现,可以设定任意个降低学习率的epoch点数,对学习率进行decay操作。from collections import...原创 2019-01-22 21:08:06 · 2208 阅读 · 0 评论 -
list转numpy.ndarray tuple作为函数实参
list列表类型转换为numpy.ndarray,import numpy as npa=[1,2,3]b=np.array(a)print(type(b),b)#<class 'numpy.ndarray'> [1 2 3]在看Faster R-CNN模型代码时,由于很多函数的输入都包含很多变量,有一个技巧就是在传入函数实参时,将所有的实参当在一个tuple内,然后再...原创 2019-01-23 17:30:34 · 834 阅读 · 0 评论 -
torch.max
import torcha=torch.randn(5,3)print(a,torch.max(a,1),torch.max(a,1)[1])'''tensor([[ 1.0588, 0.4321, -1.1318], [-1.5585, -0.5181, -0.6880], [ 2.1610, 1.1872, -0.7473], [-...原创 2019-02-15 20:33:04 · 138 阅读 · 0 评论 -
GPU nvidia-smi
服务器上有多块GPU,每块GPU上可能运行着多个python程序,之前在调试程序时,每次想要kill掉正在运行的程序,我都是 ps -ef | grep xxx.py 这个命令会从当前所有正在运行的python进程中找到名称为xxx.py的进程,给出所有父进程ID和子进程ID,通常做法是先kill掉父进程PID,再一个个地kill掉子进程PID,这样的做法看似有些复杂。‘今天问过一...原创 2019-02-15 22:40:52 · 560 阅读 · 0 评论 -
pytorch CUDA out of memory
之前用FPNSSD训练时遇到CUDA out of memory的报错,通常通过减小batch size,或减小输入图像的空间分辨率来解决,这此次我训练faster R-CNN时,设置了batch size=1 ,保证输入图像的最大空间分辨率不超过1280,但是开始几个epoch训练正常(已经出现过经过变换后允许的最大空间分辨率——1280*1280),但是再训练几个epoch,就会随机不定时地产...原创 2019-02-11 14:05:00 · 1962 阅读 · 0 评论 -
pytorch数据类型
import torch'''pytorch是GPU计算加速库,能够支持将数据部署在GPU上进行计算加速的库pytorch也是python的第三方库,它的特殊之处在于它支持CUDA GPU而对于opencv-python或者numpy这种第三方库则并不支持GPU/CUDA上面的数据运算'''a=torch.randn(2,3)print(a.type())#torch.Flo...原创 2019-03-11 17:36:48 · 396 阅读 · 0 评论 -
linux下kill显卡上的程序
nvidia--sminvidia-smi命令显示出每块显卡上运行程序的主线程PID,首先找到所想要kill掉的程序的主线程(ps -ef | grep train.py),然后kill掉主线程即可,kill掉主线程之后,再ps -ef | grep train.py,可以看到还会有很多子线程残留,以前我都是一个子线程一个子线程地kill掉,现在发现不用,kill掉主线程之后,等待一段时间...原创 2019-03-01 10:07:09 · 2338 阅读 · 0 评论 -
pytorch实现one-hot embedding
import torchdef one_hot_embedding(labels, num_classes): '''Embedding labels to one-hot. Args: labels: (LongTensor) class labels, sized [N,]. num_classes: (int) number of class...原创 2019-01-24 19:54:16 · 3235 阅读 · 0 评论