自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 坑 之 Ubuntu Conda虚拟环境使用faiss-gpu报错分析及解决办法

faiss-gpu的使用于cuda版本是紧密相关的,cuda又是与nvidia driver紧密相关的,nvidia driver又是与显卡紧密相关的

2023-05-16 22:44:56 5000 2

原创 OpenMMLab之Registry机制

OpenMMLab之Registry机制

2022-09-29 20:47:39 4714

原创 OpenMMLap之Hook机制详解

openmmlab中的hook分析

2022-09-29 19:58:55 2951

原创 python修饰函数用法,结合mmcv中的Registry类说明

修饰函数

2022-09-27 22:03:04 406

原创 记录之mmdet新增数据集

mmdet 中的 Registry

2022-09-27 21:19:12 668

原创 已解决 Miniconda 出现from conda.cli import mainModuleNotFoundError: No module named ‘conda‘

miniconda出现出现from conda.cli import mainModuleNotFoundError: No module named 'conda',解决方法

2022-09-26 23:11:22 1257 3

原创 pip install “git+https://xxx“在网络不可用情况下如何使用

pip install git+ 在网络不可用下安装外部依赖包

2022-09-26 22:37:55 6572 4

原创 LeTax记录\documentclass{},authoryear属性使用

关于elsevier期刊中引用格式的一些记录

2022-07-26 20:29:15 607

原创 记录之目标检测NMS(非极大值抑制)

NMS

2022-07-23 17:26:04 962

原创 记录AP和mAP计算实例

目标检测AP和mAP

2022-07-19 11:47:21 488

原创 .h5文件忘记数据库名字,使用h5py打印

h5py读取文件因忘记数据库名称而失败的解决办法

2022-06-19 15:01:47 328

原创 tensorflow 和 pytorch 中调整 feature map 尺寸实现上采样

2022-04-19 10:49:56 1629

原创 图像重建生成领域指标之Sharpness Difference(SD)计算方法

该指标在2016年的leCunn的一篇文章中有详细的解释,https://arxiv.org/abs/1511.05440具体的实现方式:import numpy as npimport osimport cv2import tensorflow as tffrom tensorflow.keras import layersimport tensorflow.compat.v1 as tf1tf1.disable_v2_behavior()def log10(t): .

2022-04-07 22:19:10 1171 1

原创 Tensorflow1.x 和 2.x如何读取ckpt中保存了那些参数

对于1.x的tf版本,网上已经有很多介绍了,这里给出代码:import tensorflow as tf import osfrom tensorflow.python import pywrap_tensorflow model_dir='./model'#设置模型所在文件夹checkpoint_path = os.path.join(model_dir, "fineturing_model.ckpt")#定位ckpt文件# 从checkpoint中读出数据reader = py

2022-03-09 16:22:27 771 2

原创 tensorflow实现梯度累计,再回传

由于主机显卡只有12g的显存,且只装了一块30系列的卡,因此在跑代码时难免会遇到batch_size不能太大的尴尬,因此可以通过,梯度累计的方式进行优化,来变相扩大batch_size。上代码,解释:def train(): ... ... trainable_vars = tf.trainable_variables() # set trainable variables vit_trainable_vars = [var for var

2022-01-16 22:18:39 3496

原创 记录之tensorflow和pytorch中的取范数归一化操作

最近在将tensorflow翻译成torch的时候遇到了一个问题,就是有一个函数 tf.nn.l2_normalize没有找到相应的替换函数,无奈自己手写了一个这样的操作,最近在阅读令一个torch源码时发现了,就及时记录tf:import tensorflow as tftf.nn.l2_normalize(x, dim, epsilon=1e-12, name=None)参数:x:输入;dim:为l2范化的维数epsilon:范化的最小值边界torch:import.

2022-01-16 21:24:09 989

原创 AssertionError: Invalid device id 和RuntimeError: CUDA error: invalid device ordinal

我在使用torch多卡并行时出现了这个两个问题。##问题一:AssertionError: Invalid device id,即无效的设备id出现的原因:结合代码解释:import ...os.environ["CUDA_VISIBLE_DEVICES"] = "2,3"model = model(...)torch.cuda.set_device(2)model = torch.nn.DataParrel(model, device_ids=[2,3])错误原因:o

2022-01-14 17:27:40 12045

原创 pytorch选出数据中的前k个最大(最小)值及其索引

选择最大值及其索引,大家都知道使用max(),argmax()函数。那么如何返回前k个最大值呢,这在我们计算topK准确率的时候很有必要:在torch中,我们可以使用sort函数来实现:a, idx1 = torch.sort(data, descending=True)idx = idx1[:k]Return:a:排好序的数据idx1:对应排序数据的索引因此只需设置k的大小,就可以截取到前k个最大值的索引。这里若数据是tensor则用torch,若是list或ndarray,可

2021-12-13 16:50:30 10488 5

原创 记录之使用3080ti运行tensorflow-gpu=1.x版本的源码

环境:Anaconda3,ubuntu18.04,RTX3080ti,python3.7RTX3080ti显卡是当前市面上比较新的,算力比较强的显卡,且这类显卡采用了安培架构仅支持cuda11.x及以上版本。关于tf-gpu,cuda,cudnn间的对应关系,我们可以查看:从源代码构建 | TensorFlow关于驱动和cuda,cudnn的对应关系,我们可以查看:Release Notes :: CUDA Toolkit Documentation##问题1:我的30系列卡的驱动为450.x.x..

2021-11-29 22:20:15 3045 4

原创 记录之关于tensoflow中使用Adam优化算法导致模型保存时参数的变化的记录

1.tensorflow ‘/conv/biases/Adam_1’not in ckpt file这类问题是加载预训练模型时常常遇到的,原因就是在使用rmsprop或者adam优化器的时候,他们会在自己内部建立一个adam或者rmsprop变量,然而我们在使用SGD优化器的时候不会新建变量,所以不会出现在这种问题。 问题原因:这类变量在我们的训练初始化图时是存在的,但是我们的预训练模型由于某种保存机制,导致预训练模型中没有这类变量的值(实际上这类变量是没有什么意义的),...

2021-11-25 11:18:48 1438

原创 einops包中的rearrange,reduce, repeat及einops.layers.torch中的Rearrange,Reduce。对高维数据的处理方式

from einops import rearrange, reduce, repeatfrom einops.layers.torch import Rearrange, Reduce一.rearrange和Rearrange,作用:从函数名称也可以看出是对张量尺度进行重排,区别:1.einops.layers.torch中的Rearrange,用于搭建网络结构时对张量进行“隐式”的处理例如:class PatchEmbedding(nn.Module): def __in.

2021-11-21 17:06:51 7599

原创 关于pytorch中super的一点思考,结合代码

class ResidualAdd(nn.Module): def __init__(self, fn): super().__init__()#inherit fa class's init method self.fn = fn def forward(self, x, **kwargs): res = x x = self.fn(x, **kwargs) x += res return .

2021-11-21 11:44:15 1431

原创 实验问题集中记录

1.torch.repeat和tf.tile两个函数都是将tensor的某一维度进行制定次数的重复:a_ = torch.repeat(a, [x,y,x]) #a是三维tensor,将其1,2,3维分别repeat x, y, z次b_ = tf.tile(b, [c,d,e,f]) #b是三维tensor,将其1,2,3,4维分别repeat a,b,c,d次2.torch.diagonal和tf.diag_part提取张量的主对角线元素#torchx = torch.randn

2021-11-07 21:22:32 85

原创 解决ImportError: cannot import name ‘imread‘ from ‘scipy.misc‘

官方解释: scipy.misc.imread ( scipy.misc.imwrite) is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.所以版本高于1.2.0的scipy会报函数找不到的错误,解决方案有两种。1.官方建议:Use ``imageio.imwrite`` instead.Use ``imageio.imread`` instead.在代码里 import imageio,然后import image.

2021-10-27 21:41:29 4396

原创 cuda,nvidia-driver ,cudnn下载地址及版本对应

1.cuda:CUDA Toolkit 11.5 Downloads | NVIDIA Developer右下角可下载先前版本2.nvidia-driver:https://www.nvidia.cn/Download/index.aspx?lang=cn选择对应的显卡,及合适的驱动版本3.cudnn:https://developer.nvidia.com/rdp/cudnn-download4.查看三者版本对应关系:https://docs.nvidia.com/cu..

2021-10-27 20:43:22 4682

原创 pytorch 1.7.x训练保存的模型在1.4低版本无法加载

pytorch1.6.x及更高版本,在保存模型和低版本有区别,因此导致高版本的保存模型在低版本下加载失败的问题:我们只需在较高版本torch下保存时,设置_use_new_zipfile_serialization=Falsedata = ... #type:OrderedDicttorch.save(data, 'new_model.pth', _use_new_zipfile_serialization=False)关于data的获取不同方式保存的模型处理方式不太一致,要搞清自己的模型是

2021-10-17 17:04:10 1798

原创 pytorch 之 保存不同形式的预训练模型

注意,后缀.pt和.pth似乎没什么区别保存时即可以保存整个模型也可以只保存参数,还可以构建新字典重新保存,这也就对应了在读取时需要做不同的处理,我们在加载的时候load_state_dict函数的参数就是OrderedDict类型的参数,这里给出了四种不同保存方式及其读取获得OrderedDict的方式。1.保存# coding=gbkimport torch import torch.nn as nnclass MLP_(nn.Module): def __init__(sel

2021-10-17 16:56:35 650

原创 opencv+pythons相机标定源码解析

相机标定原理,这里不再赘述,一般使用张友正相机标定法。这里只介绍了标定相机内参的方法,即3x3的matrix。import cv2import numpy as npimport glob# 设置寻找亚像素角点的参数,采用的停止准则是最大循环次数30和最大误差容限0.001criteria = (cv2.TERM_CRITERIA_MAX_ITER | cv2.TERM_CRITERIA_EPS, 30, 0.001)# 获取标定板角点的位置objp = np.zeros((5 * 7

2021-09-22 22:19:30 580

原创 matplotlib.pyplot分区绘图

这里没有过多强调细节,这里只给出使用方法方法一:使用plt.subplot函数plt.figureplt.subplot(1,2,1) #表示1行2列的第一个区域plt.plot(..)plt.legend(..)plt.xlabel(..)plt.ylabel(..)plt.subplot(1,2,2) #表示1行2列的第二个区域plt.plot(..)plt.legend(..)plt.xlabel(..)plt.ylabel(..)plt.show()方法二:使

2021-09-13 17:45:09 1983

原创 ValueError: invalid literal for int() with base 10 与数据类型有关的转换报错

1.ValueError: invalid literal for int() with base 10a是一个字符串,例如‘108.8’报错原因:直接对a进行int(a)操作,语法不允许解决办法:int(float(a)) 或 round(float(a)),即先将字符串其转换为浮点型数据,再进行取整2.TypeError: Cannot cast array data from dtype(‘float64‘) to dtype(‘<U32‘)....报错原因:‘U32’和’S32’都.

2021-09-12 21:10:42 2291

原创 OpenCV报错Expected Ptr<cv::UMat> for argument ‘%s‘

在使用opencv处理图像时,使用cv2.imwrite()保存图像时总是报错:Expected Ptr<cv::UMat> for argument '%s'查阅资料发现,在cv::UMat在传参时,类型须为np.float32,传入其他类型(例,np.int32)会报错解决办法:img_ = np.float32(img)......cv2.imwrite('a.jpg', img_)即,将其他类型的的数据通过函数转换为np.float32...

2021-09-03 22:26:02 4106 1

原创 ubuntu切换python,以及切换python后相关包的管理

事情是这样的,当前机器上有两个python版本,即python2.7和python3.8,他们分别与/usr/bin/python和/usr/bin/python3建立软链接.且python3.8的pip3.8和/usr/bin/pip及/usr/bin/pip都建立了软链接.我的代码运行需要使用python3.7,所以必须安装python3.7.装好python3.7后,还需要给pip3.7建立适当的软链接,否则使用pip或pip3下载的包doughnut默认进python3.8的包路径下...

2021-08-17 15:35:09 626

原创 conda 分享自己的实验环境

我们在实验时肯定遇到过因为自己的环境与开源项目不匹配导致的各种各样的报错,另我们痛心疾首,如果一个同学想要复现你的代码,如果能建立一个与你一致的实验环境,就省去不少麻烦,所以为了方便自己和他人<_<,我们来看一下conda中如何分享自己的实验环境。假设当前有一个实验环境: env11.激活环境:source activate env12.生成环境的描述文件 environment.yml(在当前目录下)conda env export > environment..

2021-08-17 09:47:36 419

原创 python 之 click 包,设置命令行参数

click包一般用于带参数的python脚本运行,是通过装饰器来把一个函数方法装饰成命令行接口的,常见的装饰器有:1. @click.command():将其下面的函数方法装饰为命令行接口选项,(我们称为一个command实例或子命令),实现在命令行运行时可选2. @click.option(’--xxx’, '-x', default=1,prompt=‘Your name’,type=int,nargs=1,help=‘Number of greetings) 参数释义:--xxx:即下列..

2021-08-10 20:09:31 3838

原创 报错 之 from typing import OrderedDict ImportError: cannot import name ‘OrderedDict‘ from ‘typing‘

from typing import OrderedDict ImportError: cannot import name 'OrderedDict' from 'typing' (E:\Python\lib\typing.py)。这样一个问题在网上没有搜到想要的答案,因此仔细看了报错的源码,发现在"E:\Python\lib\site-packages\git\config.py", 的48 行 from typing import OrderedDict 报错,我们看报错的地方,会发...

2021-08-07 19:53:09 24373 8

原创 Numpy中求向量和矩阵的范数

import numpy as np函数: np.linalg.norm(x, ord=None, axis=None, keepdims=False)参数释义:x:向量或矩阵 ord:范数类型,默认二范数,ord1=1,求一范数,即元素绝对值和,ord=2,求二范数,ord=np.inf,求无穷范数,即max(|x_i|) axis:维度处理,axis=1表示按行向量处理,求多个行向量的范数;axis=0表示按列向量处理,求多...

2021-08-05 22:56:47 832

原创 记录 之 TypeError: ‘int‘ object is not subscriptable

翻译报错:int型对象是不可以下标访问的,即你错误的给int数据添加了下标显而易见的例子:a = 35b = a[0]很明显,a是一个int型变量,但是错误的添加了下标调用

2021-08-05 22:30:47 1372

原创 sift+图像匹配 算法

sift算法的原理我们不在这里做过多赘述,有想了解的可以去看我的另一篇博客,这里我们直接分析源码,在源码部分会做出注释。1.sift + BFMatxh匹配算法def sift_image_match(i,img1, img2, img1_, img2_): # sift sift = cv2.xfeatures2d.SIFT_create() # 创建一个sift对象 keypoints_1, descriptors_1 = sift.detectAndCompute(.

2021-08-04 22:21:25 1084

原创 skimage函数记录之measure.label和measure.regionprops

这两个函数可以用来处理图(一般是二值图)中出现的连通区域,我们来分别分析。一.skimage.measure.label(input,background= None,return_num= False,connectivity= None)功能:标记图中的连通区域参数解释:input:输入二值图 background:指定北京元素像素值,默认为0 return_num:bool变量,True:返回(label...

2021-07-31 22:52:43 5281 1

原创 记录 之 不同的Normalization方式

Normalization是加速神经网络训练的一种重要方法,随着深度学习的发展以及各种任务的出现,催生出了一系列的Normalization方式,现在主流的正则化方式有Batch Normalization,Group Normalization,Instance Normalization,Layer Normlization,Positional Normalization五种。批规范化 (Batch Normalization) 方法用于计算机视觉任务的深度神经网络。如上图...

2021-07-12 00:15:53 255 3

空空如也

空空如也

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

TA关注的人

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