自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 常量对象,常量引用,指向常量的指针,常量指针以及指向常量的常量指针之间的区别!!!

常量对象(const 对象):在定义对象的基本数据类型前加上 const 关键字就声明了一个const 对象,const 对象与非const 对象的主要区别就在于 只能在const对象上执行不改变其内容的操作!!! 并且const对象一旦创建后其值不可被改变,因此const对象必须初始化!例子如下:const int i; //错误, const对象必须初始化const int i = 512; //正确i = 512; //错误,const对象一旦被创建就不可在被赋值常量引用(

2020-10-22 16:47:03 557

原创 c++函数指针

函数指针(pointer to function):1.指明函数的返回类型2.指明函数的参数列表3.指针还需要给出*根据上述描述我们可能会给出如下的定义式:const vector<int>* *seq_ptr(int);但很不幸,上面的式子定义了一个返回值类型为双重指针的函数。正确的做法为加上一个小括号来改变运算优先级:const vector<int>* (*seq_ptr)(int) 现在seq_ptr就是一个指向任何一个“具有所列返回类型及参数列表”

2020-09-05 14:32:04 242

原创 PyTorch1.6.0使用Tensorboard

需要的环境Tensorflow-gpu == 1.13.1Tensorboard == 1.15.0先安装Tensorflow == 1.13.1, 然后卸载Tensorboard == 1.13.1,在自己安装Tensorboard == 1.15.0sudo pip install -i https://pypi.douban.com/simple tensorflow-gpu==1.13.1sudo pip uninstall tensorboardsudo pip install -i

2020-08-26 16:59:49 894

原创 win10安装使用Cython记录

背景因需要将.pyt文件编译成.pyd文件然后打包发布给用户,所以要用到Cython软件包步骤1. 安装Cythonpip install -i https://pypi.douban.com/simple/ Cython2.编辑测试文件a).新建某一目录,然后编辑一个test.py文件:def hello(): print("Hello world!")b).在与a)的同一目录下,然后编辑一个setup.py文件:在这里插入代码片...

2020-05-19 09:28:40 2089

原创 读论文《SSF-DAN: Separated Semantic Feature based Domain Adaptation Network for Semantic Segmentation》记录

前言:本篇论文是在《No More Discrimination: Cross City Adaptation of Road Scene Segmenters》的基础上发展起来的。semantic-wise传统的class-wise域自适应方法,使用全部的伪标签来作为对抗学习分类的标签,但是由于伪标签不一定全部正确,所以此方法存在一些问题。然后作者就提出了一种新的基于semantic-w...

2020-04-15 13:31:57 783

原创 Python 堆模块(headq)

你好啊

2020-04-13 12:11:03 2193 1

原创 Python 优先队列(priority queue)和堆(heap)

队列和优先队列(Priority Queue)队列是一种可以完成插入和删除的数据结构。普通队列是先进先出(FIFO), 即先插入的先被删除。然而在某些时候我们需要按照任务的优先级顺序来决定出队列的顺序,这个时候就需要用到优先级队列了。优先队列是一种可以完成插入和删除最小元素的数据结构python中有现成的优先队列类可以调用。代码示例from queue import Queue # ...

2020-04-12 22:48:56 13877

原创 读论文《Dilated Residual Networks》记录

摘要:1.由于在图像分类中,空间分辨率不断降低,场景的空间结构消失,空间敏锐度下降限制图像分类的准确性。文章用空洞卷积(空洞残差网络DRNs)提高输出特征图的分辨率来缓解这个问题。2.文章还研究了空洞卷积带来的网格伪像(gridding artifacts)问题,并开发了一种去网格化(degridding)的方法。3.本文提出的这种DRNs网络对目标定位和语义分割都有提升作用。Intro...

2020-04-09 22:11:06 396

原创 Python dict.fromkeys()用法

作用:dict.fromkeys(seq[, value])python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值, 默认的value为None>>> a = {}>>> b = a.fromkeys(['a', 'b', 'c']){'a': None, 'b': N...

2020-04-06 17:59:20 1802

原创 Pytorch中train和eval模式的区别

前言:在使用Pytorhch框架时总会看见在模型训练前会加上model.trian(), 而在模型测试或者验证之前则会加上model.eval(), 那这两者之间有什么区别了??model.eval()我们来看看官方的解释:由于在验证或者测试时,我们不需要模型中的某些层起作用(比如:Dropout层),也不希望某些层的参数被改变(i.e. BatchNorm的参数),这时就需要设置成**mo...

2020-04-06 17:45:25 6015

原创 Python 浅谈Collections模块的Counter容器类

简介Counter类:为hashable对象(set, dict)计数,是字典的子类.作用Counter类的目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value。计数值可以是任意的Interger(包括0和负数)。查看Counter的父类>>> Counter.__bases__(<class 'd...

2020-04-05 15:26:31 153

原创 python all()函数的作用

all()函数作用:all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。注意:元素除了是 0、空、None、False 外都算 True。代码实例:all(iterable)#参数必须为一个可迭代对象>>> all(['a', 'b', 'c', 'd']) # 列表list,元...

2020-04-05 14:52:25 874

原创 PyTorch中的 torchvision.transforms模块

简介:这是PyTorch中的一个图像转换模块,任何图像增强或者归一化操作都需要用到此模块1.torchvision.transforms.ToTensor作用:将PIL读取的图像或者np.array (H * W * C) 格式的数据([0, 255])转换成torch.FloatTensor类型的 (C * H * W) 在([0.0, 1.0])范围内的数据.黄色线前提:1.PI...

2020-04-04 21:02:37 529 1

原创 Pytorch的广播操作(broadcasting semantics)

何为广播操作简而言之,如果PyTorch操作支持广播,则其Tensor参数可以自动扩展为相等大小(无需复制数据)。通常的含义:如果张量遵循一下两个规则,那么该张量就具有可广播性(broadcastable):1.每个张量的维度至少为12.从末尾的维度开始迭代维度尺寸时,维度尺寸必须相等,或者其中之一为1,或者不存在其中之一。代码实例:>>> x=torch.empt...

2020-04-03 18:13:34 1570

原创 Pytorch优化器的权重衰减(weight_decay)

L2正则化:L=Ee+λ∑wi2L=E_e + \lambda\sum w_i^2L=Ee​+λ∑wi2​EeE_eEe​:是训练数据个标签之间的误差wiw_iwi​:表示权重值在反向传播计算梯度时,对每个权重点来说,就是在原本计算的EeE_eEe​梯度上,再加上2∗λ∗wi2*\lambda*w_i2∗λ∗wi​, 2和λ\lambdaλ可一起看做常数项系数.Pytorch里实现的权重...

2020-04-03 17:15:58 16803 7

原创 PyTorch中模型的parameters()方法浅析

首先先定义一个模型:import torch as timport torch.nn as nnclass A(nn.Module): def __init__(self): super().__init__() self.conv1 = nn.Conv2d(2, 2, 3) self.conv2 = nn.Conv2d(2...

2020-04-03 16:28:45 26506 1

原创 python 浅谈filter()函数和map()函数

作用:filter(function, iterable)filter() 函数用于过滤一个可迭代对象,过滤掉不符合条件的元素,返回由符合条件元素组成的filter 类迭代器实例:a = filter(lambda x: x % 2 == 0, range(10))print(a) #<filter object at 0x7f190c527ef0>for i in...

2020-04-03 15:52:38 178

原创 读论文《Maximum Classifier Discrepancy for Unsupervised Domain Adaptation》后的总结

前言:最近写论文中,由于Discussion部分的需要,于是读了这篇文章,并记录一下。摘要:传统的使用对抗的方法来进行特征域自适应的文章存在两个问题:1.域分类器仅尝试区分源域或目标域,因此不考虑类之间的任务特定决策边界。因此,训练有素的生成器(特征提取器)可以在类边界附近生成模糊特征。2.这些使用对抗的特征域自适应方法旨在完全匹配不同域之间的特征分布,但是由于每个域的独有特征,这而很难...

2020-04-01 23:41:56 1092

原创 关于Xception的一点记录

一. 回顾Inception v3传统单个卷积核的任务是同时映射跨通道相关性和空间相关性而Inception module 的思想是:将通道相关性操作和空间相关性操作分开,假设跨通道相关性和空间相关性充分解耦,不要将他们共同映射!如下图一, 典型的Inception模块首先通过一组1x1卷积进行跨通道相关性的操作,然后将输入数据映射到小于原始输入空间的3或4个独立空间中,然后通过常规的3x...

2020-03-29 22:33:01 323

原创 Python消除元素相等的列表

问题:假设我有一个列表如下:要消除其中元素都一样的子列表该咋办?_list = [[1, 2, 3], [2, 1, 3], [3, 2, 1], [3, 4, 5], [4, 3, 5]]问题分析:1.消除相同元素的数据一般用集合set()2.集合set()是一个哈希表,而列表是可变数据类型,所以要转成不可变数据类型: str / tuple3.除此之外还要先排序...

2020-03-29 17:24:03 165

原创 deeplab系列记录

前言:最近的工作用到了deeplabv3+网络,于是把deeplab系列的文章都看一遍.空洞卷积(Atrous Convolution):优点:1.在不增加参数或者计算量(扩大卷积核的大小/进行下采样)的前提下扩大模型的感受野.并且不降低影像的空间分辨率.例如下图,分别使用了s=2 +standard conv和rate = 2的dilation conv有着相同的感受野,所使用的卷积核...

2020-03-28 21:50:14 970

原创 浅谈PyTorch中的自动微分方法

首先来看一个函数:y = x+2, z=12(y12+y22\frac{1}{2}( y_1^2 + y_2^221​(y12​+y22​)我想利用反向传播求一下y和x的导数用pytorch实现一下import torch as tx = t.ones(2, 1, requires_grad=True)y = x + 2z = t.mean(t.pow(y, 2))z.backw...

2020-03-28 17:13:06 1913

原创 Pytorch torch.Tensor.detach()方法的用法及修改指定模块权重的方法

detachdetach的中文意思是分离,官方解释是返回一个新的Tensor,从当前的计算图中分离出来需要注意的是,返回的Tensor和原Tensor共享相同的存储空间,但是返回的 Tensor 永远不会需要梯度import torch as ta = t.ones(10,)b = a.detach()print(b)tensor([1., 1., 1., 1., 1., 1.,...

2020-03-28 11:32:58 14922 4

原创 python的容器定制

python的容器类型有:序列类型(list, tuple, str), 映射类型(dict)都是属于容器类型,里面存放的是各种各样的对象容器类型的协议:1.定制不可变容器类型: 例如tuple和str需要定义__len__()和__getitem__()两个魔法方法2.定制可变容器类型:例如:list. dict, set除了__len__()和__getitem__()两个魔法方法...

2020-03-27 18:09:07 190 1

原创 torch.sum()的用法

torch.sum()对输入的tensor数据的某一维度求和,一共两种用法1.torch.sum(input, dtype=None)2.torch.sum(input, list: dim, bool: keepdim=False, dtype=None) → Tensor input:输入一个tensordim:要求和的维度,可以是一个列表keepdim:求和之后这个dim的元素个...

2020-03-27 17:09:47 133105 5

原创 关于torch.nn.functional.softmax中的维度问题

softmax函数的公式如下:Softmax(xix_ixi​)=exp(xi)∑jexp(xj)\frac{exp(x_i)}{\sum_j exp(x_j)}∑j​exp(xj​)exp(xi​)​在pytorch中导入softmax函数的如下:import torch.nn.functional as FF.softmax()在深度学习中,我们一般要对图像(三维(C, W, H)...

2020-03-27 15:56:36 3890

原创 关于CLAN的一些总结

前言:最近在看域自适应相关的文章,看到了一篇cvpr2019(orcal)的文章,觉得挺有意思的就记录下来.文章题目是:Taking A Closer Look at Domain Shift: Category-level Adversaries for Semantics Consistent Domain Adaptation摘要:传统的大多数域自适应(domain adaptati...

2020-03-27 11:47:27 1891

原创 Pytorch几种常用的学习率调整方式

前言:由于在深度学习中, 优化器的学习率需要不断地调整,今天就来总结一下几种常用的学习率调整方法.一. step采用均匀降低的方式, 比如每次降低为原来的0.1倍.lr = self.lr * (gamma ** (epoch // self.lr_step))#self.lr: 初始学习率#gamma: 每次衰减的倍数#epoch: 当前的轮数#self.lr_step: 学习...

2020-03-20 21:30:02 4754

原创 PyTorch中的优化器的构建: torch.optim.Optimizer

前言:Pytoch中用来优化模型权重的类是torch.optim.Optimizer, 其他各种我们所熟知的优化器都是Optimizer这个基类的子类, 我们今天就来谈谈如何构建一个模型的优化器对象实例.先用一段代码来看看整体的步骤:class trainer: def __init__(self, args): self.model = model #构建模型 if args....

2020-03-20 14:59:37 5566

原创 pyhton中的可迭代对象与迭代器之间的关系, 以及使用__iter__和__next__来构建可迭代对象和迭代器

可迭代对象(iterable):python中的可迭代对象包括list, dict, tuple, str, 用dir()函数查看他们的对象方法都会发现有__iter__()在里面.只要有__iter__()方法的对象都是可迭代对象.用下面的例子来说明:先介绍如何来判断是否为可迭代对象:从collections中引入Iterable类form collections import Iter...

2020-03-18 13:55:35 211

原创 pytorch中利用self.module()方法来初始化模型权重

前言:每次在pytorch中构建完模型之后都要在另外初始化方法, 非常的麻烦, 因此直接利用构建模型类中的初始化方法 __ init __ ()以及继承的方法self.modules()来初始化模型权重.self.modules()首先来讲一下nn.Module类中的一个方法:self.modules(), 他会返回该网络中的所有modules.具体代码示例如下class Networ...

2020-03-18 10:19:49 7533 1

原创 python可变数据类型与不可变数据类型与可hash性

可变数据类型:list, dict, set不可变数据类型:num(int, float, complex, bool), tuple, str对于不可变类型: 变量(引用)指向的地址的内容是不可变的, 改变变量的值只是将变量(引用)指向了新的地址. 对于不可变数据类型, 如果直接赋值, (a=(1,3, 4), b=a),那么b和a也会指向同一个地址对于可变类型, 变量(引用)指向的地址的...

2020-03-17 10:41:56 302

原创 python中借助try...except...来打印变量信息,调试代码!!!

前言:本人由于没有使用IDE,而是直接使用编辑器+终端的方式,所以当程序出bug时最简单的就是使用try…except…的方式来打印变量信息以达到调试代码的目的方案:list = [None]*10count = 0try: for i in range(11) list[count] = i count += 1except Exception as e: print("...

2020-03-15 10:58:52 1152

原创 关于python使用列表append方法和extend方法的一些问题记录

前言:今天在写代码时,运用python列表中的append方法和extend方法时出现了一些小问题,遂记录下来!问题:首先是list.entend()a = [1,2,3]b = [4,5]c = a.extend(b) print(c) # c居然返回None 在就是list.append()a = [1,2,3]b = 4c = a.append(b)print(c)...

2020-03-14 14:54:44 436

原创 Prim算法和Dijkstra算法的区别

异:Prim:更关注与当前节点有最小权值的节点,即 v.key = w(u, v) 最小!Dijkstra:更关注未知节点中与起点有最小路径和的那个点,即v.key = w(u, v) + u.key 最小,u.key代表了到起点的距离!同:二者都是利用 贪心算法 的思想...

2020-03-12 10:30:08 409

原创 np.all 和 np.any的用法解析

前言:今天在写代码时遇到两个问题,即:需要求解一个矩阵前N行所有元素为零,而前N+1行存在元素不为零。查了查发现用np.all() 和 np.any()两个函数可以解决np.all(np.array) 对矩阵所有元素做与操作,所有为True则返回Truenp.any(np.array) 对矩阵所有元素做或运算,存在True则返回True例如:我要求某矩阵A前n行是否全为零,则可...

2020-03-12 10:27:32 26840

原创 Tensorflow的二分类中标签像素值的设置问题

今天在使用Tensorflow做二分类分割时出现点小问题, 具体就是标签被被解码之后像素值全部都为零,仔细看看发现时是标签像素设置的问题:标签中像素值是0和255, 而tf.one_hot(indices, depth)在解码时则会以0, 1,2… 的方式编码, 最大的元素值不能超过(depth - 1),depth表示像素类别数,所以应该将255像素值替换为1就行了!...

2020-03-10 13:48:44 488

原创 Python语言利用递归实现二叉排序树的查找, 插入以及删除操作

这几天一直在学数据结构,看到了二叉排序树这,就在网上找了找了相关代码,代码大部分都没有递归实现,非常复杂, 自己就索性写了一下!

2020-03-06 17:49:15 1151

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除