自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (2)
  • 收藏
  • 关注

原创 conda指令以及如何安装tensorflow和pytorch

最近在学习深度学习的一些常用框架,如tensorflow和pytorch。总结一下遇到的常见问题!虚拟环境的建立在项目拷贝时非常有用,可以快速的在别人的电脑上搭建好环境并进行修改和演示。创建python虚拟环境。         使用 conda create -n your_env_name python=X.X(2.7、3.6等)命令创建python版本为X.X、名字为your_env_nam...

2018-06-01 17:13:41 10276 2

原创 从暴力递归到动态规划

文章和资源同步更新至微信公众号:算法工程师之路在之前的文章大家应该也接触到了一些递归的思想,递归的实质就是函数嵌套着函数,在第一个函数运行中间一定会运行多个函数,因此函数退出条件的设置一定要合理,否则会造成堆栈充满,程序异常退出!那我们今天来看看如何从暴力递归改成动态规划?动态规划的实质又是什么?什么情况下可以让暴力递归改成动态规划?暴力递归和动态规划的区别暴力递归:(自顶向下)...

2019-07-26 12:56:03 283

原创 最小生成树(Kruskal和Prim算法)

文章和资源同步更新至微信公众号:算法工程师之路8月份会在公众号开启每日算法题,值得期待哦~上一篇文章,我们讲了图的创建和遍历,其中遍历的算法主要有BFS(广度优先算法)和DFS(深度优先算法)两种,并且DFS算法对很多问题都有很好的启示!而今天我们要说一个非常实用的算法——最小生成树的建立!这是图论中一个经典问题,可以使用Kruskal和Prim两种算法来进行实现!什么是最小生成树在给...

2019-07-23 11:13:30 349

原创 开启图结构:图的创建和遍历

今天我们来聊一聊图结构,虽然在面试中图结构用的不多,但是我真的觉得图结构可以综合很多知识点,以及STL中容器的使用,并且需要很强大的逻辑性!是一个锻炼脑子的东西,并且Coding起来非常之爽~~图的建立我们使用算法来模拟图结构之前,需要首先搞清楚图结构都需要什么元素!一般来说我们将一张图定义为G=(V, E),其中集合V表示顶点(nodes),而集合E表示某一对顶点之间的关系,叫做边,如果这...

2019-07-20 14:43:03 443

原创 并查集详解和STL中的自定义哈希

文章和资源同步更新至微信公众号:算法工程师之路今天我们要介绍一种简单但对于合并和查找都十分高效的结构——并查集,其底层实现也十分简单,并且应用非常广泛,比如最小生成树算法中的Kruskal算法,里面有使用了并查集的结构!并且在并查集结构为了加速查找,底层使用基于hash的容器,在CPP中,叫做unordered_map! unordered_map是C++11标准的东西,其为基础类型提供了h...

2019-07-19 19:09:10 332

原创 多线程读取IP摄像头(Python版)

文章和资源同步发布于微信公众号:算法工程师之路在深度学习时代(这么说也不为过)的今天,我们做各种视觉任务时候都会想到使用深度学习,但是大家也都知道深度学习的模型如果想要使用的话,设备必须得有,虽然各种各样的量化策略和剪枝策略大大加速了模型的推理能力,但是实时的话在低配电脑还是不可用!但是实际中有些视觉任务不怎么依赖实时性,我们只需要保证1s处理一帧图片就可以了,或者几十秒处理一帧也可以。那...

2019-07-19 19:08:41 6231 5

原创 堆结构和lambda表达式的应用(IPO问题)

之前有篇文章讲解了堆结构以及堆排序,堆可以分为大根堆和小根堆,那么我们如何使用么?笔试时需不需要自己重新实现一个堆结构呢?这个问题怎么说,从底层实现是应该会的,也不难,但实际用的时候就不用自己重新造轮子了!C++标准库中有类似堆结构的东西——Priority_Queue!lambda表达式()段落来源转自简书–小白将在开始今天的内容之前,我们先来说一说C++中的lambda表达式,大家学...

2019-07-11 15:46:20 333

原创 让你的代码更C++一点(前缀树示例)

文章和资源同步更新至微信公众号:算法工程师之路不知道各位写C++代码的童鞋们,有没有发现一个现象,自己写的CPP代码怎么那么像C代码呢?笔者也深有感触,但是自从C++11标准出现以后,CPP的代码就开始精简很多了,风格也极大的发生了变化,今天笔者就开始整理一些C++的新特性,并展示如何在实际应用中使用!让你的代码更Cpp些!1. nullptrnullptr是为了补充并替代NULL的,由...

2019-07-10 16:16:34 572

原创 面试中的排序算法(Part 3)

文章和资源同步更新至微信公众号:算法工程师之路今天来谈一种十分重要的堆排序的算法,其在STL中的数据结构也就是Priority_Queue。也是一种十分高效的排序方式,虽然其算法模型为二叉树结构,但是可以使用数据进行模拟这个二叉树的结构和相应的函数操作!大根堆和小根堆堆树的定义如下:堆树是一颗完全二叉树堆树的当前节点总是不大于或者不小于其孩子节点的值,如果不大于其孩子节点,叫做小根...

2019-07-09 16:31:07 94

原创 面试中的排序算法(Part 2)

荷兰国旗问题在说随机快排之前,我们首先要谈一下荷兰国旗问题,这个方法的一个重要拓展就是快排问题!我们把荷兰国旗问题用数组的形式表达一下是这样的:给定一个整数数组,给定一个值K,这个值在原数组中一定存在,要求把数组中小于K的元素放到数组的左边,大于K的元素放到数组的右边,等于K的元素放到数组的中间,最终返回一个整数数组,其中只有两个值,分别是等于K的数组部分的左右两个下标值。比如,给定一个数...

2019-07-08 15:13:39 162

原创 面试中的排序算法(Part 1)

昨天由于mood not good,所以缺勤一天,今天满血复活,开始更新!在面试中常见的常见的排序算法有冒泡排序、选择排序、插入排序、归并排序、随机快排、堆排序和希尔排序这七种方式!虽然冒泡排序和选择排序基本上已经没有人使用了,但这种教科书式的思维还是值得学习的!我们接下来就来谈谈这几种排序算法的优劣!荷兰国旗问题我们把荷兰国旗问题用数组的形式表达一下是这样的:给定一个整数数组,给定一个值...

2019-07-07 14:24:39 251

原创 左神算法基础:布隆过滤器

基础介绍布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量(位图)和一系列随机映射函数(哈希函数)。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。实际工程的应用实际上,布隆过滤器广泛应用于网页黑名单系统、垃圾邮件过滤系统、爬虫网址判重系统等,有人会想,我直接...

2019-07-05 16:55:17 1147

原创 左神算法基础:哈希函数和哈希表(C++)

笔者在读研刚开始的时候,偶尔看面经,有这样一个问题:只用2GB内存在20亿个整数中找到出现次数最多的数,当时的我一脸懵逼,怎么去思考,20亿个数?What The Fuck! 但是,看完今天的文章,你或许就会觉得原来也不过如此啊!其核心就是哈希函数和哈希表的应用!哈希函数哈希函数又称为散列函数,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输...

2019-07-04 14:42:53 1007 1

原创 左神算法基础:判断二叉树的类别

昨天的文章讲述了二叉树的先序、中序和后序的遍历方法(递归和非递归),但是这种遍历方法有什么意义么?今天来讲讲这些算法可以用来做什么,只要稍加更改,我们就可以得到另外一个功能,只需要仅仅几行代码的修改!还记得上篇文章二叉树的分类么?今天我们要来说三种树的分类:完全二叉树、平衡二叉树和搜索二叉树!完全二叉树:只有最后一层不需要铺满,其余各层均是满的状态!平衡二叉树:每个节点的左子树和右子树的高度...

2019-07-03 18:02:14 410

原创 左神算法基础:二叉树的遍历

二叉树也是常用的数据结构,通过使用二叉树可以快速的对数据进行排序或者查找,在常用的堆排序算法中,堆的底层实质就是一个模拟的完全二叉树!等等,什么是完全二叉树?二叉树又是什么?有哪几类?让我们开始今天的算法课堂~二叉数的概念和分类二叉树是每个树节点最多有两个子树的一种特殊的树结构,其有一些内在的性质,比如,若二叉树的层次从0开始,则在二叉树的第i层至多有 [公式] 个节点(i>=0),高度...

2019-07-03 11:58:25 609

原创 左神算法基础:两个单向链表的第一个交点

最近听了左神的算法课,对一些常用数据结构以及算法改进的思路有了更深的理解,特此总结,不定期更新算法题目以及答案总结!笔者使用C++进行算法重现!虽然左神使用的是JAVA,但他自己也说了,算法与语言无关,但C++写出来的复杂度过不了,那么用其他的语言JAVA,Python也一定过不了!所以刷题还是尽量C++吧,算法基本用不了什么库函数,顶多几个数据结构,而C++的STL里面都包含。单向链表首先什...

2019-07-03 11:43:07 464

原创 Linux下GDB调试

之前写C++的一些程序都是在windows下,直接使用VS2017的傻瓜式编译器,最近尝试摸索在linux进行C++程序的编译,有了一些成果!代码编辑器: VS Code(虽然vim很强大,但我觉得的vim查看和修改少量代码更为适合,编辑整个程序文件还是用VS Code吧)代码编译器: 虽然VS Code有对应的C++插件,还是感觉不舒服,所以笔者还是使用指令在VS Code下方的TERMIN...

2019-07-03 11:23:54 185

原创 Windows使用C++调用Pytorch1.0模型

最近因为项目需求,而且面对的是一些用户级的,也就是windows客户端,所以就在思考在windows下如何调用深度学习模型,做了以下尝试:使用Caffe框架,虽然也可以,但我的大部分项目都使用的Pytorch,真的不想去碰Caffe,而且修改不能按照自己的思想,pass!使用ONNX,当时由于Pytorch1.0并没有发布windows版,我们想着把Pytorch模型转换为ONNX,然...

2018-12-20 00:15:12 5126 8

转载 判别模型和生成模型

概念生成模型(Generative Modeling): 学习时先得到 P(x,y),继而得到 P(y|x)。预测时应用最大后验概率法(MAP)得到预测类别 y。 判别模型(Discriminative Modeling): 直接学习得到P(y|x),利用最大后验概率(MAP)得到 y。或者直接学得一个映射函数 y=f(x)。 他们之间有一种联系,生成模型可以得到判别模型,而判别模型不能...

2018-09-17 16:42:00 516

原创 将引用作为函数参数

临时变量如果函数的实参与引用参数不匹配时,将产生临时变量,但前提是引用参数为const,在以下两种情况下生成临时变量:实参的类型正确,但不是左值;实参的类型不正确,但可以转换成正确的类型如以下非const情况作为引用参数时,会出现类型不匹配的编译错误!但是将函数的引用形参改为const后代码就可以正常运行,在类型不匹配的情况下,C++会创建与类型匹配中间变量,并让引用形参来引用该变量!#inc

2018-01-02 20:35:35 500

TensorFlow-1.8 C++ api.zip

C++ tensorflow api,包含DLL文件和Lib文件,可以直接使用

2019-05-25

邓俊辉数据结构讲义

清华大学邓俊辉数据结构讲义,清晰版,非常好用,包含了数据结构的方方面面

2018-08-16

空空如也

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

TA关注的人

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