自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2023年CCF会议最新截稿时间(偏计算机视觉CV和机器学习ML)

CCF会议时间(实时更新)A类会议会议简称会议全称截稿时间会议时间官方网址CVPR2021IEEE Conference on Computer Vision and Pattern RecognitionENDENDhttp://cvpr2021.thecvf.com/IJCAI2021International Joint Conference on Artificial IntelligenceEND2021.08.21https://ijcai-2

2021-07-03 10:08:25 99771 26

原创 可视化某个卷积层的特征图(pytorch)

在这里,需要对输入张量进行前向传播的操作并收集要可视化的卷积层的输出。

2023-04-11 15:16:44 603 1

原创 LeetCode 54. 螺旋矩阵

看到一个有意思的做法,记录一下:class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: res = [] while matrix: res.extend(matrix.pop(0)) # res += matrix.pop(0) 将当前矩阵的最上层进行存储在结果中,而且将原矩阵的最上层元素进行剥离。 matri.

2022-05-02 13:19:38 373

原创 ResNet与Densenet之间的关系以及区别

一、resnet和densenet的之间的关系以及区别,如参数量和训练速度。简单介绍下resnet以及densenetresnet的最大的贡献是缓解深层的神经网络训练中的梯度消失问题,主要是利用shortcut的技术可以加深网络的深度而没有退化。反向传播时,梯度可能会在距离输入近的地方中产生消失的现象,既然离输入近的神经网络层较难训练,则可以将它短接到更加靠近输出的地方。因为直接映射是难以学习的,而ReseNet学习的是残差,这是更容易学习的。shortcut的设计是将模块的输入和输出连接在一起,然

2022-04-30 20:36:55 5535

原创 pip指令相关操作

查看环境依赖的具体版本pip list将环境依赖导出至txt文件pip freeze > requirements.txt安装某个依赖包pip install xxx=x.x.x安装txt里面所有的依赖pip install -r requirements.txt

2022-01-24 19:16:17 377

原创 python随机生成0-n的不重复列表

直接附代码参考:# 下面生成的是0到(n-1)的随机列表,根据自己的需求改即可。### 方法一n = 10shuffle = random.sample(list(range(n)), n)print(shuffle) # [5, 4, 7, 9, 2, 3, 0, 8, 1, 6]### 方法二list = list(range(10))print(list) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]random.shuffle(list)print(l

2022-01-23 18:05:38 1814

原创 python各种结构的插入与弹出

python各种结构的插入与弹出1、list列表-栈插入用append()弹出用pop()2、set集合插入用add()弹出用pop()3、队列(1)from collections import deque插入用append(),appendleft()弹出用popleft(),pop()(2)from queue import Queue插入用put()弹出用get()...

2022-01-22 19:56:48 954

原创 multiprocessing.pool.RemoteTraceback:

发生multiprocessing.pool.RemoteTraceback:原因:可能只是路径错了,可以检查一下。

2022-01-13 14:56:50 2288

原创 常用Linux指令(实时更新)

cat和wc命令统计txt等文件行数cat test.txt | wc -l

2022-01-12 21:08:20 318

原创 pytorch常用的乘法运算以及相关的运算符(@、*)

这里总结一下pytorch常用的乘法运算以及相关的运算符(@、*)。总结放前面:torch.mm:用于两个矩阵(不包括向量)的乘法。如维度为(l,m)和(m,n)torch.bmm:用于带batch的三维向量的乘法。如维度为(b,l,m)和(b,m,n)torch.mul:用于两个同维度矩阵的逐像素点相乘(点乘)。如维度为(l,m)和(l,m)torch.mv:用于矩阵和向量之间的乘法(矩阵在前,向量在后)。如维度为(l,m)和(m),结果的维度为(l)。torch.matmul:用于两个张量(

2022-01-05 17:23:29 6973 7

原创 RuntimeError: Boolean value of Tensor with more than one value is ambiguous

RuntimeError: Boolean value of Tensor with more than one value is ambiguous其中文意思大致是该张量含有多个(1个以上不含1个)boolean值,是不明确的,即无法比较。这里先举一个报错的例子:features = torch.zeros(8, 32)if features[1] == torch.zeros(32): # if 语句里面的条件无法判断 print('true')看一下if条件的实际结果是print(f

2021-12-31 14:39:00 85848 1

原创 记录mmdetectionv1与mmdetectionv2的不同

记录mmdetectionv11.0.rc0+3c2e4df与mmdetectionv22.11.0的不同之处。这两个版本的不同还有另外一个影响因素比较大的就是mmcv版本差异也很大。如:v1版本对应的是mmcv0.2.14,v2版本对应的mmcv1.3.3。1、配置文件的不同rpn_head的不同 rpn_head=dict( type='RPNHead', in_channels=256, feat_channels=256,

2021-12-30 14:29:40 2236

原创 RuntimeError: expected scalar type Long but found Float

ret = torch._C._nn.nll_loss(input, target, weight, _Reduction.get_enum(reduction), ignore_index) RuntimeError: expected scalar type Long but found Float将label转化为torch.LongTensor即可。label = label.type(torch.LongTensor)

2021-12-24 15:43:12 1566

原创 mmdetection bug集锦

1、register_module() missing 1 required positional argument: 'cls'原因:mmdetectionv1和mmdetectionv2版本在注册backbone等的时候有差别的地方如括号。v1是@BACKBONES.register_module,而v2是@BACKBONES.register_module()

2021-12-20 17:51:38 633

原创 np.where用法以及常见的用法示例

np.where常用的用法示例,从一维数组以及二维数组进行举例:一、一维数组的np.where用法import numpy as nparr = np.arange(6) print(arr) # [0 1 2 3 4 5]print(np.where(arr > 3)) # (array([4, 5], dtype=int64),) 代表大于3数值的posprint(np.where(arr > 3, 1, -1)) # [-1 -1 -1 -1 1 1]arr = n

2021-12-20 15:55:44 1134

原创 Linux使用vim编辑文本

1、新建文件touch new.txt2、使用vi文书编辑器vi new.txt3、相关操作指令点击i键,切换到输入模式(即编辑模式)。接着,对文本进行相关编辑操作。...点击Esc键,切换到一般模式。最后,输入以下指令,保存并离开。:wq:w将编辑的数据写入硬盘档案中(常用):w!若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!:q离开 vi (常用)附:主要有以下三个模式:命令模式:用

2021-12-10 16:18:27 5779

原创 解决mmdetection训练过程loss为nan的问题

我之前遇到两次loss为nan,一次是由于数据标注出现问题,换不同的模型参数均出现此问题,因此需要仔细检查数据格式;另外一次是换了个neck的结构,loss变为nan,后面通过将学习率调为原来的1/10(根据实际情况调整),就没有出现了。下面为官方文档给出的解决方案,应该可以解决大部分问题。检查数据的标注是否正常, 长或宽为 0 的框可能会导致回归 loss 变为 nan,一些小尺寸(宽度或高度小于 1)的框在数据增强(例如,instaboost)后也会导致此问题。 因此,可以检查标注并过滤掉那些特别

2021-12-08 19:04:25 5415 3

原创 torch.topk与torch.sort用法

torch.topk用法torch.topk(input, k, dim=None, largest=True, sorted=True, out=None) -> (Tensor, LongTensor)沿给定dim维度返回输入张量input中 k 个最大值。 如果不指定dim,则默认为input的最后一维。 如果为largest为 False ,则返回最小的 k 个值。返回一个元组 (values,indices),其中indices是原始输入张量input中测元素下标。 如果设定布尔值s

2021-12-07 16:03:22 1433

原创 内置函数sort与sorted的区别

list.sort():改变list内部的顺序sorted(list):不改变list内部的顺序>>> a = [2,1,4]>>> sorted(a)[1, 2, 4]>>> a[2, 1, 4]>>> a.sort()>>> a[1, 2, 4]

2021-12-06 09:04:56 390

原创 python中的链表理解

链表概念:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。相关代码# 首先定义结点类,链表结点包括值域 val,和 next 指针class ListNode: def __init__(self, x): self.val = x self.next = Nonedef main(): """ 利用数组初始化一个链表 """ nums = [1, 4, 2, 7..

2021-11-25 20:12:04 3902

原创 python读写json的简单示例

读写json的简单示例这里以将字典写入json文件为例:import jsonmy_dict = {} # 换成自己的dictjson_str = json.dumps(my_dict, indent=4)with open('./my_dict.json', 'w') as json_file: json_file.write(json_str) # 写入with open('./my_dict.json', 'r', encoding='utf-8') as f: my

2021-11-25 17:01:29 525

原创 python中的队列理解【collection中deque源码解析】

队列概念:一种 先进先出的数据结构,元素从后端入队,然后从前端出队。因此,标准的队列基本操作有 push to back(从右边入队)、peek/pop from front(从左边出队)、size 和 is empty 这些操作,遵循了上述概念的原则。而python中collections自带的deque,是一个双端队列。即两边均可操作。理解时,可以按数组的顺序来理解,即0为前端(首),-1为后端(尾)。附下源码:class deque(object): """ deque([i

2021-11-21 19:32:02 1326

原创 python的break与continue的理解

break可以跳出当前while的循环,而不是全部while。

2021-11-20 16:13:44 498

原创 python利用字典统计词频的两种方式

python利用字典统计词频的两种方式1、自带collections库>>> import collections>>> s = 'collection'>>> collections.Counter(s)Counter({'c': 2, 'o': 2, 'l': 2, 'e': 1, 't': 1, 'i': 1, 'n': 1})>>> dict(collections.Counter(s)){'c': 2, 'o':

2021-11-20 13:30:35 3972

原创 python字符串的基本操作

字符串相关基础操作1、切片>>> str = '0123456789'>>> str[0:3] # 从0开始计数,左闭右开'012'>>> str[:] # 没有具体数值:默认从0开始,默认到终点'0123456789'>>> str[::-1] # 反转'9876543210' >>> str[4::] # str[4:]'456789'>>> str[::

2021-11-17 12:12:08 730

原创 利用python绘制混淆矩阵

利用python绘制混淆矩阵,直接附代码。from sklearn.metrics import confusion_matriximport pandas as pdimport matplotlib.pyplot as plty_pred = []y_true = []# 对上面进行赋值C=confusion_matrix(y_true, y_pred, labels=['0','1','2','3','4'])plt.matshow(C, cmap=plt.cm.Reds) #

2021-11-13 20:38:19 54901 35

原创 RuntimeError: CUDA error: device-side assert triggered

这个问题往往是加载图像分类的标签有误。我的是标签差了1,因为往往从0开始,有时不需要减1忘记修改了。

2021-11-05 15:36:46 355

原创 RuntimeError: ./xxx.pth is a zip archive (did you mean to use torch.jit.load()?)

简单来说,pytorch版本不对应,用新版本pytorch保存的模型,用旧版本的pytorch去加载。

2021-11-03 22:46:55 4774

原创 collections.OrderedDict object has no attribute eval

pytorch==1.6.0(或更高的)的框架下保存模型时,不建议使用torch.save(model.state_dict(),model_path) # 该语句只保存了模型的权重参数未保存整个模型model.eval()会报错collections.OrderedDict' object has no attribute 'eval'正确语句:torch.save(model,'save_path') #保存时torch.load('save_path/model') #加载时因此

2021-10-29 13:07:54 1722

原创 移除预训练网络的全连接层

有时,我们需要利用预训练网络权重提取全连接前的特征。需要将全连接去除掉,然后后面根据自己的任务进行修改。self.feature_extraction = models.resnet34(pretrained=True) self.feature_extraction.fc = nn.Sequential() # remove fc或者,在设计网络层面,将对应的fc去除掉,然后按对应键对进行加载即可。...

2021-10-29 11:49:36 1185

原创 手动加载特定的预训练模型权重(或解决size mismatch for fc.bias的问题)

有时无法直接利用官方的预训练模型,需要自己手动将指定模型进行预训练。主要有以下语句作为参考:model = models.resnet34(pretrained=False)state_dict = torch.load('./pretrain/resnet34-333f7ec4.pth')pretrained_dict = {k: v for k, v in state_dict.items() if k in model.state_dict()}model.load_state_dict(pr

2021-10-29 10:10:07 3087

原创 命令行中利用python的pdb库调试

在没有利用pycharm等软件时,利用命令行编程调试时就可以使用pdb库。主要有两种方式进入调试方式。1、直接将断点在程序指定行设置好这种方式需要修改原先的py文件。然后运行py文件,会自动运行跳转指定的地方开始调试。import pdbpdb.set_trace() # 需要断点调试的地方2、命令行直接进行调试状态(推荐)这种方式不需要修改py文件,直接进行调试状态,默认从头开始。然后利用之后的一些命令进行调试即可。运行以下指令即可。python -m pdb main.py3、相关

2021-10-28 17:00:34 165

原创 conda虚拟环境的相关操作(快速安装pytorch虚拟环境)

1、创建虚拟环境conda create -n your_env_name python=3.8 其中,your_env_name:虚拟环境的名字,是自定义的。2、激活虚拟环境conda activate your_env_name 或Linux以及windows系统下Linux: source activate your_env_nameWindows: activate your_env_name3、结束虚拟环境Linux: source deactivateWindows

2021-10-18 17:26:31 325

原创 TypeError: an integer is required (got type is tuple)

TypeError: an integer is required (got type is tuple ),这个错误。从字面意思理解,需要获取一个整型数据,而原代码是元组。需要做的就是,定位到错误的具体那行,将元组改为整型就行。我这边的是img_tr = [transforms.RandomResizedCrop((int(args.image_size), int(args.image_size)), (args.min_scale, args.max_scale))]将 (int(args.i

2021-10-18 15:46:04 7744

原创 ipython在命令行的使用

ipython在命令行的使用,相较于直接输入python并使用更加方便。例如有时会自动跳转到合适的位置。输入以下指令并回车:ipython操作的示例:Python 3.7.3 (default, Mar 27 2019, 22:11:17)Type 'copyright', 'credits' or 'license' for more informationIPython 7.4.0 -- An enhanced Interactive Python. Type '?' for help.

2021-10-16 16:47:57 677

原创 Linux利用命令从网页下载文件(wget)

利用wget命令即可从网页下载,下面的例子是将网页上的该文件下载到当前路径下wget https://download.pytorch.org/models/resnet18-5c106cde.pth对下载的文件进行重命名,例如命名为resnet18.pthwget -O resnet18.pth https://download.pytorch.org/models/resnet18-5c106cde.pth...

2021-10-16 15:48:36 11287

原创 中英文颜色RGB数值对照表(python cv2)

图像处理经常需要涉及画不同颜色的框、线;需要理解对应的颜色名字(包括中英文的)。注意:python的cv2读取图像是BGR格式,即与下面表格最后一列的数值相反,如LightPink浅粉红色为(193,182,255);blue纯蓝色为(255,0,0)。需要看具体颜色的样式可以打开链接查看。英文颜色中文颜色HEX格式RGB格式LightPink浅粉红#FFB6C1255,182,193Pink粉红#FFC0CB255,192,203Crimson猩红#

2021-09-25 15:39:40 8958

原创 python读取加载并保存pkl文件

示例:import _pickle as cPicklef = open('./valid.pkl', 'rb+')info = cPickle.load(f)print(info)附上open的相关参数:模式描述t文本模式 (默认)。x写模式,新建一个文件,如果该文件已存在则会报错。b二进制模式。+打开一个文件进行更新(可读可写)。U通用换行模式(不推荐)。r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

2021-09-25 14:10:46 6731

原创 python的二进制与位运算

了解python的二进制与位运算,主要由以下几个方面展开:一、bin()函数将十进制转为二进制,输出的是字符串格式。>>> bin(11)'0b1011'其他八进制oct()、十六进制hex()。二、format以上的内置函数输出时前两位的字符代表进制。如果不需要输出前两位的,可以用以下的方式。>>> '{:b}'.format(11)'1011'>>> type('{:b}'.format(11))<class 'str'

2021-09-19 15:15:16 6107

原创 Linux复制文件操作(cp,scp命令)

cp指令将文件夹1里的所有东西拷贝在文件夹2下面cp -r 需要拷贝的文件夹路径dir1 拷贝的目的地dir2效果:dir2路径下有dir1对应的文件夹-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。-f:覆盖已经存在的目标文件而不给出提示。-i:与 -f 选项相反,在覆盖目标文件

2021-09-18 17:43:39 1121

空空如也

空空如也

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

TA关注的人

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