- 博客(87)
- 资源 (15)
- 收藏
- 关注
原创 OpenCV Image Flip 图像翻转
需要使用到OpenCV的图像翻转操作,查了一些flip函数的文档,发现非常confusing,不明白到底0是水平翻转还是1是水平翻转。 最后不得已自己实验才弄清楚。OpenCV 图像坐标系在OpenCV里面,坐标系的原点在左上角,row为Y轴,col为X轴。从左上角往下,Y变大,往右,X变大。 这和python里面很多其他的图像处理库不一样,比如PIL和skimage,这些库是py...
2018-07-12 23:42:33
3631
原创 sigmoid_cross_entropy_with_logits and weighted_cross_entropy_with_logits
当样本的 labels 是多个独立的二分类问题时,loss 函数之前的激活函数应该是 sigmoid/tanh,而不能使用softmax了。如果激活函数是sigmoid,这种情况下我们的loss函数就是sigmoid_cross_entropy_with_logits。Tensorflow中,logits都是指未经过激活函数的输出,即所谓的 unscaled。sigmoid_cross_entrop
2018-01-03 12:00:10
4366
原创 Batch Normalization
Batch Normalization 被认为是一种加速网络收敛速度的很好的方法。关于BN的原理在原论文中有很详细的介绍。网上也有很多介绍的博客。简单来说,BN是对feature按照空间位置进行规范化。但是需要注意的是,对于CNN网络,BN的操作是比较特殊的。具体说来,对于卷积层,我们希望BN能够和卷积一样,对于feature的不同空间位置处的值具有同样的效果。为了做到这一点,我们在规范化时,对每一
2017-12-28 00:56:21
740
原创 improved partition in quick sort
original solution参考算法导论实现的分组算法int partition(vector<int>& nums, int p, int r) { int x = nums[r]; int s = p - 1; // the last smaller for (int k = p; k < r; ++k) { if (nums[k] <= x){
2017-09-29 10:15:39
548
原创 ssh login server without password
用ssh命令登录server的时候,每次都需要输入密码,严重影响了工作效率。其实可以让server记住自己的机器,从而避免每次都输入密码。本地机器密钥文件在命令行中输入:ssh-keygen -t rsa 就可以产生密钥文件,可以直接回车使用默认路径来存放密钥文件。Generating public/private rsa key pair.Enter file
2017-09-29 06:51:32
1362
原创 二叉树的遍历-Recursive/Iterative/Morris
二叉树是常见的数据结构,二叉树相关的算法题目也是非常常见的。下面总结以下二叉树的前序/中序/后序遍历方法,分别用递归(O(n) Space),迭代(O(lgn Space)),Morris(O(1) Space)方法实现。二叉树遍历的时间复杂度都是O(n),不同方法的区别主要是在空间复杂度上。递归遍历递归是一种非常直观的方法,也是最容易实现的方法。递归的方法的空间复杂度为O(n)。 节点的定义如下
2017-09-25 09:43:52
1803
原创 GAN and CGAN on MNIST dataset
GAN and CGAN关于GAN和CGAN的教程网上有好多,感兴趣的可以自己去找着看看。最重要的是要弄清楚,GAN是干嘛的?作者在论文和NIPS2016 tutorial里面都讲了很多设计GAN的初衷。简单来说,GAN就是用来拟合样本的分布的。看了论文总觉得理解得不够透彻,就在网上找了一些简单的程序跑了跑,下面就直接来说说程序和实验结果吧。GANGAN的结构如下图所示。 实验数据集采用了MNIS
2017-09-21 10:11:55
2789
原创 TensorFlow softmax VS sparse softmax
Difference between sparse_softmax_cross_entropy_with_logits and softmax_cross_entropy_with_logits差别在tensorflow中使用softmax loss的时候,会发现有两个softmax cross entropy。刚开始很难看出什么差别,结合程序看的时候,就很容易能看出两者差异。总的来说两者都是计算分
2017-09-06 07:39:44
11351
1
原创 Android调用Camera APIs实现拍照功能并上传图片
用安卓写了一个简单的APP,主要功能是拍照并上传图片。拍照部分功能直接调用系统Camera APIs,上传图片功能部分使用的httpmime。Activity and Intent安卓程序中,有两个重要的东西需要弄清楚,一个是Activity,一个是Intent。Activity定义了用户和应用交互的逻辑,有点类似与网页前端,是和用户进行交互的界面。不用的是安卓中的Activity有不同的状态,比如
2017-05-16 14:52:27
962
转载 Setup OpenCV SDK in Android Studio project
Open Source Computer Vision (OpenCV) is a library used for computer vision and machine learning. It has many optimized algorithms which can be used to perform tasks easily. In the first part of this tu
2017-05-16 11:11:33
891
转载 SVM中的Dual
在之前关于 support vector 的推导中,我们提到了 dual ,这里再来补充一点相关的知识。这套理论不仅适用于 SVM 的优化问题,而是对于所有带约束的优化问题都适用的,是优化理论中的一个重要部分。简单来说,对于任意一个带约束的优化都可以写成这样的形式:mins.t.f0(x)fi(x)≤0,i=1,…,mhi(x)=0,i=1,…,p\begin{aligned}\min&f_0(x
2017-05-13 22:24:09
4989
转载 Sqlite3 C++ 使用方法
需要在 C++ 程序中读写 sqlite3 数据库,查阅了一下资料,发现了一个简单实用教程。另外还有如何在windows下生成sqlite3静态库。windows下生成sqlite3静态库去 sqlite 官网下载页面下载源文件 sqlite-amalgamation-3180000.zip 。在VS2013中,文件->新建->项目->Win32项目,命名为sqlite3(其他名称也行)。在向导
2017-05-12 11:15:19
10710
原创 C++ 实现文件的复制和移动
想实现一个文件的复制和移动的函数,来处理文件,可惜电脑上面没有安装Matlab,就想用 C++ 来实现这个功能。分别使用 C 里面的 rename 函数和 C++ 中的 stream 来实现。rename 就是简单的修改文件名,如果文件路径包含在文件名中了,那么就可以修改此路径实现文件移动的功能。 stream 的方式就是先读入文件,再写入新文件,可以设置是否保留源文件。^_^#include <
2017-02-26 19:44:18
12756
原创 Visual Studio: MSB3073 error exited with code 1
Error 1 error MSB3073: The command “setlocal “C:\Program Files (x86)\CMake\bin\cmake.exe” -DBUILD_TYPE=Release -P cmake_install.cmake if %errorlevel% neq 0 goto :cmEnd :cmEnd endlocal & call :c
2017-02-23 16:50:25
5152
4
转载 Ubuntu16.04 编译安装GCC 5.3.0
http://blog.youkuaiyun.com/striker_v/article/details/51920627
2017-02-16 19:42:26
11481
9
原创 递归读取文件夹下所有文件
有时候需要获取一个文件夹下的所有文件,甚至需要获取特定类型的文件。下面介绍两种分别在 Linux 和 Windows下可以运行的程序实现。Linux C在 Linux 中可以使用 opendir,readdir,closedir 来实现.函数原型:int alphasort(const struct dirent **, const struct dirent **);int
2016-12-29 11:14:49
1012
转载 Ubuntu增加Swap空间大小
Swap空间大小不够用了,想增加Swap空间大小,又不想重新安装系统。网上找到一个解决的办法^_^1.首先用命令free查看系统内 Swap 分区大小 free -m total used free shared buffers cached Mem: 2012 1960 51 0 748 950 -/+ buffers/cache: 260 1751 Swap: 255
2016-12-13 15:42:40
39979
2
原创 链接提示 extern "C"
在 C++中调用 C 代码时,需要给编译器指定C代码要按照C语言的编译器编译,否则编译器会将C代码按照默认的C++编译器来编译C代码,这样在调用C代码时,会发生链接错误,找不到函数定义,因为C++编译器和C编译器对函数编译的过程都一点点区别。 下面先讲一下为什么会发送找不到函数定义的错误,进而弄清楚为什么需要extern “C” 来指定C编译器,然后再讲一个简单的例子说明如何使用 extern “
2016-10-10 16:24:31
813
原创 Jsoncpp 使用方法大全
JsoncppJson(JavaScript Object Notation )是一种轻量级的数据交换格式。简而言之,Json组织形式就和python中的字典, C/C++中的map一样,是通过key-value对来组织的,key是任意一个唯一字符串,value可以是bool,int,string 或者嵌套的一个json。关于Json 格式可以参考官方网站。 Jsoncpp 是一个用来处理 Js
2016-10-07 15:04:43
40816
2
转载 C++ 虚函数表 vfptr
前言大家都应该知道C++的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过基类的指针去调用函数时, 可以在运行时决定该调用基类的函数还是继承类的函数. 虚函数是实现多态(动态绑定)/接口函数的基础. 可以说: 没有虚函数, C++将变得一无是处!既然是C++的精髓, 那么我们有必要了解一下她的实现方式吗? 有必要! 既然C++是从C语言的基础上发展而来的
2016-09-25 10:14:18
22008
19
原创 Red Black Tree
最近面试被问了好多遍红黑树,收集下资料,以后慢慢研究…Referncehttp://www.teachsolaisgames.com/ http://www.cs.princeton.edu/~rs/talks/LLRB/RedBlack.pdf http://www.cs.princeton.edu/~rs/talks/LLRB/LLRB.pdf
2016-09-19 20:08:26
676
原创 Binary search and lower_bound, upper_bound
传统的二分查找是为了寻找目标数在一个有序数组中是否存在的问题。返回值为布尔型变量(true or false)。但是有时候需要知道更多信息,比如如果存在,那么在数组中该数出现的第一个位置(left most)和最后一个位置的索引是多少?如果不存在,那么如果把该数插入到数组中去,应该插入到哪个位置?所以需要深入一步探索二分查找算法。C++中给出了几个库函数binary_search(),lower_b
2016-09-13 19:35:10
792
原创 C++ priority_queue
template <class T, class Container = vector<T>, class Compare = less<typename Container::value_type> > class priority_queue;优先队列默认采用vector实现,是最大堆。Priority queues are a type of container adaptors, spe
2016-09-07 11:08:04
577
原创 C++ set and multiset
简单来说 set 是一组有序数的集合,集合里的元素没有重复的,而 multiset 则允许元素重复。因此multiset在一些操作上要注意和set的区别。定义template < class T, // set::key_type/value_type class Compare = less<T>, // set::
2016-09-07 09:51:24
542
原创 LeetCode 324. Wiggle Sort II
Problem DescriptionGiven an unsorted array nums, reorder it such that nums[0] < nums[1] > nums[2] < nums[3]….Example: (1) Given nums = [1, 5, 1, 1, 6, 4], one possible answer is [1, 4, 1, 5, 1, 6].
2016-09-03 17:38:48
902
原创 Fabonacci 数列问题
今天面试,被问到求fabonacci数列的第n个数这个问题,当时用O(n)复杂度的迭代方法做出来了,然后面试官继续问了如何实现O(log(n))的时间复杂度的算法,最后还问了n大概为多大时结果就会溢出(用unsigned int来保存结果)。Fabonacci数列Fabonacci数列是指数列中的任一项都等于前两项之后,通项公式为: F(n)=F(n−1)+F(n−2)F(n) = F(n-1)+
2016-09-02 22:04:16
1617
原创 Coding练习题-钻石重量比较
小明陪小红去看钻石,他们从一堆钻石中随机抽取两颗并比较她们的重量。这些钻石的重量各不相同。在他们们比较了一段时间后,它们看中了两颗钻石g1和g2。现在请你根据之前比较的信息判断这两颗钻石的哪颗更重。给定两颗钻石的编号g1,g2,编号从1开始,同时给定关系数组vector,其中元素为一些二元组,第一个元素为一次比较中较重的钻石的编号,第二个元素为较轻的钻石的编号。最后给定之前的比较次数n。请返回这两颗
2016-08-01 10:51:45
1044
原创 CS231n Class Notes- lecture11 ConvNets in Practice
这节课主要讲了一些在实际使用 CNN 时的技巧,可以加速训练网络。很多内容需要图解,所以我就直接截图了。所有图都是从 CS231n lecture 11的课件中截取的。The power of small filtersThree 3 x 3 conv gives similar representational power as a single 7 x 7 convolution 这是在 V
2016-07-30 20:59:35
1766
原创 Leetcode168. Excel Sheet Column Title
Probelm DescriptionGiven a positive integer, return its corresponding column title as appear in an Excel sheet. For example:1 -> A2 -> B3 -> C...26 -> Z27 -> AA28 -> AB Thinking:这个问题是 Easy 型的,也
2016-07-20 19:42:14
524
原创 cs231n - assignment1 - neural net 梯度推导
Implementing a Neural Network In this exercise we will develop a neural network with fully-connected layers to perform classification, and test it out on the CIFAR-10 dataset.这里开始采用矩阵的形式来推导梯度,而且将
2016-07-18 19:19:10
8674
3
原创 cs231n - assignment1 - softmax 梯度推导
Softmax exercise Complete and hand in this completed worksheet (including its outputs and any supporting code outside of the worksheet) with your assignment submission. For more details see the assig
2016-07-16 15:19:07
16626
11
原创 cs231n - assignment1 - linear-svm 梯度推导
Multiclass Support Vector Machine exercise Complete and hand in this completed worksheet (including its outputs and any supporting code outside of the worksheet) with your assignment submission. F
2016-07-15 22:59:27
9011
2
原创 cs231n - assignment1- k-Nearest Neighbor Classifier 梯度推导
assignment web pagek-Nearest Neighbor (kNN) exercise Complete and hand in this completed worksheet (including its outputs and any supporting code outside of the worksheet) with your assignment submis
2016-07-14 20:07:23
1303
原创 Google gflags usage on windows
gflags 是 google 的开源项目,用来解析程序的命令行输入参数。传统的方法是手工解析argv参数,或者使用getopt函数。两种方法都比较费劲。使用Google gflags可以大大简化命令行参数处理。下面主要记录如何在windows下利用CMake编译gflags,并用CMakeLists来使用gflags,以及基本的使用方法。Complie gflags By CMake在github
2016-07-01 14:06:14
4009
原创 Matlab mex -setup 找不到编译器
Matlab mex -setup 找不到编译器在Matlab中使用mex编译使用 c/c++ ,首先要设置编译器,mex -setup.但是有时候会遇到找不到编译器的错误,错误原因有很多。我的电脑上先安装Matlab 2016a,后安装的visual studio 2013,所以Matlab找不到编译器。可以卸载掉Matlab然后重新安装,就可以了。但是我那要很长时间。 其实可以直接修改下配置文
2016-06-11 11:20:42
67806
15
原创 Matlab 设置默认工作路径
Matlab 设置默认工作路径找到 %INSTALLNATION_PATH%MATLAB\R2016a\toolbox\local 下的 matlabrc.m 文件,在文件最后加上一句 cd %YOUR_NEW_PATH%; 然后重新启动Matlab即可。比如我的电脑上:
2016-06-10 21:52:41
4737
原创 [论文阅读]Camera Pose Voting for Large-Scale Image-Based Localization - ICCV2015
这是我在组会上讲的文章,当时跟着论文的行文思路来讲的,可惜没能讲得很清楚。现在打算用我自己的思路来介绍这篇文章。通过总结,进一步提升理解。Image-Based Localization首先介绍一下什么是Image-Based Localization。随着计算机视觉的发展,现在人们可以利用 SfM(structure from motion) 技术利用场景的图片集合来进行三维重建,得到场景的点云模
2016-06-07 17:26:17
3492
转载 Dissecting the Camera Matrix
Camera MatrixSo, you’ve been playing around a new computer vision library, and you’ve managed to calibrate your camera… now what do you do with it? It would be a lot more useful if you could get at the
2016-05-08 14:49:33
2102
原创 我的C++学习路线
记录我学习C++的过程。希望对那些想学习C++的人能有一些参考价值。 首先需要说明的是,C 和数据结构我有一点点基础。C++ Primer 5th Edition首先要说明的是,我不是从零基础学习C++,本科学习学习过C语言,对C有一定的了解和基础。所以在学习C++的时候,我没有还太多时间纠结基本的语法。 对于同样有C基础的人,建议直接看Primer,看得很快,就像翻小说一样。主要是了解C++的
2016-05-01 20:25:19
2044
windows下编译好了的sba-1.6
2016-04-21
Tukey's Biweight Correlation and the Breakdown
2016-04-20
场景流经典教材
2016-04-20
OpenMP tutorial
2016-03-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人