自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

where amazing happens

anything is possible

  • 博客(54)
  • 收藏
  • 关注

原创 python双线性插值代码

双线性插值其实就是 根据需要resize的大小和原始图像的大小之比得到缩放比例,然后在求目标图的每一个像素的时候,根据这个比例找到其应该在原图的位置,这个位置可能会是小数,就用到该位置周围4个整数像素点的值来计算该位置的像素,然后离该位置距离近的点所占该位置值的权重要大一些.实现代码如下,效率有点低,待改进from PIL import Imagefrom datetim...

2019-08-04 09:17:40 1749 1

原创 4. 线性回顾和逻辑回归

什么是线性回归模型 线性模型是机器学习中最基础的模型,许多非线性模型就是在线性模型的基础上引入层级结构或者高维映射得到 线性模型就是试图得到一个通过属性线性组合来进行预测的函数,比如 如何去学得这个模型呢? 假定有数据集  ,其中  ,  。 线性模型学的就是参数 w 和 b, 就会把所有的数据都代入到第一个式子中,...

2018-10-11 09:50:31 383

原创 LeetCode--add 2 number--结构体和单链表

(一)malloc与结构体vs类和new    首先,因为c语言不是面向对象的,所以c语言中没有new这个操作,在c++中可以用new,但是其实c语言中的结构体加malloc实现的效果和c++中的类和new实现的是一样的。    首先看看c语言结构体的定义:struct ListNode { int val; struct ListNode *next;};//定义结构体变量str...

2018-04-22 20:46:59 507

原创 python多线程threading

最近看了双线性插值的算法,想要自己实现以下,于是写了一个程序,测了下时间,将1080*1564的一张证件照通过插值resize到600*800花了15s....于是想要用threading多线程来做,3个子线程对3个通道分别做插值,岂不是速度会提升3倍?结果还是15s,让我实在想不通,最后查了下关于python多线程的问题,才明白过来from PIL import Imagefrom ...

2019-08-05 06:29:23 181

原创 .gitignore忽略不想要提交的文件

首先在自己代码的根目录下 vi.gitignore, 创建一个忽略规则,例如我不想把所有的tfrecords后缀的文件传上去,太大了 然后git add . git status 查看一下没有.tfrecords文件...

2019-04-04 16:48:44 202

原创 图片相似度

背景 When browsing through outfits on clothing sites, looking for a vacation rental on Airbnb, or choosing a pet to adopt, the way something looks is often an important factor in our decision.  ...

2018-12-12 14:33:21 1193

原创 git教程(四)

  当你在自己的工作目录下执行git init的时候,你目前工作目录下的所有文件都是untracked的,执行git add 命令之后你工作目录下的文件将会被追踪,变成unmodefied, 修改其中的文件之后再次执行git add ,文件就会被添加到暂存区,准备提交给版本库。 .gitignore 一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟...

2018-12-02 22:51:11 105

原创 单词1

swarm   emerge   termite   deposit   pheromone   cohesively   portrait   prominently   dutch   profile   lithograph   imprint   hypothesis ...

2018-11-26 22:24:05 364

原创 YOLO

Advantages: A single convolutional network simultaneously predicts multiple bounding boxes and class probabilities for those boxes YOLO is extremely fast, 45 frames per second Si...

2018-11-21 19:55:30 149

原创 TFFRCNN demo模型加载测试

  .data-00000-of-00001和.index保存了所有的weights、biases、gradients等变量, .meta保存了图结构, checkpoint文件是个文本文件,里面记录了保存的最新的checkpoint文件以及其它checkpoint文件列表 保存训练模型: 建立一个Saver对象 设置保存模型的个数 : ...

2018-11-20 18:08:16 339

原创 Fast-Rcnn的理解

  Roi Pooling The main function of ROI layer is reshape inputs with arbitrary size into a fixed length output because of size constraint in Fully Connected layers, 能够允许对feature  map进行复用,能够减轻...

2018-11-15 18:54:00 183

原创 python读取文件(txt, json)

读取json文件: 整体思路就是先读取json文件中的数据,将数据暂时存起来,然后再将修改后的数据写入json文件 json.dumps和 json.dump的区别 json.dumps()将dict转换为str格式 json.loads()是将str格式转换为dict格式 json.dump(dict,...

2018-11-05 15:17:54 10056 1

原创 Backpropagation

 

2018-11-01 10:57:14 89

原创 pip 清华安装源

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpynumpy可以改成任意你想要的模块

2018-10-31 07:46:48 9984

原创 caffe

caffe数据层: 在caffe中数据以blob的方式流通的,数据层主要是加载数据,并且将数据进行变化让保存数据的输出.最主要的变换有两种:均值裁剪以及特征缩放. 参数: bottom用来输入数据,top用来输出数据(如果是数据层的话,有两个top) backend: 数据库类型 batch_size: 训练或者测试的批次的大小,也就是说一次拿多少条数据来训练, 分批次的原因...

2018-10-30 16:36:12 103

原创 github上传大于100M的文件报错怎么办?

情况:git add 和 git commit 之后,git push出错。首先,这个问题有两个思路:取消commit,将文件压缩后再commit 如何能够直接上传大于100m的文件一 取消commit     git log查看commit id     git reset --hard 上一个状态的commit id, 这样子本地的代码也会被还原成没有提交之前的代码  ...

2018-10-27 21:47:38 578

原创 windows上编译caffe(microsoft)

首先网上有许多版本的caffe, 对于这么多版本的caffe,每个版本的编译前提准备又不一样,新手很容易在这里面遇到特别多的坑,所以我针对最常用的两个版本的caffe写一篇教程希望能让大家早日接触到深度学习的本质,而不至于在编译安装这个步骤上耽误太多时间,甚至就在这个阶段放弃了的。 对于BVLC版本的caffe,首先看在GitHub上的说明!!! 这个步骤会解决很多...

2018-10-24 06:17:20 1886

原创 1. windows上VS2013编译caffe

写这之前,觉得最重要的就是一定要先看官方文档,一定要先仔细看官方文档,仔细,仔细再仔细!这才是重点,因为即便你照着官方文档来做出错了,必定会有很多靠谱的解答在Google上等着你,而你如果随便从网上找一篇教程的话,这些就都不能保证了。Windows上编译caffe会有许多的让你摸不着头脑的错误发生,我试过不同的方法,终于编译好了python接口的Caffe。 首先下载caffe源码的时候...

2018-10-21 19:20:43 240

原创 Manacher马拉车算法求解最长回文子串

        马拉车算法是一种能在O(n)的时间复杂度范围内得出结果。我看了不下几次这个算法,每次都觉得有点懂了,但是一碰到题目了,就生生写不出来。归根揭底,还是没有掌握其思想。马拉车算法的第一个核心思想就是往原始的字符串里填充一些辅助的东西,使得我们在考虑问题时不用考虑字符串长度是奇数还是偶数。因为对于回文字符串来说,长度是奇数偶数时判断是有些不同的 第二个核心思想就是用到了回文字符串的...

2018-10-10 15:30:34 185

原创 3. GBDT XGboost Lightgbm优缺点

XGboost VS GBDT 传统的GBDT是以CART树为基分类器,XGboost还支持线性分类器 GBDT只用到了一阶导的信息,XGboost对代价函数进行了二阶泰勒展开,得到一阶导和二阶导 XGboost在代价函数中加入了正则项来控制模型的复杂度,可以防止过拟合 XGboost工具支持并行 XGboost会在完成一次迭代之后,将叶子节点的权重,...

2018-10-09 21:56:14 2004

原创 2. GBDT

以决策树为基函数的提升方法称为提升树 回归问题的提升树算法 首先训练出一个基函数, 计算这个模型与训练数据的残差 不断的拟合前一个模型得到的残差,从而得到当前模型,知道满足误差要求 分类问题的提升树算法  梯度提升    对于提升树的优化过程,当损失函数为平方损失或者指数损失函数的时候,每一步优化都简单,但是对于一般...

2018-10-09 10:27:19 95

原创 1. 决策树与CART

    分类决策树模型是一种描述对实例进行分类的树型结构。     算法流程:递归的选取一个最优特征,根据该特征 对训练数据进行分割,使得各个子数据集有一个最好的分类过程。如果这些子集已经能够正确被分类了(就是说所有数据的类别都是一个), 就可以构建叶子节点,把 这些子集对应到叶子节点中去。不然,任然要选取新的最优特征,继续进行分割,直到所有的训练子集全都被正确分类,每个子集都被分配到了叶...

2018-10-08 20:11:39 397

原创 KMP算法Next数组求解

相信对于KMP算法本身大家都理解,最难理解的就是这个next数组的求解了。这是代码/* P 为模式串,下标从 0 开始 */void GetNext(string P, int next[]){ int p_len = P.size(); int i = 0; // P 的下标 int j = -1; next[0] = -1; wh...

2018-07-16 22:39:24 129

原创 归并排序

#include<stdio.h>#include<stdlib.h>void Merge(int a[],int t[],int start,int mid,int end){ int i=start,j=mid+1,k=start; while(i!=mid+1 && j!=end+1){ if(a[i]>a[...

2018-06-26 15:06:42 101

原创 C语言pow函数返回值一直是0

    输出的竟然是0,去查看了一下,原来这个函数返回的是一个float类型的好吧,改成        但是结果特别丑,其实也可以这样:    这样就可以正确输出int类型的结果了,但是需要用到int来强制转换一下...

2018-06-17 21:44:27 6498 1

原创 C语言自带快速排序函数-qsort

    有了这个函数可以快速的解决很多问题

2018-06-17 09:36:01 3746

原创 LeetCode 205. Isomorphic Strings HashMap的应用

    第一种想法是如果两个字符串中包含的不重复的字符的数量相等就返回true,否则返回false,看来还是我太天真了,像abb,aab这种就不满足情况。    然后又想到一种方法就是逐个比较字符串的字符,如果不相等的话,就让t字符串中的这个字符全部替换为s字符串中的字符,然后如果在之后的比较中,如果这个被替换的字符再次出现的话,判断是否和s字符串的当前字符相等,如果不相等,那肯定就返回false...

2018-06-16 18:52:14 173

原创 LeetCode——189.House Robber 动态规划,递归,跨函数变量调用

    这道题是一道动态规划的问题,对于动态问题的求解,经过我几天的探索,发现一般可以沿着两条思路走,一种是用到递归加数组来求解,另一种就是根据状态转换方程来求解。 递归    对于这个问题,可以理解为在任意一个房子的时候,他能所拿到的最多的钱就是max(偷这个房子=在第n-2个房子的时候钱的最大值+第n个房子的钱,只要第n-1个房子没偷就行),不偷这个房子(这个时候钱的最大值等于在第n-1个房子...

2018-06-15 09:43:52 387

原创 Leetcode---189. Rotate Array

int gcd(int n,int m){ if(m==0) return n; return gcd(m,n%m);}void rotate(int* nums, int numsSize, int k) { int start,current,tmp,next,l; //右移转化为左移 if(k>numsSize) k=numsSize-k%n...

2018-06-13 21:38:44 104

原创 哈希搜索算法

/************************************************** * 对于索引查找算法来说,记录保存的位置和关键字之间不存在对应的关系 * 在查找数据的时候需要经过不断的与关键字进行对比 * * 散列函数就是将关键字与记录保存的位置之间形成一种函数对应关系,称为散列函数,这种方式建立的表叫做散列表 * * 散列表的基本思想: * 以线性表中每...

2018-06-12 20:14:07 229

原创 索引表查找-c语言

/******************************************** * 创建索引表的基本思路是: * 将一个线性表(主表)根据一定的函数关系或条件划分为若干子表 * 然后为每个字表创建一个索引项 * 将这些索引项组合在一起构成一个可以索引主表的索引表 * * 索引表中每个索引项一般包括3部分内容: * 索引值(更具索引值可以找到对应的子表) * 子表的开始...

2018-06-12 16:53:07 4847

原创 二叉排序树(Binary Sorting Tree)-创建,删除,遍历

#include<stdio.h>#include<stdlib.h>typedef struct bst{ int data; struct bst *left; struct bst *right;}BSTree;void Insert(BSTree *t,int key){ BSTree *p; if(!p=((BS...

2018-06-12 16:06:14 220

原创 常用排序算法-冒泡,快排,选择排序,堆排序

在计算机中,由于数据的形式,数量和保存形式不同,对数据进行排序的方法也不同.按照排序过程中数据保存的形式不同,分为内部排序和外部排序两大类.        内部排序:        整个排序过程中不需要访问外存:1.       交换排序: 冒泡排序,快速排序2.       选择排序: 直接选择排序,堆排序3.       插入排序: 直接擦汗如排序,希尔排序4.       合并排序外部排序:...

2018-06-11 23:51:06 667

原创 LeetCode-Binary Tree Level Order Traversal II-搞定指向指针的指针和malloc的用法

    对于这个题目,其实就是二叉树的按层遍历,然后将按层遍历的结果倒序存放而已,正好复习一下二叉树的按层遍历。void BinTree_Level(ChainBinTree *bt,void (*oper)(ChainBinTree *p)){ ChainBinTree *p; ChainBinTree *q[QUEUE_MAXSIZE]; int head,tail=0; if(...

2018-06-05 18:59:19 323

原创 数据结构--二叉树

树型结构和线性结构的区别    线性链表,一个节点最多只有一个前驱和一个后驱(循环链表)。树型结构的话则每一个节点可以有一个前驱节点和多个后驱节点,我们一般用到的是二叉树,也就是说有两个后继节点。基本概念    节点的度:一个节点的子数的数量称为该节点的度树的度:该树中节点的最大度数叶子节点:树中度为0的节点称为叶子节点,度不为0的节点称为分支节点节点的层数:树是一种层次结构树的深度:一棵树中节点...

2018-06-03 10:47:57 225

原创 Leetcode-Climbing Stairs-DP problem

int climbStairs(int n) { int s; if(n==1){ return 1; }else if(n==2){ return 2; }else{ return s=climbStairs(n-1)+climbStairs(n-2); } }    这种问题很容易让人想到递归,但...

2018-06-03 00:32:54 98

原创 Leetcode-67. Add Binary-位运算,三目运算,异或运算

    这道题如果把字符串里的字符转化为int型的话就是一个全加器了!!!!!!!!!!!!!        解法char* addBinary(char* a, char* b) { int la = strlen(a); int lb = strlen(b); int lr = la > lb ? la : lb; int carry = 0; c...

2018-06-02 20:32:34 313

转载 c语言sprintf函数

转载出处:http://www.jb51.net/article/37296.htmprintf 可能是许多程序员在开始学习C语言时接触到的 第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf了解多吗?在将各种类 型的数据构造成字符串时,sprintf的强大功能很少会让你失望。由于sprintf跟printf在用法上几乎一样...

2018-06-02 00:21:25 403

转载 c语言str相关的函数

C语言str系列库函数在不同的库中有不同的实现方法,但原理都是一样的。因为库函数都是没有进行入口参数检查的,并且str系列库函数在面试中经常容易被面试官喊在纸上写某一个函数的实现,因此本文参考了OpenBSD和vc++ 8.0库中的代码,结合自己的编程习惯,部分整理如下:1、strcpy[cpp] view plain copychar * strcpy(char *dst, const char...

2018-06-02 00:18:13 12430

转载 Leetcode-38. Count and Say(c语言玩转字符串)

    对于只会c的我这道题把我折磨的欲仙欲死,不过通过这道题,加深了c语言对字符串一些操作的理解,也算是功德圆满。下面是解法;#define maxn 10001char s[maxn], t[maxn];char* countAndSay(int n) { strcpy(s, "1"); strcpy(t, ""); int cnt = 1; c...

2018-06-02 00:10:35 390

空空如也

空空如也

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

TA关注的人

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