自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

尊新必威的博客

记录学习和实践

  • 博客(159)
  • 收藏
  • 关注

原创 【Bash】常用命令总结

bash常用命令总结

2023-08-28 14:34:40 1515

原创 【apollo】执行命令记录

apollo执行命令笔记

2023-05-29 14:23:29 231

原创 【TensorRT】ONNX/TensorRT模型转换

TensorRT 模型的推理速度比 libtorch 模型更快,所以 PyTorch 模型转换为 TensorRT 模型部署几乎是最好的选择。通常TensorRT 模型首先需要转换为 ONNX 模型,再由 ONNX 模型转换为TensorRT 模型。本文对转换方法及一些注意点做一个记录。

2022-09-16 21:23:55 1687 2

原创 【C++高阶】3.2 vector容器

c++ vector 容器学习,vector数据结构和数组非常相似,也称为单端数组。

2022-08-03 11:51:44 214

转载 【C++高阶】3.1 string容器

string是C++风格的字符串,而string本质上是一个类。string类内部封装了很多成员方法;例如查找find,拷贝copy,删除delete替换replace,插入insert;string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责。......

2022-07-20 10:30:05 173

原创 【Git】常用命令及流程方法总结

git常用命令学习记录

2022-07-18 11:29:07 273

原创 【C++高阶】2. STL解析

长久以来,软件界一直希望建立一种可重复利用的东西;C++的面向对象和泛型编程思想,目的就是复用性的提升;大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作;为了建立数据结构和算法的一套标准,诞生了STL。STL大体分为六大组件,分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器。容器: 置物之所也。STL容器就是将运用最广泛的一些数据结构实现出来;常用的数据结构:数组, 链表,树, 栈, 队列, 集合, 映射表 等;这些容器分为序列式容器和关联式容器两种:算法: 问题之解法也

2022-07-04 11:22:16 146

原创 本地调用服务器上的Tensorboard及Jupyter notebook(利用MobaXterm)

任务简介:我一般用MobaXterm配置SSH协议连接到远程服务器,服务器的默认浏览器为Firefox。如果在服务器上用Firefox访问该网址, 在MobaXterm终端显示网页延迟很高、很卡。 那么可不可以在自己电脑上直接访问网址呢?答案是可以的,利用MobaXterm建立ssh隧道,实现远程端口到本机端口的转发。............

2022-07-02 14:50:55 768

原创 【C++高阶】1.3 模板——类模板

类模板作用:建立一个通用类,类中的成员 数据类型可以不具体制定,用一个虚拟的类型来代表。语法:解释:template — 声明创建模板;typename — 表面其后面的符号是一种数据类型,可以用class代替;T — 通用的数据类型,名称可以替换,通常为大写字母。示例:总结:类模板和函数模板语法相似,在声明模板template后面加类,此类称为类模板。类模板与函数模板区别主要有两点:示例:总结:类模板中成员函数和普通类中成员函数创建时机是有区别的:示例:总结:类模板中的成员函数并不

2022-07-01 20:41:06 121

原创 【TorchScript】PyTorch模型转换Libtorch模型

任务简介:使用PyTorch训练的模型只能在Python环境中使用,在自动驾驶场景中,模型推理过程通常是在硬件设备上进行。TorchScript可以将PyTorch训练的模型转换为C++环境支持的模型,推理速度比Python环境更快。本文对整体转换流程做一个简单的记录,后续需要补充TorchScript的支持的各种语法规则以及注意点。...............

2022-07-01 14:07:28 3630 4

原创 【LibTorch】C++中部署TorchScript模型与Tensor保存/加载

下载cuda版本为11.3的安装包并解压即完成安装:如果需要cpu版本的安装包按照上面注释方法替换即可。保存函数:2.2 C++加载tensor并调用模型首先需要将PyTorch模型转换为C++支持的TorchScript模型,具体步骤以后找个时间再写一篇笔记,这边先略过。C++调用TorchScript模型代码:3. 编译执行C++推理用例3.1 编写CMakeLists需要安装cuda和cudnn才能进行cmake;创建文件 ,写入:3.2 编译并执行用例在同级目录下执行命令:输出:.

2022-06-30 21:13:17 1531 2

转载 【C++高阶】1.1-1.2 模板——函数模板

本阶段主要针对C++泛型编程和STL技术做详细讲解,探讨C++更深层的使用模板就是建立通用的模具,大大提高复用性。例如生活中的模板,一寸照片模板:PPT模板:模板的特点:函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。语法:解释:template — 声明创建模板;typename — 表面其后面的符号是一种数据类型,可以用class代替;T — 通用的数据类型,名称可以替换,通常为大写字母。示例:总结:注意事项:示例:1.2.3

2022-06-24 10:37:26 126

原创 【C++核心】5. 文件操作

程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放,通过文件可以将数据持久化。C++中对文件操作需要包含头文件 < fstream >。文件类型分为两种:操作文件的三大类:写文件步骤如下:文件打开方式:注意: 文件打开方式可以配合使用,利用 " | " 操作符。例如: 用二进制方式写文件 。示例:总结:读文件与写文件步骤相似,但是读取方式相对于比较多。读文件步骤如下:示例:总结:............

2022-06-22 10:40:51 111

原创 【C++核心】4.7 类和对象——多态

多态是C++面向对象三大特性之一多态分为两类:静态多态和动态多态区别:下面通过案例学习多态:总结:多态满足条件:多态使用条件:重写:函数返回值类型 函数名 参数列表 完全一致称为重写。案例描述:分别利用普通写法和多态技术,设计实现两个操作数进行运算的计算器类。多态的优点:示例:..................

2022-06-16 11:04:35 108

原创 【C++核心】4.6 类和对象——继承

继承是面向对象三大特性之一有些类与类之间存在特殊的关系,例如下图中:观察发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性。这个时候就可以考虑利用继承的技术,减少重复代码。例如我们看到很多网站中,都有公共的头部,公共的底部,甚至公共的左侧列表,只有中心内容不同。接下来我们分别利用普通写法和继承的写法来实现网页中的内容,看一下继承存在的意义以及好处。普通实现:继承实现:总结:继承的好处:可以减少重复的代码class A : public B;A 类称为子类 或 派生类B 类称为父类

2022-06-15 11:04:48 122

原创 【C++核心】4.5 类和对象——运算符重载

运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型作用: 实现两个自定义数据类型相加的运算。示例:4.5.2 左移运算符重载作用: 可以输出自定义数据类型示例:4.5.3 递增运算符重载作用: 通过重载递增运算符,实现自己的整型数据示例:4.5.4 赋值运算符重载c++编译器至少给一个类添加4个函数如果类中有属性指向堆区,做赋值操作时也会出现深浅拷贝问题。示例:4.5.5 关系运算符重载作用: 重载关系运算符,可以让两个自定义类型对象进行对比操作。示例

2022-06-13 19:29:39 106

原创 【C++核心】4.4 类和对象——友元

生活中你的家有客厅(Public),有你的卧室(Private)。客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去。但是你也可以允许你的好基友进去。在程序里,有些私有属性也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术。友元的目的就是让一个函数或者类访问另一个类中私有成员。友元的关键字为 friend友元的三种实现:示例:4.4.2 类做友元示例:4.4.3 成员函数做友元示例:......

2022-06-13 11:39:27 113

原创 【C++核心】4.3 类和对象——C++对象模型和this指针

在C++中,类内的成员变量和成员函数分开存储;只有非静态成员变量才属于类的对象上。示例:4.3.2 this指针概念通过4.3.1我们知道在C++中成员变量和成员函数是分开存储的,每一个非静态成员函数只会诞生一份函数实例,也就是说多个同类型的对象会共用一块代码。那么问题是:这一块代码是如何区分那个对象调用自己的呢?c++通过提供特殊的对象指针,this指针,解决上述问题。this指针指向被调用的成员函数所属的对象。this指针是隐含每一个非静态成员函数内的一种指针。this指针不需要定义,直接使用即可。

2022-06-12 20:45:26 104

原创 【C++核心】4.2 类和对象——对象的初始化和清理

对象的初始化和清理也是两个非常重要的安全问题:一个对象或者变量没有初始状态,对其使用后果是未知的;同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题。c++利用了构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理工作。对象的初始化和清理工作是编译器强制要我们做的事情,因此如果我们不提供构造和析构,编译器会提供。编译器提供的构造函数和析构函数是空实现。构造函数语法:析构函数语法: 示例:.....................

2022-06-10 10:48:12 129

原创 【C++核心】4.1 类和对象——封装

C++面向对象的三大特性为:封装、继承、多态C++认为万事万物都皆为对象,对象上有其属性和行为例如:​人可以作为对象,属性有姓名、年龄、身高、体重…,行为有走、跑、跳、吃饭、唱歌…​车也可以作为对象,属性有轮胎、方向盘、车灯…,行为有载人、放音乐、放空调…​具有相同性质的对象,我们可以抽象称为类,人属于人类,车属于车类封装是C++面向对象三大特性之一封装的意义:封装意义一:​在设计类的时候,属性和行为写在一起,表现事物语法: 示例1: 设计一个圆类,求圆的周长示例代码:**示例2:**设计一个学生类,属

2022-06-09 21:12:22 121

转载 【C++核心】3. 函数提高

在C++中,函数的形参列表中的形参是可以有默认值的。语法:示例:3.2 函数占位参数C++中函数的形参列表里可以有占位参数,用来做占位,调用函数时必须填补该位置语法: 在现阶段函数的占位参数存在意义不大,但是后面的课程中会用到该技术示例:3.3 函数重载3.3.1 函数重载概述作用: 函数名可以相同,提高复用性函数重载满足条件:注意: 函数的返回值不可以作为函数重载的条件示例:3.3.2 函数重载注意事项引用作为重载条件函数重载碰到函数默认参数示例:......

2022-06-09 20:11:26 100

原创 【C++核心】2. 引用

作用: 给变量起别名语法: 示例:2.2 引用注意事项引用必须初始化引用在初始化后,不可以改变示例:2.3 引用做函数参数作用: 函数传参时,可以利用引用的技术让形参修饰实参优点: 可以简化指针修改实参示例:2.4 引用做函数返回值作用:引用是可以作为函数的返回值存在的注意:不要返回局部变量引用用法:函数调用作为左值示例:2.5 引用的本质本质:引用的本质在c++内部实现是一个指针常量.讲解示例:结论:C++推荐用引用技术,因为语法方便,引用本质是指针常量,但是所有的指针操作编译

2022-06-08 21:20:33 90

原创 【C++核心】1. 内存分区模型

阶段简介:本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。C++程序在执行时,将内存大方向划分为4个区域内存四区意义:不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编程在程序编译后,生成了exe可执行程序,未执行该程序前分为两个区域代码区:存放 CPU 执行的机器指令代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可代码区是只读的,使其只读的原因是防止程序意外地修改了它的指令全局区:全局变量和静态变量存放在此.全局区还包含了常量区, 字符串常

2022-06-07 11:41:02 76

原创 【论文翻译】VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation

摘要: 由于动态交通参与者(如行人和车辆等)和静态道路环境(如车道,交通灯等)的复杂表示以及之间的交互关系,在动态的,多交通参与者的场景下的行为预测是自动驾驶领域的一个重要问题。这篇文章提出了一个分层的图神经网络VectorNet,首先分别用向量表示不同局部空间的道路组成成员(包括动态交通参与者和静态道路环境),然后对所有的成员之间的高阶交互关系进行建模。与将动态交通参与者的运动轨迹和道路环境信息直接渲染在鸟瞰图像上并通过卷积神经网络对其进行编码的方法不同,我们的方法直接在矢量化的高精度地图上操作,避免了渲

2022-06-06 13:39:47 1794

原创 【C++基础】8. 结构体

结构体属于用户自定义的数据类型,允许用户存储不同的数据类型语法:通过结构体创建变量的方式有三种:示例:8.3 结构体数组作用: 将自定义的结构体放入到数组中方便维护语法:示例:8.4 结构体指针作用: 通过指针访问结构体中的成员示例:...............

2022-06-04 16:44:54 78

转载 【C++基础】7. 指针

指针的作用: 可以通过指针间接访问内存指针变量定义语法: 示例:指针变量和普通变量的区别提问:指针也是种数据类型,那么这种数据类型占用多少内存空间?示例:7.4 空指针和野指针空指针:指针变量指向内存中编号为0的空间**用途:**初始化指针变量**注意:**空指针指向的内存是不可以访问的示例1:空指针野指针:指针变量指向非法的内存空间示例2:野指针...............

2022-06-04 00:07:43 72

原创 【C++基础】6. 函数

作用: 将一段经常使用的代码封装起来,减少重复代码一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。函数的定义一般主要有5个步骤:1、返回值类型2、函数名3、参数表列4、函数体语句5、return 表达式语法:返回值类型 :一个函数可以返回一个值。在函数定义中函数名:给函数起个名称参数列表:使用该函数时,传入的数据函数体语句:花括号内的代码,函数内需要执行的语句return表达式: 和返回值类型挂钩,函数执行完后,返回相应的数据示例: 定义一个加法函数,实现两个数相加6.3 函

2022-06-01 22:39:52 95

转载 【C++基础】5. 数组

文章目录5.1 概述5.2 一维数组5.2.1 一维数组定义方式5.2.2 一维数组数组名5.2.3 冒泡排序5.1 概述所谓数组,就是一个集合,里面存放了相同类型的数据元素特点1: 数组中的每个数据元素都是相同的数据类型特点2: 数组是由连续的内存位置组成的5.2 一维数组5.2.1 一维数组定义方式一维数组定义的三种方式:数据类型 数组名[ 数组长度 ];数据类型 数组名[ 数组长度 ] = { 值1,值2 ...};数据类型 数组名[ ] = { 值1,值2 ...};

2022-05-29 14:15:52 159

原创 【C++基础】4. 程序流程结构

文章目录4.1 选择结构4.1.1 if 语句C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构顺序结构:程序按顺序执行,不发生跳转选择结构:依据条件是否满足,有选择的执行相应功能循环结构:依据条件是否满足,循环多次执行某段代码4.1 选择结构4.1.1 if 语句作用: 执行满足条件的语句if语句的三种形式单行格式if语句多行格式if语句多条件的if语句单行格式if语句:if(条件){ 条件满足执行的语句 }示例:int main() {

2022-05-25 16:35:01 145

原创 【argoverse】argoverse-api 安装

任务简介:自动驾驶轨迹预测可以使用 Argoverse 数据集进行训练,Linux 下 argoverse-api 的安装比较简单,但在安装过程中会出现一些错误。本文对遇到的错误及解决方法做个记录,方便以后更换环境时快速安装。1. Argoverse 数据集简介Argoverse数据集是由Argo AI、卡内基梅隆大学、佐治亚理工学院发布的用于支持自动驾驶汽车3D Tracking和Motion Forecasting研究的数据集。数据集包括两个部分:Argoverse 3D Tracking与A

2022-05-25 14:58:30 4336 12

原创 【PyTorch】torch-geometric 安装

任务简介:由于 torch-geometric 的安装需要一定的依赖,所以直接 pip install torch_geometric 安装会出现问题,并且 torch-geometric 的版本需要和 cuda 版本对应。本文记录 torch-geometric 的正确安装过程。(1)确认安装的 PyTorch 对应的 CUDA 的版本,比如 CUDA 10.2 或 cpu 版本(2)根据一、中的对应版本安装以下依赖pip install torch-scatter -f https://py

2022-05-25 14:13:12 1989 8

原创 【C++基础】3. 运算符

文章目录3.1 算术运算符3.2 赋值运算符3.3 比较运算符3.4 逻辑运算符运算符作用: 用于执行代码的运算本章我们主要讲解以下几类运算符:运算符类型作用算术运算符用于处理四则运算赋值运算符用于将表达式的值赋给变量比较运算符用于表达式的比较,并返回一个真值或假值逻辑运算符用于根据表达式的值返回真值或假值3.1 算术运算符作用:用于处理四则运算算术运算符包括以下符号:运算符术语示例结果+正号+33-负号

2022-05-24 11:10:16 140

原创 【C++基础】2. 数据类型

文章目录2.1 整型2.2 sizeof关键字2.3 实型(浮点型)C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存2.1 整型作用:整型变量表示的是整数类型的数据C++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同:数据类型占用空间取值范围short(短整型)2字节(-2^15 ~ 2^15-1)int(整型)4字节(-2^31 ~ 2^31-1)long(长整形)Windows为4字节,Linux为

2022-05-22 16:40:12 549

原创 【C++基础】1. 基本语法

1.1 Hello world输入:#include<iostream>using namespace std;int main() { cout << "Hello world" << endl; system("pause"); return 0;}输出:Hello world1.2 注释作用:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码两种格式单行注释:// 描述信息通常放在一行代码的上方,或者一条语句的

2022-05-22 16:33:41 121

原创 【论文翻译】TNT: Target-driveN Trajectory Prediction

文章目录1. 介绍TNT:基于目标驱动的轨迹预测摘要: 预测移动主体的未来行为,对于现实世界的应用至关重要。这是具有挑战的,因为主体的意图和相应的行为是未知的并且本质上是多模态的。我们的关键见解是:对于中等时间范围内的预测,未来模式可以被一组目标状态有效地捕获。这就引出了我们的目标驱动轨迹预测(TNT)框架。TNT有三个端到端训练的阶段。它首先通过编码主体与环境和其他主体的交互来预测主体未来T步的潜在目标状态。然后TNT生成以目标为条件的轨迹状态序列。最后阶段估计轨迹可能性并选择最终紧凑的轨迹预测集。

2022-05-02 19:08:23 2377

原创 【自动驾驶】Apollo预测模块入门

文章目录1. 简介2. 不同的预测方式3. 基于车道序列的预测4. 障碍物状态5. 预测目标车道6. 递归神经网络7. 递归神经网络在目标车道预测的应用8. 轨迹生成1. 简介无人车是在许多物体间穿梭行驶,其中许多物体本身就是一直在移动的,比如像其他汽车、自行车、行人。无人车需要预测这些物体的行为,这样才能确保做出最佳决策。在环境中为所有其他的物体做出预测,这些共同形成了在一段时间内的预测路径,在每一个时间段内会为每一辆汽车重新计算预测他们新生成的路径,这些预测路径为无人车在规划阶段做出决策提供了必要信

2022-05-01 21:43:31 1337

原创 【目标检测】YOLOv1-v3 原理

1. YOLOv11.1 论文思想1)将一幅图像分成SxS个网格(grid cell),如果某个object的中心落在这个网格中,则这个网格就负责预测这个object。如何确定目标的中心?答:标注时bounding box的中心即为目标的中心。2)每个网格要预测B个bounding box,每个bounding box除了要预测位置之外,还要附带预测一个confidence值。论文思想 每个网格还要预测C个类别的分数。B一般取2,C为pascal voc数据集的目标类别数,故取20。..

2022-04-25 23:08:53 2866

原创 【BERT】模型返回值解析

以调用的BERT预训练模型为例:outputs = self.bert(input_ids, attention_mask=attention_mask, token_type_ids=token_type_ids)outputs 包含4个:sequence_output, pooled_output, (hidden_states), (attentions)BERT返回值官方解释:Return: :obj:`tuple(torch.FloatTensor

2022-03-03 17:04:53 2993 4

原创 【机器学习算法】5.支持向量机(笔记)

线性可分支持向量机拉格朗日乘子法求带有等式约束的极值问题拉格朗日乘子法求带有不等式约束的极值问题线性可分支持向量机目标函数求解总结:线性可分支持向量机算法线性支持向量机线性支持向量机目标函数优化非线性支持向量机核函数非线性支持向量机目标函数SVM总结...

2022-02-10 16:10:09 591

原创 【LeetCode】初级算法:三、链表

文章目录3.1 删除链表中的节点链表问题相对容易掌握。 不要忘记 “双指针解法” ,它不仅适用于数组问题,而且还适用于链表问题。另一种大大简化链接列表问题的方法是 “Dummy node” 节点技巧 ,所谓 Dummy Node 其实就是带头节点的指针。"我们推荐以下题目:反转链表,合并两个有序链表和链接环。更有额外的挑战,你可以尝试运用 递归 来解决这些问题:反转链表,回文链表和合并两个有序链表。"3.1 删除链表中的节点请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要

2022-01-16 20:41:11 148

空空如也

空空如也

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

TA关注的人

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