调试 Neighborhood Component Analysis的代码
http://www.cs.berkeley.edu/~fowlkes/software/nca/
发现里面有一个nca.cc文件和 mexit.m 和 nca.mexglx,mexit.m的文件内容:
mex nca.cc CC=g++ COPTIMFLAGS=-O3 CDEBUGFLAGS=-g CFLAGS='-fPIC -ansi -D_GNU_SOURCE -pthread -Wall' CXX=g++ CXXOPTIMFLAGS=-O3 CXXDEBUGFLAGS=-g CXXFLAGS='-fPIC -ansi -D_GNU_SOURCE -pthread -Wall'
开始试图在windows下弄一个g++编译器,用mex -setup 安装,但matlab识别不了, 后来查了
后来在windows下装了VC6.0,把 nca.cc改为nca.cpp,又改了下不同编译器对语法的不同的地方,编译过了. 生成nca.mexw32 , 该mex文件相当于让nca成为了maltab的内建函数.
Note:
1, 代码里面有一个函数minimize, 没看懂啥意思. 查了下, 以后再看.http://www.kyb.tuebingen.mpg.de/bs/people/carl/code/minimize/
2, 原文:http://www.cs.toronto.edu/~hinton/absps/nca.pdf 有点难理解
Prof. Sam Roweis的presentation pdf and talk about NCA:
http://videolectures.net/sam_roweis/
3, Prof. Chen cansong的一篇辅助理解下:
Discriminant common vectors versus neighbourhood components analysis and Laplacianfaces: A comparative study in small sample size problem
http://parnec.nuaa.edu.cn/jliu/papers/comparative.pdf
1 条评论:
Hi, Eric,
我最近也在做NCA方面的工作,也同样遇到了你的问题,请问能否把你编译好的文件nca.cpp和nca.mexw32发给我一份,十分感谢。
另外,不知道你所用的matlab版本是多少?
我的邮箱:zhouguangtong@gmail.com
发表评论