自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GCC各版本对C++的支持情况

C++版本GCC版本支持情况GCC版本指定版本的命令标志C++98完全支持是GCC 6.1之前版本的默认模式-std=c++98 or -std=gnu++98C++11完全支持从GCC4.8.1版本开始完全支持-std=c++11 or -std=gnu++11C++14完全支持从GCC 6.1版本开始完全支持,是GCC 6.1到GCC 10 (包括) 的默认模式-std=c++14 or -std=gnu++14C++17完全支持从GCC

2023-09-11 17:36:56 2793

转载 多线程程序中fork容易导致fork出来的子进程中死锁

前言:exce调用并不创建新进程,所以前后的进程ID并未改变,exec只是用一个全新的程序替换了当前进程的正文、数据、堆和栈段多线程程序里不准使用fork :为什么???UNIX上C++程序设计守则3准则3:多线程程序里不准使用fork在多线程程序里,在”自身以外的线程存在的状态”下一使用fork的话,就可能引起各种各样的问题.比较典型的例子就是,fork出来的子进程可能会死锁.请不要,在不能把握问题的原委的情况下就在多线程程序里fork子进程.能引起什么问题呢?那看看实例吧.一执行下面的代码,

2020-12-19 21:13:09 1102 1

原创 浅析void*

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、我是怎么写错的二、错上加错三、根因分析总结void*的释放void*不可以解引用代替泛型的轻量化实现前言好久没写了,记录一下前段时间用void*的错误用法一、我是怎么写错的我就不上来说void*是啥啥啥,然后再来一堆指针的预备知识了。handle_t handle = reinterpret_cast<handle_t>(...func());class A { public: void*

2020-12-12 22:00:48 239

原创 Linux杂记

软链使用绝对路径肯定是没毛病的,那么什么时候能用相对路径呢,即adduser和useradd建议adduser,用法adduser username,该命令会自动创建用户家目录、指定shell版本、用户密码。。。useradd直接用的话(useradd username)会创建一个三无用户(无home,无指定shell版本,无密码。。惨兮兮的),当然肯定是有一系列选项可以设置最后创出一个完备的用户,但是何必呢。删除用户: userdel username, 如果要将该用户在系统上的文件也删除掉,那

2020-05-28 23:04:55 144

原创 final&&override标识符

final&&override标识符finalfinal作用: 限制某个类不能被继承,或者某个虚函数不能被重写class A{ //限制虚函数不能被重写,适用场景通常是一些老接口(避免重写) virtual void foo() final;}class B final : public A{}class C final{}//上述两种方式B和C都不能被继承,不管他们是不是子类override确保子类中声明的重写函数和父类的虚函数有相同的签名,同时是明确的表示

2020-05-25 21:18:41 154

原创 委托构造函数&&继承构造函数

委托构造函数&&继承构造函数委托构造函数适用场景注意继承构造函数使用场景委托构造函数允许同一个类中一个构造函数调用另一个构造函数,作用:简化变量的初始化。适用场景class class_c { public: int max_; int min_; int middle_; class_c() {} class_c(int max) { max_ = max > 0 ? max : 10; } class_c(int ma

2020-05-24 01:00:30 253

转载 使用 tf.train.Saver()保存模型

标题关于模型保存的一点心得saver = tf.train.Saver(max_to_keep=3)在定义 saver 的时候一般会定义最多保存模型的数量,一般来说,如果模型本身很大,我们需要考虑到硬盘大小。如果你需要在当前训练好的模型的基础上进行 fine-tune,那么尽可能多的保存模型,后继 fine-tune 不一定从最好的 ckpt 进行,因为有可能一下子就过拟合了。但是如果保存太...

2019-11-17 00:02:41 545

原创 求前K个素数的几种方法

现在有一个问题,输入K,求前K个素数或者说求第K个素数。常规的想法,就是从0开始往后遍历,是素数就存起来,直到找到第K个。 我们这里介绍三种筛选素数的方法:埃式筛法、线性筛法、6倍数判别法。埃式筛法#include&amp;lt;iostream&amp;gt;#include&amp;lt;cmath&amp;gt;#include&amp;lt;cstdlib&amp;gt;using namespace std;...

2018-08-22 11:11:17 1313

原创 RNN和LSTM

-RNN(递归神经网络)当我们阅读这篇文章的时候,并不是每次都从头开始思考每个词每句话的意思,我们会自然而然地根据之前的语境(也即前面的词)去理解每个词、每句话。这就是说我们的想法是有持久性的。 传统的神经网络对于事件的时序性似乎没有什么好办法,比如现在要对电影中每个时间点发生的事件进行分类,传统的CNN并不会利用对电影先前时间的推理来得到后者的结果。 RNN解决了这个问题。它是具...

2018-08-22 10:21:39 876

原创 A*算法和dijkstra算法

A*算法和dijkstra算法都是启发式搜索,dijkstra算法可以看成是广度优先搜索,而A*可以认为是深度优先搜索。 A*可以轻松地用在比如无人机航路规划中,而dijkstra建立在较为抽象的图论层面。 A*算法主要是有两张表, 一个open表,一个是close表。 1. 将起点加入open表。 2. a)遍历open list,找F(F = G + H)值最小的节点,把他作为当前要操...

2018-08-10 16:42:55 13698 1

原创 KMP的一些理解

KMP这个东西一直是看了忘忘了看。今天又看了一遍,记一下,以后忘了的话能想得快一点。KMP和朴素的字符串匹配不同点在于:传统的字符串匹配主串和模式串在匹配失败的时候都需要回退(主串退到开始匹配位的后一位,模式串退到自己的开头),时间复杂度O(m*n);而KMP的主串是始终不会退的,它利用了当前匹配失败字符之前的子字符串信息,用了一个next数组保存这个信息。这里利用的信息是已匹配字符子串的最...

2018-08-09 15:11:58 117

原创 EM算法和极大似然估计的联系

之前写过一篇如何理解EM算法和一篇极大似然估计的博客,但是感觉两者很疏远,其实是有很大联系的。这篇博客就是把他俩连起来说一说,主要是这样方便记忆...

2018-08-08 20:54:41 501

转载 C++常用的几何计算算法

转载备用,应该挺全的,有没有的再补吧,哈哈 #include&lt;cstdlib&gt;#include&lt;cmath&gt;#include&lt;cstdio&gt;#include&lt;algorithm&gt;#define max(a,b) (((a)&gt;(b))?(a):(b))#define min(a,b) (((a)&gt;(b))?(b):(a)...

2018-08-02 19:17:10 1613

转载 pycharm常用快捷键及设置

pycharm高频率使用的快捷键Ctrl+Shift+F10 运行当前的页面Ctrl + / 注释(取消注释)选择的行Ctrl+Shift+F 高级查找Shift + Enter 开始新行TAB Shift+TAB 缩进/取消缩进所选择的行Ctrl + Y 删除当前插入符所在的行Ctrl + D 复制当前行、或者选择的块Ctrl + Shift + J 合并行D...

2018-05-14 13:55:31 204

原创 各种排序不为人知的真相(二)

归并排序利用了分治思想(将原问题分解成若干类似于原问题的子问题,递归对子问题求解,然后合并子问题的解得到原问题的解)进行排序。分解: 分解待排序序列,把n个记录不断二分直到分成单个记录。解决: merge对子序列排序。合并: 合并已经排好序的序列。整个排序过程如图:归并排序在合并的时候是比较两个子序列的第一个元素,选较小的那个放入临时数组,然后指针前移,继续比较两个子序列的第一个元素,直到某个序列...

2018-05-10 15:20:38 139

原创 对K,要不起

KNN算法是一种分类算法,和Kmeans是看起来像但可以说没啥关系。KNN的数据集都是带label的(监督学习),整个分类过程类似于一种投票机制。这里KNN的K指的是当我们给样本x分类的时候,我们就从数据集里找跟x距离最近的k个数据点,然后选k个数据点中类别最多的类给x。比如上图:k的取值是能直接决定分类效果的,当k取3时,绿点应被归为红三角(2 &gt;1);当k取5是,绿点又被归为蓝方块(3&...

2018-05-08 13:48:48 721

原创 如何理解EM算法

EM算法是极大似然解的一种算法。当使用基于极大似然估计的模型时,模型中存在隐变量,就要用到EM算法进行参数估计。以投硬币为例说明:现有两枚硬币1和2,随机投掷正面朝上的概率是P1和P2,然后为了估计这两个概率做了上面的实验,我们可以很容易得出P1 = (3+1+2)/15 = 0.4p2 = (2+3)/10 = 0.5为了使用我们的EM算法,我们加入隐变量,即还是上面的实验,但是我们抹去每轮投掷...

2018-04-27 14:26:20 564

原创 DFS--记忆化DFS--DP之间的联系

我在DP这块一直挺乱的,做2017年校招真题(输出1,2,3...n中和等于m的所有可能组合)的时候,当时用的DFS,做完之后感觉怎么跟DP有点像呢,然后就搜了一下大佬们都怎么看这个问题的,结果确实是有那么一点联系的。以数字三角形为例:给出一个数字三角形,从顶部到底部有很多路径,求路径最大和。如:73   88   1   02   7   4   44   5   2   6   5朴素DFS的...

2018-04-24 14:16:10 3168 1

原创 各种排序不为人知的真相

常用的排序算法有:交换排序(冒泡排序、快速排序)选择排序(直接选择排序、堆排序)插入排序(直接插入排序、二分插入排序、希尔排序)归并排序、基数排序直接选择排序和冒泡排序的比较void bubblesort(vector&lt;int&gt;&amp; list){ for (int i = 0; i &lt; list.size(); i++) for (int j = 0; j &lt; ...

2018-04-20 14:52:50 160

原创 不申请额外空间进行整数或者字符串交换

以整数为例:int x = 7, y = 8;x += y;y = x - y;x = x - y;更通用一点的做法是用异或int x = 7, y = 8;x = x ^ y;y = x ^ y;    //x^y^y=xx = x ^ y;    //x^y^x=y用加法交换就是把x作为临时变量存储,代替常用的tmp用异或交换是利用异或运算的性质,一个数异或本身等于0,,一个数...

2018-04-20 14:31:30 444

原创 极大似然估计(加实例推导)

极大似然估计:已知X是离散型随机变量,可能的取值有0,1,  2。对应概率为:这里X更具体解释的话,可以理解为抛两次硬币,正面记1,反面记0,结果累加,只不过这里的硬币特殊,抛到反面的概率是θ。这时对X抽取容量为10的样本,其中有2个0、5个1、3个2,求θ的最大似然估计值。套用大佬的总结,最大似然估计法的步骤:1.  写出似然函数;2.  对似然函数取对数,并整理...

2018-04-14 23:18:23 13526

原创 小易喜欢的数列(网易18校招内推)

小易非常喜欢拥有以下性质的数列: 1、数列的长度为n 2、数列中的每个数都在1到k之间(包括1和k) 3、对于位置相邻的两个数A和B(A在B前),都满足(A &lt;= B)或(A mod B != 0)(满足其一即可) 例如,当n = 4, k = 7 那么{1,7,7,2},它的长度是4,所有数字也在1到7范围内,并且满足第三条性质,所以小易是喜欢这个数列的 但是小易不喜欢{4,4,4,2}这...

2018-04-12 13:21:43 533

原创 利用米勒投影法实现经纬度和平面坐标的相互转换

      常用的地球经纬度与平面坐标的转换方法有米勒投影、墨卡托投影、横轴墨卡托投影(也叫UTM投影,百度地图api就用的是这个)、高斯-克吕格投影、Lambert等角正割圆锥投影等       因为我这里需求是地球经纬度坐标转平面笛卡尔坐标,所以选和墨卡托投影方式类似的米勒投影。这种投影简单是说,就是假设有一个和赤道垂直的圆柱套在地球上,然后在地心点亮一盏灯,灯光将地球各个点投影在圆柱上,在把...

2018-03-18 00:04:47 27307 11

原创 逻辑回归:从入门到精通

文章链接为:http://www.tianyancha.com/research/LR_intro.pdf这个很强

2018-01-31 15:29:04 598

转载 梯度下降

http://www.cnblogs.com/rcfeng/p/3958926.html题记:最近零碎的时间都在学习Andrew Ng的machine learning,因此就有了这些笔记。 梯度下降是线性回归的一种(Linear Regression),首先给出一个关于房屋的经典例子,面积(feet2)房间个数价格(1000$)21043

2018-01-08 10:13:24 164

翻译 Python极简入门(三)

广播Broadcasting广播可以让Numpy不同大小的矩阵进行数学计算,e.g.把一个向量加到矩阵每一行import numpy as np# We will add the vector v to each row of the matrix x,# storing the result in the matrix yx = np.array([[1,2,3], [4,5,6

2017-12-27 10:34:43 403

翻译 Python极简入门(二)

NumpyNumpy是Python科学计算的核心库数组Arrays:一个numpy数组是一个由不同数值组成的网格,网格里的数据都是一种类型,可以通过非负整型元组访问。数组的大小是一个由整型数构成的元组,用以描述数组不同维度上的大小。创建数组可以用列表,然后方括号访问:import numpy as npa = np.array([1, 2, 3]) # Create a ra

2017-12-20 14:25:27 195

翻译 Python极简入门

x = 3x = 3

2017-12-11 13:51:06 278

原创 centos上目标检测(三)

这是三****************************************************************************************************************************************************

2017-12-08 09:47:15 439

原创 centos上目标检测(二)

接上一篇准备工作,需要编译py-faster-rcnn下自带的pycaffe,编译过程跟正常编译caffe一样。复制Makefile.config.example为Makefile.config,并修改,这里用CPU版,使用打开CPU_ONLY:=1;打开opencv: USE_OPENCV:= 1,opencv版本改成实际版本;BLAS打开按实际修改,我用的openblas,所以BLAS:=

2017-12-07 15:02:52 244

原创 centos上目标检测(一)

faster-rcnn一、先下载faster-rcnn的源码:https://github.com/rbgirshick/py-faster-rcnngit clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git--recursive很重要,当克隆一个含有子模块的项目时,默认会包含子模块目录,但是没有任何文件

2017-12-04 16:05:05 215

原创 centos上更新Python版本

先下载Python包:wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz解压:tar -zxvf Python-3.5.1.tgz安装三连击:./configure --prefix=/usr/local/python/python3   --》 make --》 make install(--prefix很必要,

2017-11-27 10:44:01 487

原创 centos上编译caffe(二)

接上一篇写,安装完依赖项以后又出了一堆错。。第一个mkl_alternate.hpp错误:一堆‘cblas前缀’的在此作用域未声明,从错误提示看应该是openblas的问题,openblas是矩阵运算库,这里可选atlas、MKL,caffe里默认是atlas,好像MKL针对CPU优化过,速度上快一点,这里安装的是openblas,不知道安装位置的终端用whereis,因为这里需要在Makef

2017-11-21 14:54:42 528 5

原创 centos上安装caffe

其实是在中标麒麟上安装caffe。。第一个问题是中标麒麟自带的yum源啥也下不下来,所以第一步删除yum源yum关键是要有可靠的repository即软件仓库,它可以是http或者ftp站点,也可以是本地软件池,但是必须要有rpm的header,header包括了RPM包的各种信息,比如:功能、描述、依赖性等。yum的理念是使用一个中心仓库(repository)管理一部分设置一个di

2017-11-06 15:50:33 389

原创 caffe目标检测踩坑记(三)

caffe-Windows-c++搭建自己的项目,参考博客http://www.cnblogs.com/love6tao/p/5847480.html。涉及到几个步骤:1.添加包含目录::右键属性-->VC++目录,debug和release不太一样,但是类似。这是debug版的。2.添加库目录::右键属性-->VC++目录。3.填写相应的lib,同样debug和relea

2017-09-12 20:59:04 402

原创 caffe目标检测踩坑记(二)

1.opencv使用imread读不到图片的问题:OpenCV Error: Assertion failed (ssize.area() > 0) in cv::resize, file C:\**************************https://stackoverflow.com/questions/21581858/c-opencv-assertion-failed-i

2017-09-08 20:42:29 2105

原创 使用ffmpeg获取关键帧图片

这里使用FFmpeg用来对UAV传回来的视频进行分析(目标检测)的第一步----提供测试图片集。下面是使用FFmpeg提取视频关键帧的步骤:1.安装FFmpeg:直接官网下载或者云下载链接:http:// pan.baidu.com/ s/1eR4 xy0a 密码:lmho。然后直接解压,添加环境变量就可使用。可以命令行输入FFmpeg -version测试安装是否成功:2.使用F

2017-09-06 21:32:31 6693 5

空空如也

空空如也

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

TA关注的人

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