自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (3)
  • 收藏
  • 关注

原创 TensorFlow通过dataset读入不同长度数据

1. 背景dataset是tensorflow支持的一种新的数据读取方式,相对直接feed更加优雅,我个人比较喜欢这种方式。关于具体的使用方式,可以参考这篇文章https://towardsdatascience.com/how-to-use-dataset-in-tensorflow-c758ef9e4428。但是在实际用的过程中,我遇到了一些问题,就是在load变长数据的过程中,会出问...

2018-08-10 21:49:17 4351 3

原创 使用scipy进行聚类

最近做图像的时候,突然有个idea,需要进行聚类,其实算法很简单,但是当时很急,就直接使用了scipy的cluster。使用起来其实很简单,但是中文的文章很少,所以就简单的介绍一下,感兴趣的也可以自己去看一下英文的文档:http://docs.scipy.org/doc/scipy/reference/cluster.html。这是我从stackoverflow看到的一个demo,如果只是

2014-07-06 19:14:11 8929 3

原创 android下进行opencv开发的配置

http://opencv.org/platforms/android.htmlhttp://docs.opencv.org/doc/tutorials/introduction/android_binary_package/O4A_SDK.htmlhttp://docs.opencv.org/doc/tutorials/introduction/android_bin

2013-11-02 16:06:13 2171

原创 lucene4.0的配置

一.配置Java和tomcat这个很简单了,改下环境变量,帖子网上一大把,我自己之前好像也写过,可以看一下。二.配置lucene下载地址http://www.apache.org/dyn/closer.cgi/lucene/java/4.0.0然后解压缩,我是解压缩到D盘。三.修改环境变量You need four JARs: the Lucene

2012-12-27 18:11:11 6548

原创 新浪微博python API的使用

一.注册应用网上有很多关于使用weibo API的帖子,但是很遗憾的是,大多没有很详细的介绍,还有的就是版本太老了。关于注册的部分,我就不写了,按照新浪给的步骤走就OK了,需要注意的是,现在申请应用,需要给一个回调页面(callback url),因为新浪新版的API使用oauth2.0进行验证,传递的参数是需要使用callback url的。但是,我想大多数人都是callback u

2012-12-27 17:35:23 9187 1

原创 结构体对齐的几个问题浅析

1.关于结构体对齐许多实际的计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的起始地址的值是某个数k的倍数,这就是所谓的内存对齐,而这个k则被称为该数据类型的对齐模数(alignment modulus)。这种强制的要求一来简化了处理器与内存之间传输系统的设计,二来可以提升读取数据的速度。比如这么一种处理器,它每次读写内存的时候都从某个8倍数的地址开始,一次读出或写入8个字

2012-08-30 23:09:48 1677

转载 VS2010+OpenCV环境配置

Opencv2.3.1在VS2008和VS2010平台上安装配置图解1、下载软件。Opencv2.3.1可从此处下载到:http://www.opencv.org.cn/index.php/DownloadVSExpress是微软提供的免费版,可从此处下载:http://www.microsoft.com/visualstudio/en-us/products/2010-editions/

2012-07-22 21:37:30 32382 5

原创 主成分分析PCA(Principal Component Analysis)介绍

很久之前,有一次做人脸识别的时候用过PCA,大概记得是降维用的,然后前段时间用到LDA的时候顺带看到PCA才发现忘的差不多了,干脆把一些资料整理一下吧。一.K-L变换说PCA的话,必须先介绍一下K-L变换了。K-L变换是Karhunen-Loeve变换的简称,是一种特殊的正交变换。它是建立在统计特性基础上的一种变换,有的文献也称其为霍特林(Hotelling)变换,因为

2012-07-10 23:40:56 20554 3

原创 Linux下使用netfilter进行IP包解析

一.netfilter最近因为工作的原因,要用到netfilter进行IP包的解析和过滤,所以对netfilter进行了一些了解,目前网上比较容易搜索到的应该是这两篇文章http://alexanderlaw.blog.hexun.com/8960896_d.html,《Linux netfilter 源码解析》,https://www.ibm.com/developerwor

2012-06-29 01:07:22 13143 7

原创 Log4cpp介绍及使用

Log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志和跟踪调试的功能。使用log4cpp,可以很便利地将日志或者跟踪调试信息写入字符流、内存字符串队列、文件、回滚文件、调试器、Windows日志、本地syslog和远程syslog服务器中。1、Log4cpp简介  Log4cpp是个基于LGPL的开源项目,移植自Java的日志处理跟踪项目log4j,并保持了API上的一致。

2012-03-05 14:33:30 57045 1

原创 用python写的一个多线程的端口扫描

#!/usr/bin/env pythonimport socketimport sysimport threadingimport timeNORMAL = 0ERROR = 1TIMEOUT = 5def ping(ip , port , timeout=TIMEOUT): try: cs=socket.socket(socket.AF_INET,socket.SOC

2012-03-03 09:45:33 8515

转载 C++开源库,欢迎补充。

C++在“商业应用”方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年。因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用。当Java横行天下之后,MS又突然发力,搞出C#语言,有大片的曾经的C++程序员,以为C++要就此沉沦,未料,这三年来,C++的生命力突然被 严重地增强了。主力原因就是开源的软件、基础软件(比如并发原生支持,比如Android必定要推出原生的SDK)

2011-12-08 20:08:35 1126

原创 学校BBS上C版总结的月经贴,感觉很不错

所谓“月经题”就是那些几乎隔段时间就会被问到的常见问题,所以觉得有必要总结出来 一些常见的放到置地文章中!   1、首当其冲的就应该是类似对:i+++i 这种类似表达式求值的问题! 其有很多变种,但是都可以归为一类,这类无聊问题的最大特点就是【变量在一个表达 式的运算中改变了自己】,以i+++i为例:   i+++i按照操作符优先级划分,应该写为i++ + i,如果在E

2011-12-06 23:24:14 1169

原创 最近的书单

《程序员的自我修养》《编程之美》《C++ Primer》《C++对象模型》《head first 设计模式》《设计模式之禅》《软件随想录》《面向对象的系统分析》《人件》《人月神话》

2011-12-01 20:22:10 623

原创 奇怪的const_cast

const_cast  用法:const_cast (expression)  该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。  一、常量指针被转化成非常量指针,并且仍然指向原来的对象;  二、常量引用被转换成非常量引用,并且仍然指向原来的

2011-11-17 23:31:05 955 1

原创 C++中二维数组new小结

1. A (*ga)[n] = new A[m][n]; ... delete []ga; 缺点:n必须是已知 优点:调用直观,连续储存,程序简洁(经过测试,析构函数能正确调用) 2. A** ga = new A*[m]; for(int i =

2011-09-24 10:29:00 924

原创 避免使用宏

概述:        宏是C和C++语言的抽象设施中最生硬的工具,它是披着函数外衣的饥饿的狼,很难驯服,它会我行我素地游走于各处。要避免使用宏。讨论:        在C++中,几乎从不需要使用宏。        可以用const或者enum定义易于理解的常量,用

2011-09-20 18:00:35 774

原创 sizeof的奇妙

在论坛上看了个帖子 int i=2; int j=sizeof(++i); printf("%d",i);就是问输出是多少,答案是2,为什么呢?sizeof  操作符给出其操作数需要占用的空间大小, 它是在编译时就可确定的, 所以其操作数即使是一个表达式, 也不

2011-09-16 22:34:54 894 6

原创 智能指针

一.智能指针的原理及实现  当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝;另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享。  智能指针(smart pointer)的一种通用实现技术是使用引

2011-09-14 22:40:44 820

原创 Bogo排序,真是巨NB啊

Bogo排序(Bogo-sort),又被称为猴子排序,是一种恶搞排序算法,其算法就是坑爹的将元素随机打乱,然后紧紧检查其是否符合排列顺序,若否,则继续进行随机打乱,继续检查结果,直到符合排列顺序。Bogo排序的最坏时间复杂度为O(∞),一辈子也不能输出排序结果,平均时间复杂度

2011-09-05 10:32:55 13665 10

原创 一道很有意思的面试题

求较小的值,不能用 比较运算符 if-else ?: while for 内嵌汇编 递归 第三方函数int Min(int a, int b){  //write code here}我给的回复是#include // 要求写的函数int M

2011-08-17 03:51:09 1837 6

转载 cerr和cout的区分

cerr与cout的主要区分就是,cout输出的信息可以重定向,而cerr只能输出到标准输出(显示器)上。  例如下面程序编译后生成test.exe  // test.cpp  #include   int main()  {  cout << "hell

2011-08-17 03:31:40 1077

原创 delete与delete[]的区别

C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 很多人注意到了这个问题,但是却不清楚为什么要这样做,不这样做行不行。 关于 new[] 和 delete[],其中又分

2011-08-15 19:55:35 655

原创 const总结大全,不断更新,面试必备

一.const类型的变量在声明的时候一定要进行初始化,否则会报错。二.在全局作用域中定义非const对象,它在整个程序中都可以访问例如://file1.ccint counter;//file2.ccextern int counter;++cou

2011-08-15 19:41:45 1864 1

原创 ubuntu下终端telnet乱码问题

<br />晚上使用telnet登录学校的bbs时发现中文乱成团状, 当时终端字体设置为”Lucida Grande”, 是支持中文的, 所以只能是终端显示编码的问题了, 果然, 在”终端”菜单下将”字符编码”改为从UTF-8改为GBK后, telnet的中文可以正常显示了.

2011-06-02 11:40:00 2912

原创 浮点数的一些认识

<br />浮点数的一些认识<br /><br />浮点数包括float和double两种类型,float占32位,double占64位。其二进制存储格式遵循IEEE754标准。以float为例:<br />      <br />      符号位:正数为0,负数为1<br />      以float型数据123.456为例,分析其二进制存储格式:<br />      首先将十进制数123.456转换为二进制数为:1111011. 01110100101111001 <br />      (其中0.

2011-05-18 23:05:00 972

原创 C++中的堆与栈

<br />C++中的堆与栈<br /><br />1 基本概念<br />也不知道是什么原因,很多人总是把堆和栈混合一起,在写程序时,总是经常脱口而出地说堆栈。网上的一些资料说堆栈的叫法是有历史原因的,至于具体是什么历史原因,这不是本文所要讨论的问题。<br />堆:在数据结构中,堆是一种满足“堆性质”(至于什么是堆性质可以查阅任何一本数据结构的书)的数据结构。然而,通常我们所指的堆都是指二叉堆,即一种使用数组来模拟完全二叉树的结构。当然,也存在其它形式的堆,包括斐波拉契堆、二项堆、杨氏表等,想获

2011-05-18 22:23:00 906

原创 比赛的一些反思

<br />这是我们第一次组队参加比赛,虽然之前都有参加过个人赛,但是组队,对于我们来说,都是第一次,而比赛的过程和结果,对于我们来说,简直就是一场噩梦,比赛结束之后我回来想了2天,最后还是决定写些东西,让自己能够记住这次的教训。<br />首先,也是最重要的一点是,我们自身的实力的问题,做题太少,从来没有系统做题,投入大量时间看算法。<br />其次,是我们临场比赛时候的一些问题了,不得不说,这次的比赛从还没开始到结束,我们都很失败。比赛开始的时候,我们很亢奋,对于自己的实力还是有一点信心的,觉得3个人至

2011-04-18 21:52:00 1711

原创 C++的一些细节

1.C++中,将负数赋值给unsigned是完全合法的。例如,将-1赋值给unsigned char,那么结果是255.2.C++中,double的精度和计算速度都要超过float,long double则需要承担额外的运行代价。3.std:ou/

2011-04-15 21:08:00 768

原创 通过K-MEDOIDS算法对时间序列进行聚类的实现

<br />最近做数据挖掘相关的工作,题目是时间序列聚类研究,目前对于这方面的研究都还只是在起步阶段,被广泛使用的还是基于K-MEDOIDS的聚类,放弃K-MEANS的主要原因还是时间序列之间序列的计算难度,对于这方面我们也已经有了一定的进展,不过也还是有很多的问题。<br />把基于DTW与K-MEDOIDS的时间序列聚类的算法贴出来,希望对大家有些帮助吧。<br />这份代码是我在以前的代码的基础上直接改的,所以C和C++有些混用。<br />#include <stdio.h>#include <

2011-04-09 23:32:00 10622 3

原创 poj1274 二分图

<br />#include <stdio.h><br />#include <string.h><br />#define TRUE 1<br />#define FALSE 0<br />int m,n, ans;<br />int result[205]; //记录V2中的点匹配的点的编号<br />int state [205]; //记录V2中的每个点是否被搜索过   <br />int data[205][205];//邻接矩阵 TRUE代表有边相连   <br />

2011-03-30 15:01:00 872

原创 DTW(Dynamic Time Warping,动态时间归整)的介绍

<br />在日常的生活中我们最经常使用的距离毫无疑问应该是欧式距离,但是对于一些特殊情况,欧氏距离存在着其很明显的缺陷,比如说时间序列,举个比较简单的例子,序列A:1,1,1,10,2,3,序列B:1,1,1,2,10,3,如果用欧氏距离,也就是distance[i][j]=(b[j]-a[i])*(b[j]-a[i])来计算的话,总的距离和应该是128,应该说这个距离是非常大的,而实际上这个序列的图像是十分相似的,这种情况下就有人开始考虑寻找新的时间序列距离的计算方法,然后提出了DTW算法,这种方法在语

2011-03-12 17:44:00 25457 7

原创 K-MEANS算法的C++实现

<br />#include <stdio.h>#include <stdlib.h>#include <math.h>#define NA 4 /* 数据维数 */#define K 3 /* 聚类数 */#define Psize 50 /* 种群大小 */#define T 30 /* 最大迭代数 */#define ED 0.0000001 /* 结束条件 */typedef struct { double p[NA]; double distance

2010-12-09 11:30:00 1628

原创 K-means 简介

Kmeans算法<br />  k-means 算法接受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。编辑本段算法流程<br />  首先从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类

2010-12-09 10:45:00 1699

原创 K-means clustering 介绍论文

论文:基于距离的划分聚簇算法[分享]<br />叶若芬  李春平<br /> (清华大学软件学院  北京  100084)<br />摘  要:k-means算法在聚簇大的数据集时是公认比较有效的算法之一,然而它只能应用在具有数值属性描述的数据对象集合上,这种数据对象叫做数值数据;却无法应用于真实世界中具有其他形形色色属性的数据对象集合上,比如颜色、纹理、形状等特征描述的数据对象集合,这种数据叫做分类数据。为了能对分类数据进行聚簇,对k-means算法进行了扩展,出现两种新的算法:一

2010-12-09 10:36:00 9353

原创 poj 1061 扩展欧几里得

<br />#include<stdio.h>int gcd(int a,int b){if(b==0) return a;return gcd(b,a%b);}void exgcd(int a,int b,__int64 &x,__int64 &y){if(b==0){ x=1; y=0; return ;}exgcd(b,a%b,x,y);__int64 t=x;x=y;y=t-a/b*y;return ;}

2010-12-08 23:02:00 707

原创 Windows bat 语法简介

<br />如何创建批处理文件?<br />    不要听了批处理文件就感到很神气,其实这东西很简单的.你用过记事本没有?用过? 好的.将记事本打开,什么都不用写,然后选择文件,保存.保存类型选择所有文件,文件名则命名为 *.bat 这个*代表是文件名,你可以随便的起.保存好之后,看看你保存的地方,会出现一个白色窗口里有个黄色齿轮的图标.这东西就是你创建的批处理文件,双击他就可以运行,但他现在由于里面没有输入任何命令,所以他运行了并不会做任何事情.当我们想往这个*.bat文件中添加东西时,只要右

2010-11-18 22:53:00 2450

转载 Adapter应用总结

<br />首先来看一下Adapter的体系结构:<br />一个Adapter的对象扮演一个桥梁的角色。这个桥梁连接着一个AdapterView和它所包含的数据。Adapter提供了一个通到数据项的途径。Adapter还负责为在数据集里的每个数据生项生成一个View。它有一个重要的方法:public abstract View getView (int position,View convertView,ViewGroup parent)。这个方法被setListAdapter(adapter

2010-11-16 22:20:00 633

原创 Ubuntu系统截图方法介绍

<br /><br />1.使用键盘快捷键抓图<br />  在GNOME集成桌面环境下,我们可以使用键盘功能键Print Screen或Alt+Print Screen组合键来抓图,前者可以抓取整个屏幕的图像,而后者可以抓取当前活动窗口的图像。例如抓取整个屏幕的图像,则按下Alt+Print Screen组合键,不一会儿将弹出“保存抓图”对话框(图1),对话框中显示截图的文件名以及图像存储的目标路径(这里我们使用默认存储路径),如点击“复制到剪贴板”按钮则将截图复制到系统剪贴板中,在其他程序中使用时只要“

2010-09-17 13:00:00 1556

原创 android下第一个程序,Hello World

在eclipse里新建一个project,选Android-Android Project然后Next,继续解释一下Package Name:这个学过编程的人都应该熟悉了,类似于namespace,你定义的所有东西都在一个包里不会和别的包出现重命名的问题等等,不多说了。Create Activity:在android系统里,每个程序都是由一个个Activity的运行连成一起的。这里相当于创建了程序的入口Activity,相当于main()函数。Min SDK version:最低支持SDK版本,2对应1.1

2010-09-17 12:56:00 522

PyDev 2.7.1

PyDev 2.7.1插件包,配合eclipse使用 加压缩之后,将plugins和features分别复制到eclipse的文件夹下,选择合并

2012-12-27

STL源码剖析_中文简体完整版

STL源码剖析_中文简体完整版 适合新手入门看的STL的经典手册

2010-10-20

空空如也

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

TA关注的人

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