自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (8) cuda分析工具

NVIDIA Nsight Compute是Nsight系列工具中的一个组件,专门用于CUDA核函数的性能分析,它是更接近内核的分析。Nsight Compute提供了许多有用的数据和图形化的界面,帮助开发人员深入理解和优化核函数的性能。它可以提供对应用程序整体性能的全面见解,以及考察GPU活动、内存使用、线程间通信等方面的详细信息,它提供了可视化界面和统计数据,开发人员可以使用它来发现性能瓶颈、调整应用程序的配置,以及提高整体性能。

2024-10-29 23:40:24 826

原创 (7) cuda异常处理

上一节 block_width = 64的时候,64×64=4096 > 1024(一个block里面最多只能有1024个线程,所以这里计算会有问题): 编译器内部定义的一个宏。表示的是当前文件的文件名。: 编译器内部定义的一个宏。表示的是当前文件的行。cuda这些函数的返回类型都是。检查我们写的核函数相关的报错。

2024-10-28 00:04:33 322

原创 (6) cuda中的矩阵相乘

1的时候MatmulKernel函数每次会计算一个位置的结果。2的时候MatmulKernel函数每次会计算4个位置的结果。无论block dim多大,每个线程都只计算一个位置的结果。矩阵乘法是啥,在这里就不多说了。当我们的block dim是1。当block dim是2。

2024-10-27 17:46:32 345

原创 (5)cuda中的grid、block

我们写的kernel function运行在block中的每个thread中。一个block可以有多个thread,一维~三维。一个grid可以有多个block,一维~三维。一个kernel对应一个grid。是两个重要的概念,我们用。

2024-10-24 15:25:24 445

原创 (4) cuda cudnn TensorRT安装及配置

【代码】(4) cuda cudnn TensorRT安装及配置。

2024-10-18 17:23:59 495

原创 (10) GTest c++单元测试(mac版)

我们希望在测试之间共享数据、对象,避免重复的设置和清理,做好代码测试的复用。Gtest提供了Test Fixture,能在测试前后统一做一些准备或清理操作。这些操作称为测试事件。为了方便的管理和组织多个测试用例,Gtest框架可以将测试用例组织称测试套件(Test Suite),并且可以嵌套多个。Gtest提供了一系列丰富的断言宏,用于验证测试结果。_XXX后缀代表具体的检查类型。

2024-10-15 16:26:47 747

原创 (3) nuScenes坐标系相关

lidar 相对于 ego 而言的位置 (translation) 和旋转 (rotation).camera 相对于 ego 而言的位置 (translation) 和旋转 (rotation)translation 使用 3 个 float 数字表示(相对于 ego 而言的位置)translation 使用 3 个 float 数字表示(相对于 ego 而言的位置)rotation 使用 4 个 float 数字表示即四元数。rotation 使用 4 个 float 数字表示即四元数。

2024-10-15 14:45:51 1042 1

原创 (2)nuScenes数据集及点云可视化

是一种用于自动驾驶研究的大规模开放式数据集,其中包含了从多个传感器收集的高清三维激光雷达数据、高清摄像头数据、GPS 和 IMU 数据以及其它传感器等多种数据类型,总数据量达到了超过 1000 小时的行驶数据。相机数据是以图片的格式存储的,LiDAR 数据是以二进制的格式存储的,Radar 数据则是以 PCD 的格式进行存储的。包含有关数据集中每个样本的元数据信息,如时间戳、旋转矩阵等。包含有关车辆传感器数据的信息,如激光雷达、相机和毫米波雷达等一些样本数据。先转kitti bin。这个报错执行一下命令。

2024-10-15 13:40:28 3052

原创 (1)发布自己的python包

一半的开源软件会选择相对宽泛的许可证MIT(The MIT License),也就是坐着保留版权,没有其他任何限制。在Python中,程序的划分可以分为三个层次:脚本、模块和包。openAI 的 GPT 大模型的发展历程。确保拥有setuptools和wheel。主要是为了生成这两个玩意。注册一个属于你自己的账号。

2024-10-14 21:05:46 620

原创 (9) protobuf 与cmake

安装protobuf3 21.12,最新版本好像要用到一个新的库,有点麻烦。第一种方式安装可以直接protoc --version 查看版本使用。之前我们需要手动生成proto源文件,现在我们来用cmake自动生成。protobuf的安装与用cmake编译protobuf程序。执行 protoc --version。all和cpp后缀的包都可以下载。contacts.proto文件。新的CMakeLists.txt。生成proto对应的源码。

2024-09-17 21:39:37 1360

原创 论文阅读【检测】:商汤 ICLR2021 | Deformable DETR

DETR消除对目标检测中许多手工设计的组件的需求,同时表现出良好的性能。然而,由于Transformer注意模块在处理图像特征映射方面的局限性,它收敛速度慢特征空间分辨率有限。为了缓解这些问题,提出了 Deformable DETR,其注意力模块只关注参考周围的一小组关键采样点。可变形 DETR 可以比 DETR(尤其是在小物体上)获得更好的性能,训练时间减少了 10 倍。代码。

2024-07-25 23:03:48 1475

原创 论文阅读【检测】:Facebook ECCV2020 | DETR

提出了一种将目标检测视为直接集预测问题的新方法。简化了检测pipeline,有效地消除了许多手工设计的组件的需求,例如非最大抑制过程或锚生成,这些组件明确地编码了任务的先验知识。新框架的主要成分,是基于集合的全局损失,它通过二部匹配强制唯一的预测,以及变transformer encoder-decoder架构。给定一组固定的学习对象查询,DETR 推理对象和全局图像上下文的关系,以并行直接输出最终的预测集。

2024-07-24 15:17:46 681 1

原创 batch norm记录

推理阶段的均值和方差就不是根据推理的输入进行计算的,是通过训练时候的均值和方差进行滑动平均得到的。(面试的时候没回答上来)均值和方差是为了归一化,两个可学习的参数gamma,beta是为了将归一化后的值拉回到原来的尺度以拟合原始数据。均值和标准差的计算过程 就是把一个batch中相同的通道的feature map拿出来计算。最后得到新的feature map的值还需要 经过gamma和beta两个值的反变换。推荐一下b站up: Enzo_Mi。

2024-07-24 11:52:48 402

原创 (8) ubuntu ROS 安装

sudo rosdep init 报错参考这个blog。

2024-07-23 19:51:49 319

原创 (7) cmake 编译C++程序(二)

好像还有点小bug没调试,整体应该是能运行。

2024-07-22 16:52:09 987

原创 (6)编写简单的C++程序

主程序 main.cpp。

2024-07-17 14:23:13 329

原创 (5) cmake link动态库生成可执行文件

其他文件与第三节一致,只是修改了CMakeLists.txt。

2024-06-24 11:13:14 455

原创 (4) cmake编译静态库和动态库

生成的静态库文件会自动在前面加上“lib”

2024-06-23 21:27:12 639

原创 (3) cmake编译多个cpp文件

上一节中实现了对单个cpp文件用cmake编译。

2024-06-20 13:22:50 508

原创 (2) cmake之hello world

我们先创建build文件夹,在build文件夹中进行cmake编译。会生产一堆中间文件和可执行文件hello_world。为了避免一堆 中间文件生成到我们的工作目录中。简单的CMakeLists.txt。简单的test.cpp。

2024-06-20 11:42:40 269

原创 (1)ubuntu g++使用

展开头文件,宏替换,去除注释,条件编译。:将多个文件及相关库编译生成可执行文件。:检查语法,生成汇编文件。指定 C++ 标准版本。:汇编代码生成机器码。

2024-06-20 11:10:10 399

原创 论文阅读【backbone】:Google 2019|MixConv: Mixed Depthwise Convolutional Kernels

文章目录前言一、Introduction总结前言论文地址:MixNet分层卷积算法在现代有效卷积算法中越来越受到重视,但其核大小却常常被忽视。在本文中,系统地研究了不同粒度的核的影响,并观察到结合多核的优点可以得到更高的准确率/效率。在此基础上,提出了一种新的混合深度卷积(mixconv) ,它自然地将多个核大小混合在一个卷积中。一、Introduction在本文中,重新回到这个基本问题: 较大的内核是否总能达到较高的精度? 自从在 alexnet中首次观察到,众所周知,每个卷积内核负责捕获一个

2022-01-07 14:15:19 1624

原创 精确率(precision)、准确率(accuracy)和召回率(recall)

TP:正样本预测为正样本,对了,真正例FP: 负样本预测为正样本,错了,假正例FN: 正样本预测为负样本,错了,假负例TN:负样本预测为负样本,对了,真反例Accuracy,表示你有多少比例的样本预测对了,公式如下:...

2021-09-02 18:05:26 451

原创 论文阅读【backbone】:CVPR2018|Deep Layer Aggregation

文章目录前言一、Introduction二、Deep Layer Aggregation总结论文地址:Deep Layer Aggregation前言视觉识别需要丰富的表示,跨度从低到高的水平,从小到大小的尺度,并且从良好到粗糙的分辨率。即使在卷积网络中的特征深度,孤立的层也不够:复合和聚合这些epresentations 改善了网络在推断what和where。网络结构正在努力探索网络骨干网的许多维度,设计更深层次或更广泛的架构,但如何在网络中最佳的聚合层和块值得进一步关注。虽然跳跃连接已被合并为组

2021-08-25 20:44:52 402

原创 IOU计算

def box_iou(boxes1, boxes2): area1 = (boxes1[:, 2] - boxes1[:, 0]) * (boxes1[:, 3] - boxes1[:, 1]) area2 = (boxes2[:, 2] - boxes2[:, 0]) * (boxes2[:, 3] - boxes2[:, 1]) lt = torch.max(boxes1[:, None, :2], boxes2[:, :2]) # left-top [N,M,2] r

2021-08-18 00:58:06 293

原创 Python 数字随机采样

a = [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10]]import randomrandom.seed(23)a = random.sample(a, 4)a[[7], [6], [1], [2]]

2021-08-09 17:06:22 281

原创 论文阅读【域泛化】:ECCV2018|Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net

文章目录前言一、IntroductionContribution二、MethodResult总结链接:ECCV2018|Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net.前言与现有的设计CNN体系结构以提高单个域的单个任务的性能和不可推广性的工作不同,IBN网络,一种新颖的卷积体系结构,它显著增强了CNN在一个域上的建模能力以及在另一个域上的推广能力,而无需微调。IBN-Net小心翼翼地将Instanc

2021-07-31 16:33:51 1211

转载 转载系列:IOU Loss

原文链接:https://www.yuque.com/huoxiangshouxiangwanghuo/xg3nah/tyl1n2 IoU(Intersection over Union) 在目标检测任务中,IoU是一个非常重要的概念,它反映了prediction box和ground truth box的贴合程度。在用训练好的模型进行测试时,网络会预测出一系列的prediction box,这时候我们会用NMS来移除一些多余的候box,即移除一些IoU值大于某个阈值的box,然后在剩下的box中,分别

2021-07-30 17:29:20 398

原创 python 字典排序

tmp = {"f":6,"b":2,"c":3,"g":8,"d":4,"a":1,"e":5}a = sorted(tmp.items(),key=lambda item:item[0])#key 控制按key 还是value排序print(tmp.items())print(a)dict_items([('f', 6), ('b', 2), ('c', 3), ('g', 8), ('d', 4), ('a', 1), ('e', 5)])[('a', 1), ('b', 2), ('c'

2021-07-30 16:33:10 173

原创 论文阅读【轻量化网络】| ICCV2021:Bias Loss for Mobile Neural Networks

文章目录前言一、Introduction二、Objective Functions2.1.Bias Loss三、SkipNet Mobile Architectures四、Experiments总结论文链接:https://arxiv.org/abs/2107.11170.前言大型CNN和轻量型CNN在特征多样性上的差异很少被研究。具有低特征多样性的数据点可能无法提供足够数量的唯一描述符来进行有效预测;我们称之为随机预测。随机预测会对优化过程产生负面影响,并损害最终性能。本文建议通过重塑标准交叉熵来

2021-07-29 16:29:23 2204 2

原创 python 随机获取字典元素

import randoma = {1:"a",2:"b",3:"c",4:"d",5:"e",6:"f"}b = random.sample(lista.keys(), 5) # 随机一个字典中的key,第二个参数为限制个数print(a)print(b)无放回sample,第二个参数大于dict的len会报错。{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f'}[4, 6, 1, 5, 2]...

2021-07-26 16:46:31 7170 2

原创 Python 变量持久化

#单变量存储import picklea = [[1,2,3,4,5,6,7],[2,3,4,5,6,7,8]]f = open('test.pkl', 'wb')pickle.dump(a, f)f.close()#多变量保存a = [[1,2,3,4,5,6,7],[2,3,4,5,6,7,8]]b = ['aaaa','bbbb',"ccccc"]c = "megvii"d = "测试"f = open('test.pkl', 'wb')pickle.dump([a,b,

2021-07-21 20:01:30 758 1

原创 论文阅读【检测】CVPR2020 | Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Trai

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Abstract一、Introduction二、使用步骤1.引入库2.读入数据总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与

2021-07-12 21:04:28 757

原创 聊一聊CV中的局部连接与参数共享

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、局部连接是什么?二、参数共享是什么?三、为啥要进行这两个操作?四、为啥这两个操作可以work?五、一些额外的思考?前言无意间思考了一下这个问题。为啥局部连接和参数共享在CNN中可以work?一、局部连接是什么?不多废话,一张图清晰明了的解释了啥是局部连接二、参数共享是什么?上图中显然参数是不共享的。这张图也清晰的解释了啥是参数共享。三、为啥要进行这两个操作?两者的一个关键作用就是减少参数数量。四、为

2021-07-09 00:06:09 716

原创 numpy 获取最大值索引

直接上代码吧import numpy as npaa = [1,2,3,4,5]arr_aa = np.array(aa)maxindex = np.argmax(arr_aa)print(maxindex)大意了,面试问到这个问题居然没回到上来

2021-06-15 16:45:38 3069 1

原创 论文阅读【人脸检测】| IJCB2017 :FaceBoxes: A CPU Real-time Face Detector with High Accuracy

文章目录前言一、Introduction二、FaceBoxes1.快速消化卷积层(RDCL)2.多尺度卷积层(MSCL)3.Anchor densification strategy总结前言论文地址:https://arxiv.org/pdf/1708.05234.pdf.有效的人脸检测模型往往在计算上是令人望而却步的。为了在CPU上实现实时速度,同时保持高性能应对这一挑战,FaceBox,在速度和准确性方面都具有优越的性能。它由快速消化卷积层(RDCL)和多尺度卷积层(MSCL)组成。RDCL的设

2021-06-06 21:45:02 541 2

原创 复制一个文件下的所有图片到另一个文件夹

import osori = "/home1/zy/dataset/cheshi"target = "/home1/zy/dataset/cheshi2/"def get_fileNames(rootdir,target): #如果有目标文件夹就不管,没有就自己创建 if not os.path.exists(target): os.makedirs(target) for root, dirs, files in os.walk(rootdir,topdown

2021-05-27 16:56:56 558

原创 python压缩图片

直接上代码了#coding = utf-8import cv2import osimport mathdef get_doc_size(path): try: size = os.path.getsize(path) return get_mb_size(size) except Exception as err: print(err)def get_mb_size(bytes): bytes = float(bytes

2021-05-25 17:49:21 286

原创 对concat和add的一点想法

前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考总结提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。...

2021-05-25 17:05:50 2293

转载 转载系列 |ICCV2019:ACNet:Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric Convolution

论文:ACNet: Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric Convolution Blocks 论文链接:https://arxiv.org/abs/1908.03930 代码链接:https://github.com/DingXiaoH/ACNetACNet,全称是Asymmetric Convolution Net,翻译过来就是非对称卷积网络。这篇论文也是从更好的特征表达角度切入实现效果提升,不过更重要的是

2021-05-18 16:31:13 469

空空如也

空空如也

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

TA关注的人

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