归并排序,快速排序 归并排序//归并排序void merge(vector<int>& a, int L, int R, int mid){ vector<int> help(R - L + 1); int L_part = L; //左部分数组指针 int R_part = mid + 1;//右部分数组指针 int s = 0; while (true) { //左指针不越界:L_part <= mid while (L_part <= mid &am
服务器神器——tmux 文章目录先说废话安装tmux使用tmux启动tmux查看窗口新建窗口窗口会话分离接入、杀死会话先说废话深度学习训练一个模型至少需要几个小时、几天甚至更久,其中万一断网或者电脑死机导致命令窗口关闭,窗口中执行的会话将会自动停止,这会带来很多不便,因此如果能将会话和窗口分离(窗口关闭会话也不影响)那必定是最好的结果。以前本菜用的nohup,发现不是很方便,后来大神介绍本菜一个利器——tmux,瞬间爽爆!果断放弃nohup!安装tmuxsudo apt-get install tmux使用tmux启动
mmdetection3d 环境配置 文章目录@[toc]安装cuda、cudnn安装mmdetection3d安装torch安装mmcv-full安装mmdet安装mmseg降级gcc编译mmdet3d处理kitti数据集查看版本: conda list + 包名版本:cuda 10.1python 3.7torch 1.7.1mmcv-full 1.4.0mmdet 2.14.0mmsegmentation 0.14.1gcc 5.5mmdet3d 0.17.2安装cuda、cudnncuda、cudnn安装教程
miniconda for Linux 下载wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.shbashbash Miniconda3-latest-Linux-x86_64.sh过程中按空格继续或者输入yes+Enter键或者直接Enter,详情见链接初始化环境变量 source ~/.bashrc然后就会出现(base)环境...
相机投影原理、相机模型中的坐标系统以及标定方法(转载) 文章目录0 引言1 相机投影中的坐标系及其转换关系1.1 世界坐标系与相机坐标系1.2 相机坐标系与图像坐标系:称为摄像机模型以及投影矩阵1.3 图像坐标系与像素坐标系1.4 从世界坐标系到像素坐标系的转换方程1.5 综述2 成像中的误差2.1 光芯偏移误差与单像素点矩形(非正方形)误差2.2 透镜畸变3 相机标定过程中的内参、外参与畸变参数求解3.1平面单应性矩阵求解3.2 棋盘角点个数和参数个数3.3 单应性矩阵分解得到内外参矩阵3.4 畸变参数求解4 单目标定与双目标定原文链接!!!!!!!!!0
WeChat for Linux Wechat for Linux安装docker链接(前提)https://yeasy.gitbook.io/docker_practice/install/ubuntu知乎安装链接https://www.zhihu.com/question/39977685github安装链接https://github.com/huan/docker-wechatissue 链接(若出现没有权限创建目录,sudo也不行)链接: https://github.com/huan/docker-wechat/
nohup --- 远程服务器离线训练 nohup python -m xxx.py > my_logs.txt 2>&1 &xxx.py是想要运行的程序,运行的也可以是xxx.sh终端将不会输出任何日志,日志会存放到my_logs.txt里,my_logs.txt放在当前运行所在的目录下。
剑指offer07——重建二叉树 前、中序遍历有何意义?已知条件:前序,中序遍历,重建二叉树。给出的前序、中序遍历各自有什么意义呢?前序遍历:根–>左–>右,不难看出无论何时前序遍历第一个肯定是根节点,因此我们找到了根!剩下只要找到左孩子和右孩子就行了,把左子树、右子树抽象成只有一个节点:左孩子、右孩子,找到这俩孩子就能重构树了,递归就是一个抽象、抽象、抽/(ㄒoㄒ)/~~象的过程!!!我们看中序遍历:左–>根–>右,咦,只要知道了根节点在哪,左孩子右孩子就在左右两侧,因此我们就可以通过中序遍历找出左右孩子
剑指offer41——图文详解堆排序 堆数据结构以及堆的应用大根堆的维护大根堆插入元素堆排序大根堆的维护堆数据结构可以模拟成完全二叉树(每一层节点都是从左到右添加,这层满了才能添加下一层),堆又可以用一个数组来表示如下图(实际上底层就是个数组,树只是更直观地表达而已)这棵树有很好的性质:1:已知父节点下标为k,那么左孩子下标为2k,右孩子为2k+1(如果左右孩子都存在的情况下)2:已知子节点(左右孩子都一样)下标为i,那么父节点下标为(i/2),如果i/2=0那么该节点没有父节点。我们先说如何通过已有的数组维护成一个大根堆(小根堆
神奇的汉诺塔(图文解析) 汉诺塔游戏规则…三根神柱子,移动上面的大饼,规则每次只能移动一个饼,整个过程中大饼必须要在小饼的下面…三根神柱子取名:‘From’ ‘Help’ ‘To’… 千万别纠结这三根柱子的位置,只需要知道’From’是大饼们出发的那根神柱,‘To’是大饼们到达的那根神柱,但是大饼们需要通过借助另一根神柱才能到达,它就是’Help’!!!千万别纠结位置啊.大饼们开始出发…不纠结于细节,从宏观看步骤一:总共n个大饼,n=3,我们只要将上面n-1个小饼从From借助To移动到Help,然后…步骤二:将最
C++字符串和数字转换完全攻略(转载) 文章目录使用字符串流对象进行数字转换数字转换字符串函数字符串转换数字函数(stoX)toi()和stoi()函数的用法和区别以字符串形式存储的数字和以数字形式存储的数字之间是有区别的。例如,字符串 “2679” 就不是一个数字:它是由 2、6、7、9 这 4 个字符的 ASCII 码组成的序列。由于字符串 “2679” 不是一个数字,所以编译器将不允许对它进行加法、乘法和除法之类的数学运算。以数字表示的字符串必须首先转换为数字形式,然后才能与算术运算符一起使用。同样地,数字形式的程序值,例如 int、
C++ 类中函数指针的使用 文章目录函数指针用法类中的成员函数接收函数指针情况1情况2情况3总结函数指针用法函数指针可以作为一个函数的参数,传不同的函数指针给这个函数就可以让其实现不能的功能。从而我们可以复用这个函数剩余的大部分结构,而不用设计两个只有一点点不同的函数。举个简单的例子,==假如!!!==我这个math函数还有很多操作(发挥下想像力),只有一小部分不同,一个要得到加法结果、一个要得到乘法结果,那么我完全可以只设计一个math函数,把不同的部分(加、乘)拿出去,按照实际情况调用不同功能函数的指针进math函数就行了。
C++ 枚举enum 枚举是种特殊的数据类型,也可以理解为它代表整形数据int既然它某种程度上就等于int,为何还要多此一举?假设现在你利用数组创建了一个万人的成绩单,并且每个人的位置创建完就保持不动,只能修改成绩。你当然可以用0~9999来索引每个人的成绩,又假设你记忆很好,创建完当天你居然能记住所有人的索引,我让你修改Shan的成绩,你记得她的idx为413,然后你就操作scores[413]=99,出色的完成了任务。但是一个星期之后我发现某些成绩不对,再次需要修改,你还能清楚地记得所有人对应的idx吗?(不能用哈希表作
ubuntu教程:写出第一个最简单的CMakeLists.txt 首先简单看下这个小项目:交换两个数字,代码不难,主要用来讲解cmake的编写,cmake也写的比较简单,适合入门,请各位高手指教。两个源文件:main.cpp、swap.cpp一个头文件swap.h一个CMakeLists.txt文件 注意!大小写,还有最后的s提示:上面截图的终端部分就是我编译以及运行的指令,由于我可执行文件生成在bin,所以cd 到bin再执行程序的[先看完下面的教程再回来看指令也行]熟悉了整个工程之后就开始cmake的旅途~~~我把完整的注释都写在cmake文件里面了
手撕yolo3系列——详解train训练代码(详细注释) 上一节:详解yolo3整体网络代码本节代码所在文件pytorch_yolo3/train.py主程序pytorch_yolo3/nets/yolo_training.py子程序文章目录回顾编码编码成什么样怎么编loss的产生YOLOLoss类内容回顾这节不再一行行的按顺序读代码了(大型的程序一般都是一层一层地往里剥),讲解代码时我会尽量配相应的图来加以说明整套流程的思路,对!主要是思路。先把程序放一边,回顾历史,然后想想当下该干嘛。前面两节主要在搭建网络(模型),搭建好了只要输入一张图片就可以得
手撕yolo3系列——详解yolo3整体网络代码(详细注释) 上一节:详解主干网络darknet53代码上一节构建完了主干网络darknet53(backbone),这一节构建完整的yolo3网络。还记得吗?arknet# 输出三路分支 out3 = self.layer3(x) out4 = self.layer4(out3) out5 = self.layer5(out4) return out3, out4, out5...
手撕yolo3系列——详解主干网络darknet53代码(详细注释) 本文代码基于yolov3的pytorch版本。文章目录darknet53网络结构残差块结构darknet53网络结构文字版:卷积+(下采样卷积+1残差块)+(下采样卷积+2残差块)+(下采样卷积+8残差块)+(下采样卷积+8残差块)+(下采样卷积+4*残差块)鸣谢:图片来源是不是很有规律?不难看出,darknet53就是重复堆叠下采样卷积+n*残差块(n为残差块的个数)这个结构而组成的。而更基本的结构就是残差块了,因此我们先构建出残差块,然后重复堆叠上述结构darknet53就完成了。残差块结