自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

非晚非晚的博客

一往无前,爱我所爱,生命不息,折腾不止!

  • 博客(219)
  • 资源 (1)
  • 收藏
  • 关注

原创 机器学习中常见的评价指标总结

1. 评价指标的种类2. 分类任务的评价指标2.1 分类任务的一些概念(1) 交并率(IoU, Intersection over Union)(2)TP、FP、FN、TN与混淆矩阵2.2 准确率(Accuracy)2.3 精确率与召回率(Precision , Recall)2.4 F1分数2.5 G分数2.6 AP和mAP2.7 ROC与AUC(1)ROC(2)AUC3. 回归任务的评价指标3.1 MSE3.2 MAE3.3 RMSE

2022-05-09 19:51:02 10697

原创 numpy数组中一些常见的操作以及用法举例(实时更新)

这篇文章是为了解读一些常用的numpy数组操作,同时也是为了加深自己对numpy的理解。如果后续碰到比较实用的操作,也会同步至这篇文章。1. 数组与标量的计算2. 两个数组之间的数学计算3. 数组一元函数的数学操作4. 数组二元函数的数学操作5. 数组的常用属性6. 数组的常用方法7. 随机操作8. 拼接数组9. 切分数组10. 插入和删除11. 数组扩展...............

2022-01-03 14:48:08 904

原创 【深度学习基础】聊一聊从感知机到神经网络

1. 从机器学习到深度学习1.1 简要了解机器学习到深度学习1.2 深度学习的发展浪潮2. 感知机3. 前馈神经网络4. 反向传播(Backpropagation)(1)step1:赋初始值(2)step2:前向传播(3)step3:反向传播5. 隐藏层 我们知道,Machine Learning分为两大派别:频率派和贝叶斯派;前者逐渐发展为统计学习,后者逐渐发展为概率图模型(PGM,Probability graph model)。

2021-11-28 16:33:35 1927

原创 【python基础】类的定义与使用

1. 类的定义和使用2. 对象的三大特性2.1 封装(1)通过对象调用被封装的内容(2)通过self间接访问被封装的内容2.2 继承2.3 多态3. 属性(变量)绑定3.1 类属性绑定3.2 实例属性绑定4. 属性引用4.1 类属性引用4.2 实例属性引用4.3 可变类属性引用4.4 一个例子说明类属性、实例属性与普通变量5. 方法5.1 实例方法、类方法和静态方法5.2 实例方法中调用其它方法

2021-11-20 23:07:25 7163 1

原创 python中常用的内置模块

1. time模块(1)功能汇总(2)程序解释2. datetime模(1)功能汇总(2)程序解释3. calendar模块(1)功能汇总(2)程序解释4. sys模块(1)功能汇总(2)程序解释5. os模块(1)功能汇总(2)程序解释6. pathlib模块(1)功能汇总(2)程序解释7. shutile模块(1)功能汇总(2)程序解释8. random模块(1)功能汇总(2)程序解释9. json模块(1)功能汇总(2)程序解释10. pickle模块(1)功能汇总(2)程序解释7. shutile

2021-11-14 19:56:47 5476

原创 【python基础】python中常用字符串函数详解

1 字符串查询(index,find)2. 字符串大小写转换操作(upper、lower、swapcase、capitalize和title)3. 字符串对齐(center,just和zfill)4. 分割字符串(split、splitlines和partition)5. 合并与替换(join,replace)6. 判断字符串(isidentifier、isspace、isalpha、isdecimal、isnumeric和isalnum等)7. 字符串的比较(,max,min等)去除两端多余字符操作...

2021-10-31 11:04:45 24889 12

原创 【深度学习基础】——基本概念和术语整理

1. 人工智能(AI)、机器学习(ML)和深度学习(DL)1.1 人工智能1.2 机器学习1.3 深度学习1.4 人工智能、机器学习和深度学习的关系2 监督学习与无监督学习3. 深度神经网络(deep neural networks,DNN)4. 激活函数(activation function)4.1 sigmoid4.2 tanh激活函数4.3 Relu激活函数4.4 Leak Relu 激活函数4.5 Softmax激活函数4.6 激活函数的性质4.7 激活函数的选择5. 欠拟合与过拟合

2021-10-24 15:56:07 2518 4

原创 Linux常用命令----好记性不如烂笔头

好记性不如烂笔头,记录总结一下常用的Linxu命令,后续也会时不时的更新。

2021-09-13 20:50:53 2399

原创 一文详解C++多线程

传统的C++(C++11之前)中并没有引入线程这个概念,在C++11出来之前,如果我们想要在C++中实现多线程,需要借助操作系统平台提供的API,比如Linux的<pthread.h>,或者windows下的<windows.h> 。C++11提供了语言层面上的多线程,包含在头文件<thread>中。它解决了跨平台的问题,提供了管理线程、保护共享数据、线程间同步操作、原子操作等类。C++11 新标准中引入了5个头文件来支持多线程编程,如下图所示:

2021-04-25 09:09:43 73720 19

原创 【笔记】C/C++编程中的一些常用函数、功能和容易混淆的概念

记录一些C/C++中常用但是容易忘记的函数;记录C/C++中容易混淆的概念。这里作为C/C++日常开发笔记所用。

2021-03-17 13:59:45 517 1

原创 重学C++笔记之总览目录

重学C++笔记总览目录:(一) C++基础介绍(二) 处理数据(三)复合类型(四)循环和分支语句(五)函数的使用(六)函数探幽(七)内存模型和名称空间(八)对象和类(九)使用类(十)类和动态内存分配(十一)类继承(十二)C++中的代码重用(十三)友元、异常和其他(十四)string类和标准模板库(十五)输入、输出和文件(十六)探讨C++新标准

2021-01-06 12:07:09 442

原创 愉快的使用vscode刷leetcode,开启摸鱼新高度

然后输入手机号(邮箱也可以)和cookie就行了,如何找到对应的cookie呢?就行,复制上图所示的cookie,然后回到vscode粘贴就可以登录了。插件扩展中搜索LeetCode,一般刚开始都是第一个,如下图所示。下载相应的安装包,一路next即可。这里可能会有很多的graphql,找到。下载相应的安装包,如下所示。点击下方的网络小球,切换成。

2024-01-25 14:15:06 965 1

原创 git使用过程中出现乱码的解决办法

Linux和Windows的解决办法不一。在终端依次运行以下命令即可。打开Bash终端,右键选择。,最后在Locale中选择。Linux的解决方案。,在弹出的界面中选择。

2023-09-27 16:44:57 1375

原创 mmdetection3d报错问题解决汇总

当在mmdetection3d上添加了新的网络结构之后,使用多GPU运行程序时,会报以下错误。ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 0 (pid: 333) of binary: /opt/conda/bin/pythonTraceback (most recent call last):

2023-06-14 14:13:39 9927 2

原创 c++中map/unordered_map的不同遍历方式以及结构化绑定

方式一:值传递遍历方式 二:引用传递遍历方式 三:使用迭代器遍历方式 四:结构化绑定(c++17特性)结构化绑定示例(1)元组tuple结构化绑定(2)结构体结构化绑定(3)数组结构化绑定(4)普通变量结构化绑定

2023-03-01 14:58:44 1879

原创 windows安装Ubuntu子系统以及图形化界面记录

工作中大部分时间在用win和ubuntu的双系统,虽然能应付大部分工作,但是遇到频繁切换环境时,还是比较烦的,所以乘着周末时间研究了一下WSL系统。1. windows环境设置打开开发者模式电脑桌面右键选择显示设置->搜索开发者设置->打开开发人员选项开关。如下图所示。启用子系统功能,控制面板->程序->程序和功能->启动或光比Windows功能->适用于Linux的Windows子系统。勾选之后可能需要重启。

2023-02-25 17:00:58 5030 3

原创 shell脚本空行造成“: not found.sh“报错的解决方法(unix与windows文本格式切换)

编码,在写shell脚本的时候,在windows的上开发后,上传到服务器,可能会有。当我们在linux系统中启动shell脚本,有时会遇到。因为我们在windows编写或修改后的脚本是。编码,而正常的在Linux系统中执行的是。vscode界面的右下角有。方法二:vscode。

2023-02-23 21:16:56 2285

原创 转换矩阵、平移矩阵、旋转矩阵关系以及python实现旋转矩阵、四元数、欧拉角之间转换

由于在平时总是或多或少的遇到平移旋转的问题,每次都是现查资料,然后查了忘,忘了继续查,这次弄明白之后干脆写一篇文章,给人方便同时于己方便,后续如有扩充或变动也方便添加。

2023-02-16 14:22:27 11121 3

原创 【CUDA编程】CUDA内存模型

thread:每个线程都用自己的registers(寄存器)和local memory(局部内存)block:每个线程块(block)内都有自己的shared memory(共享内存),所有线程块内的所有线程共享这段内存资源grid:每个grid都有自己的global memory(全局内存),constant memory(常量内存)和texture memory(纹理内存),不同线程块的线程都可使用。其中常量内存和纹理内存为只读内存空间。

2022-11-04 15:33:08 1871

原创 【cuda编程】CUDA中的atomic原子操作

所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位。CUDA的原子操作可以理解为对一个变量进行“读取-修改-写入”这三个操作的一个最小单位的执行过程。在它执行过程中,不允许其他并行线程对该变量进行读取和写入的操作。基于这个机制,原子操作实现了在多个线程间共享的变量的互斥保护,确保任何一次对变量的操作的结果的正确性。

2022-10-31 11:30:56 3017

原创 【cuda编程】CUDA中计算程序耗时

在我们日常使用CUDA优化程序时,为了方便分析,经常会统计自己写的程序耗时情况。一般情况下,可以使用C/C++的CPU方式,另外一种则选择则是使用CUDA的事件方式。

2022-10-31 11:26:57 1371 1

原创 【cuda编程】CUDA的运行方式以及grid、block结构关系

从GPU至线程的关系依次为:显卡(GPU)->网格(grid)->线程块(block)->线程(thread) 。从网格开始最大为3维,当然也可以1维了。网格(grid):一个内核函数(kernel)就是一个网格,里面所有线程都在这个网格范围内,里面的线程共享全局内存空间线程块(block):一个网格可以包含很多个block,block之间可以通过“同步”和“共享内存”进行协作,block之间的区分通过“blockIdx”线程(thread):一个线程块可以包含很多个thread,thread之间区

2022-10-26 13:54:24 2967

原创 python正则化表达式

1. 正则表达式的模式——pattern2. 正则表达式常量——修饰符(1)常量理解(2)re.IGNORECASE(3)re.ASCII(4)re.DOTALL3. 正则表达式函数(1)查找一个匹配项——match、search和fullmatch(2)查找多个匹配项——findall、finditer(3)分割——split(4)替换——sub、subn(5)编译正则项——template、compile(6)其他——escape、purge4. 一些简短示例.........

2022-07-19 21:09:11 3400 1

原创 openpcdet之pointpillar代码阅读——第三篇:损失函数的计算

0. 检测头的设计1. 损失计算的理论2. 生成anchors3. GT与anchor的匹配4. box编码5. 损失函数设计Pointpillars使用了和SECOND相同的损失函数。每个三维目标检测框可以用7个变量来描述

2022-07-18 08:23:18 3624

原创 openpcdet之pointpillar代码阅读——第二篇:网络结构

上一篇文章,我们讲了数据增强和数据处理,并且我们得到了相应的pillar数据。下面我们继续讲pointpillar中的网络结构。随后经过VFE之后,就可以把原始的点云结构(N*4)(N∗4)变换成了(D,P,N)(D,P,N),其中 D代表了每个点云的特征维度,也就是每个点云10个特征(论文中只有9维),P代表了所有非空的立方柱体,N代表了每个pillar中最多会有多少个点。具体操作以及说明如下............

2022-07-14 13:34:35 3763

原创 openpcdet之pointpillar代码阅读——第一篇:数据增强与数据处理

1. 数据增强1.1 gt数据采集——gt_sampling1.2 全局翻转——random_world_flip1.3 全局旋转——random_world_rotation1.4 全局尺度变换——random_world_scaling2. 数据处理2.1 数据范围限制2.2 点云随机2.3 点云变换至pillar3. 数据收集——datalodar...............

2022-07-13 13:42:28 4892 7

原创 深度学习模型参数量以及FLOPs计算工具

深度学习模型参数量与FLOPs计算工具介绍

2022-07-12 21:21:30 2624

原创 pytorch中copy_()、detach()、data()和clone()操作区别小结

clone创建一个tensor与源tensor有相同的shape,dtype和device,不共享内存地址,但新tensor(b)的梯度会叠加在源tensor(a)上。需要注意的是,b = a.clone()之后,b并非叶子节点,所以不可以访问它的梯度。detach()函数返回与调用对象tensor相关的一个tensor,此新tensor与源tensor共享数据内存(那么tensor的数据必然是相同的),但其requires_grad为False,并且不包含源tensor的计算图信息。...

2022-06-20 17:23:26 2364 1

原创 pytorch中使用add_module添加网络子模块

之前有一篇文章介绍了使用Sequential、ModuleList和ModuleDict添加网络,除此之外,我们还可以通过add_module()添加每一层,并且为每一层增加了一个单独的名字。add_module()可以快速地替换特定结构可以不用修改过多的代码。add_module的功能为Module添加一个子module,对应名字为name。使用方式如下...

2022-06-15 11:47:55 4085

原创 pytorch中model.eval()和torch.no_grad()的区别

在PyTorch中进行validation时,会使用model.eval()切换到测试或者称为验证模式下。model.eval()仅作用于dropout层和batchnorm层,让其与训练状态不同,相当于 dropout的参数为0 ,batchnorm也 不再更新和计算 mean和var值,而是使用训练阶段学习到的mean和var。...

2022-06-07 17:12:11 1219

原创 上采样、下采样以及Pytorch中的卷积与反卷积(转置卷积)方法介绍(conv2d和convTranspose2d)

卷积操作可以压缩整合图片特征,让[通道, 宽, 高]分别为[c,h,w][c,h,w]的特征图片通过Conv2d。变为更多的通道(维度)cc,更小的尺寸[h,w][h,w]。也就是说,当输入为一组图片[n,c,h,w][n,c,h,w]格式时,输出也为[n,c,h,w][n,c,h,w]格式。转置卷积,也称为反卷积(deconvlution)和分部卷积(fractionally-strided convolution)。为卷积的逆操作,即把特征的维度压缩,但尺寸放大。注意它 不是真正意义上 的卷积的逆操作。

2022-05-30 09:43:51 10034 3

原创 【点云处理技术之open3d】第五篇:使用Open3d在点云中添加文字label

官网提供了add_3d_label方法,同时也给出了绘制label的案例,代码还是比较简单的,直接看代码就可以理解了。下面对代码进行简要的说明:代码中提供了两种绘制label信息的方式,分别为函数high_level()和low_level(),两种方法都可以,根据自己的需求选择。make_point_cloud函数为随机生成npts个点云。o3d.utility.Vector3dVector方法为将numpy格式的数据转换为open3d格式的点云数据。

2022-05-24 18:15:00 4128 1

原创 pcl_viewer的使用小记

虽然有很多查看点云的方式,但是要说在linux系统下,最简单快捷的方式还得说是pcl_viewer,在此记录一下自己觉得还挺好用的几点pcl_viewer操作。 1. pcl_viewer安装2. 查看点云以及相应的快捷键3. 查看点云的坐标4. 启用xyz轴5. 一次打开多个pcd文件

2022-05-23 17:45:00 8901 4

原创 python中的继承关系详解

子类继承了父类中的属性和方法,也就是说,可以直接使用 子类的实例访问父类中的属性和方法 。下面的例子中,子类中虽然没有实现任何方法和属性,但是它依然可以访问父类中的属性和方法。子类的 __init__()方法会覆盖父类的 __init__()方法 ,也就是说子类中有__init__()方法时,如果不手动写名,子类不会去调用父类中的__init__()方法。...

2022-05-18 23:15:08 3406 1

原创 OpenPCDet v0.5版本的安装与测试

OpenPCDet更新了最新版本v0.5,同时也支持open3d。因为之前也没怎么用过mayavi,本来还想基于openpcdet 0.3版本,自己写一个open3d的显示,看到官方更新了一个最新版,果断安装最新版使用了,效果还不错,于是写一个相关的使用教程吧。...

2022-05-16 18:01:07 1927 1

原创 pytorch中涉及cuda的使用介绍

1. 设置可见GPU的个数2. GPU的常用操作(1)常用操作列表(2)torch.cuda.is_available()(3)设置GPU默认使用编号3. 在GPU上使用数据3.1 直接创建法3.2 CPU转移至GPU(1)方法一:tensor.to()(2)方法二:tensor.cuda()(3)方法三:tensor.type()(4)方法四:torch.from_numpy(np_labels).cuda()4. 一般哪些对象可以使用GPU(1)网络模型 (module)(2)数据(3)损失函数

2022-05-15 18:00:00 6932 1

原创 python调试之pdb调试工具

pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括 设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量 的值等。

2022-05-12 21:46:55 3853 2

原创 python中的命名空间、作用域、全局变量与局部变量

1. 命名空间2. 作用域3. 全局变量与局部变量(1)局部变量可以访问全局变量(2)全局变量不能访问局部变量(3)局部变量修改全局变量(4)局部变量修改嵌套作用域(5)局部变量与嵌套变量互不影响命名空间提供了在项目中避免名字冲突的一种方法。各个命名空间是独立的,没有任何关系的,所以一个命名空间中不能有重名,但不同的命名空间是可以重名而没有任何影响。在一个 python 程序中,直接访问一个变量,会从内到外依次访问所有的作用域直到找到,否则会报未定义的错误。Python 中,程序的变量并不是在哪个位置都

2022-05-07 09:19:59 611

原创 【opencv之python版】图像的读取、显示、保存、像素遍历以及结合matplotlib使用

在opencv的C++代码中,表示图像有专门的结构cv::Mat,在python中有numpy工具可以使用。1. 图像的表示2. 图像读取、显示与保存3. 简单使用3.1 读取图像大小3.2 绘制基本图像3.3 元素遍历4. 结合Matplotlib显示图像

2022-05-02 21:38:59 4283 1

原创 ROS中的日志log消息与ROS终端的不同颜色输出

ROS自带了大量的能够输出调试信息的函数和宏,包括错误,警告等.它提供了如信息级别,条件触发消息和STL的流接口等方式。1. 日志消息1.1 rosout的日志1.2 日志文件2. 日志等级2.1 基础介绍2.2 举例2.3 设置日志级别3. ROS日志其它说明3.1 单次输出3.2 设置输出频率4. ROS终端颜色输出

2022-04-30 21:43:32 3301

ORB-SLAM2和ORB-SLAM3超详细中文注释版本.zip

ORB-SLAM 它是一个完整的 SLAM 系统,包括视觉里程计、跟踪、回环检测,是一种完全基于稀疏特征点的单目 SLAM 系统,同时还有单目、双目、RGBD 相机的接口。资源包含ORB-SLAM2和ORB-SLAM3详细的中文注释版本的源码。

2021-03-31

空空如也

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

TA关注的人

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