/images/avatar.jpg

我的个人博客

LabelMe简单使用

LabelMe安装 参考 Ubuntu 1 2 3 4 5 6 7 8 9 # Ubuntu 14.04 / Ubuntu 16.04 # Python2 # sudo apt-get install python-qt4 # PyQt4 sudo apt-get install python-pyqt5 # PyQt5 sudo pip install labelme # Python3 sudo apt-get install python3-pyqt5 # PyQt5 sudo pip3 install labelme 基本操作 1 2 3 4 5 6 7 8 9 10 labelme # 打开labelme软件 labelme apc2016_obj3.

git常用指令

如何在本地创建一个本地仓库并推送到github 1 2 3 4 5 6 7 8 git init #通过git init命令把这个目录变成Git可以管理的仓库 git add *** #用命令git add告诉Git,把文件添加到仓库,可以多次add不同的文件 (git add .)#添加所有文件 git commit -m "***" #用命令git commit告诉Git,把文件提交到仓库,简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。commit可以一次提交很多文件. 4. 登陆GitHub,创建一个新的仓库,(选择建立readme文件) 5. git remote add origin git@github.com:shilongshen/learngit.git #将本地库与远程库关联,其中learngit为仓库名 6. git pull --rebase origin master#将github中的README.md文件合并到本地代码目录中 7. git push -u origin master#把本地仓库的内容推送到GitHub仓库 将修改提交到仓库 1 2 3 4 5 6 7 8 9 git add #(将文件提交到缓冲区) #几种git add 命令: git add -A #保存所有的修改 git add .

B树、B+树和红黑树

B树 2-3树和2-3-4树 多路查找树,其每个节点的孩子数可以多于两个,且每一个结点处可以存储多个元素,所有的元素之间存在某种特定的排序关系。 首先聊一聊2-3树: 每个节点具有两个孩子(2结点)或 三个孩子(3结点) 2结点具有一个元素和两个孩子(或没有孩子),左子树元素小于该元素,右子树元素大于该元素。这个2节点要么没有孩子,要有就有两个,不能只有一个孩子。 3结点具有两个元素和三个孩子(或没有孩子),左子树元素小于较小元素,右子树元素大于较大元素,中子树包含介于两元素之间的元素。这个3节点要么没有孩子,要有就有3个。 2-3树中的所有叶子都在一个层次上。 同理,2-3-4树是2-3树的拓展,包括了4结点的使用。一个4结点包含了小中大三个元素和四个孩子(或没有孩子) 而2-3树和2-3-4树都是B树的特例 2-3树的插入和删除 再聊一聊2-3树的插入和删除操作 插入操作:与二叉排序树相同,插入操作一定是发生在叶子结点的。 对于空树,直接插入一个2结点 对于2结点的插入:直接将2结点转换为3结点即可 对于3结点的插入一个新元素:因为3结点本身已经是2-3树结点的最大容量,因此需要将其拆分,将树中两元素或插入元素的三者中选择其一向上移动一层。 例如插入元素5,需要将6向上移动一层 删除操作: 所删除元素位于一个3结点的叶子节点上,直接将该节点删除 所删除的元素位于一个2结点的叶子节点上,分为4种情况 此节点的父结点也是2结点,且拥有一个3结点的右孩子 例如删除结点1,只需要进行左旋,让6成为父节点,4成为6的左孩子,7为6的右孩子 此节点的父结点也是2结点,且拥有一个2结点的孩子 此节点的父结点是3结点 当前树是一颗满二叉树 所删除元素位于非叶子结点。此时通常是将树按中序遍历后得到此元素的前驱或后继元素,考虑让他们来补位即可 描述一颗B树时需要指定它的阶数 每一个结点都可以存储多个数据,我们可以进一步的将其细分为 B+树 B+树的优点 单一节点存储更多的元素,使得查询的IO次数更少。

二分查找

二分查找思路1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public int Search(int[] nums,int target){ int left=0; int right=nums.length-1; while(left<=right){ int mid=left+(right-left)/2; if(nums[mid]==target){ return nums[mid]; } else if(nums[mid]>target){ right=mid-1; } else{ left=mid+1; } } return -1; } 二分查找的思路2 排除法:考虑中间元素nums[mid] 在什么情况下不是目标元素 思路:将待搜索区间分为2个部分,一部分一定不存在目标元素,另一部分可能存在目标元素 写二分查找的一般步骤: 将循环条件设置为while(left<right) 写if和else语句的时候,思考nums[i]满足什么性质时,nums[mid]不是目标元素,接着判断mid的左边有没有可能存在目标元素,mid的右边有没有可能存在目标元素。 根据“边界收缩行为”修改中间数的行为 int mid = left +(right - left)/2 “/” 是整数除法,默认的取整行为是向下取整,这会带来一个问题:int mid = left +(right - left)/2 永远取不到右边界right,对应的是mid被分到了左边区间。在面对left=mid和right=mid-1这种边界收缩时,就有可能产生死循环。 退出循环后,看是否需要对nums[left]是否是目标元素再做一次检查。 参考 链接

IEEE会议论文Latex模板的使用

注意,此处是会议论文模板的使用(期刊模板类似);解决的问题为外部bib文件的引用 模板下载地址:链接或链接 注意此时参考文献只能够在tex文件内部编辑,比较麻烦。如果我们已经有了外部的bib文件,例如 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 @inproceedings{goodfellow2014generative, title={Generative Adversarial Nets}, author={Goodfellow, Ian and Pouget-Abadie, Jean and Mirza, Mehdi and Xu, Bing and Warde-Farley, David and Ozair, Sherjil and Courville, Aaron and Bengio, Yoshua}, booktitle={Advances in neural information processing systems}, pages={2672--2680}, year={2014}, } @inproceedings{men2020controllable, title={Controllable Person Image Synthesis with Attribute-Decomposed GAN}, author={Men, Yifang and Mao, Yiming and Jiang, Yuning and Ma, Wei-Ying and Lian, Zhouhui}, booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition}, pages={5084--5093}, year={2020} } 我们可以直接通过外部bib文件的引用的方式导入已有的参考文献。首先下载链接,打开bibtex文件夹,这里面包含了ieee的参考文献格式定义。将IEEEtran.

算法复杂度分析

执行时间: 时间复杂度 内存消耗:空间复杂度 一般更关注于时间复杂度,(所以常用空间换时间) 时间复杂度 大$O$记号 $O(g(N))$:代表了一个复杂的表达式,是关于输入规模$N$的函数的上界 $g(N)$:关于输入规模$N$的简单表达式,$N$可以理解为输入数据的个数 随着输入规模的增加,程序的运行时间将以什么样的速度增加。 时间复杂度的计算规则 如果一个算法执行的操作数于输入数据的规模$N$的表达式为多项式: $$ aN^2+bN+c $$ 时间复杂度忽略加法常数项 只保留最高次幂项 并且最高次幂项的乘法系数视为1 所以上式可看为 $$ N^2 $$ 所以时间复杂度就为$O(N^2)$ 注意:时间复杂度只有当输入规模特别大时才有意义 时间复杂度的数学表达式 $O(g(n))={f(n):存在正常量c和n_0,使得对所有n\geq n_0,有0 \leq f(n) \leq cg(n)}$ $O(g(n))$是$f(n)$的上界,等价于:$\lim\limits_{n \rightarrow \infty }\frac{f(n)}{g(n)} <= c$ 空间复杂度 空间复杂度表达了在处理过程中,使用的额外空间,也是用大$O$记号。 参考 链接