libMF阅读记录(一):首先要编译通过

libMF是林智仁老师开发的一个用于推荐系统的矩阵分解库,下载地址:libMF

测试用的数据集是MovieLen,一个给电影评分的数据集,下载在此:ML

最近在阅读libMF的源代码,并且准备开发其Matlab接口,在此做做笔记。

我的开发环境是在Win8-64bit + Visual Studio 2013下,由于林老师写的程序有很好的跨平台特性,在Linux下开发也是OK的。

首先要解决的是VS2013下编译的大坑:

1,由于矩阵分解MF(mf.cpp和mf.h)是独立于train和predict的一个库,所以单独放到一个文件夹mf里面,所以要在Visual Studio的工程属性->配置属性->VC++目录->包含目录中间添加这个文件夹。(这不算坑)

2,创建工程的时候不要选择预编译头,如果不慎选了在工程属性->配置属性->C/C++->预编译头里面关闭预编译头的选项。

3,林智仁老师用的一些函数VS家认为是不安全的,默认编译不通过,在工程属性->配置属性->C/C++->预处理器->预处理器定义中添加这么两行:

_SCL_SECURE_NO_WARNINGS
_CRT_SECURE_NO_WARNINGS

4,在修改配置的时候属性页最上面的配置和平台选为所有配置和所有平台,否则要一次次改心都累了。

好了,至此可以编译通过了,不过需要注意的是,Debug的版本和Release的版本速度是天差地别的,调试的时候通用Debug,使用的时候一定使用Release x64发布。

其实想要使用是很简单的,林老师编译好了一个针对Win的版本,不过如果要写接口或者深入理解这个程序还是首先需要编译通过,待会儿才可以查看各种数据结构和调用堆栈。

以上。

时间: 2024-12-14 06:51:40

libMF阅读记录(一):首先要编译通过的相关文章

x264阅读记录-3

14. x264_macroblock_encode函数-1 这个函数主要根据已经选定的模式来对宏块残差进行编码. (1)如果是P_SKIP模式,那么调用x264_macroblock_encode_pskip函数 在x264_macroblock_encode_pskip中先对亮度和色度进行运动补偿,调用的函数函数h->mc.mc_luma和 h->mc.mc_chroma.这两个是函数指针,根据需要对其进行初始化.一般常用的是函数mc_luma, 在mc.c文件中.在mc_luma中如果存

Android源码AOSP之设置Settings阅读记录

Android 4.4 系统的设置源码阅读记录 ----------2014-7-3------------------ AndroidManifest.xml launch的activity是 Settings,另外有40多个activity继承于它,比如设置的一级菜单: wifi,蓝牙,声音,显示,安全,应用程序,语言和时间,关于设备等等.实际上都是这一个acitivy. 这里从安全设置看起,SecuritySettings.java 以资源文件R.xml.security_settings

linux0.11 源代码阅读记录

*/--> pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;}

NRE代码阅读记录

本来是为了论证自己的观点,把安全标签打在RunningConfig里,就写了个代码分析,结果写着写着发现的确不应该是在RunningVM里.意外的发现看代码的时候这么写写还是挺不错的,也避免了看了后面的忘记前面的.这种底层的代码实在是很难理解,对我来说就像是小学生去算高数一样,也只能硬着头皮去看了. vmmng.cc对应的就是如下界面(回头放图上来,ubuntu下没有什么截图工具,总不能把整个屏幕放上来)然后"3"键可以新建tiny-core虚拟机,对应到代码里,也就是input_th

《Javascript高级程序设计》阅读记录(三):第五章 上

这个系列以往文字地址: <Javascript高级程序设计>阅读记录(一):第二.三章 <Javascript高级程序设计>阅读记录(二):第四章 这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较深入,而且实际使用价值较大的内容记录下来,并且注释上我的一些想法.做这个一方面是提升了我的阅读效果以及方便我以后阅读 另一个目的是,Javascript高级程序设计这本书内容很多也很厚,希望其他没有时间的人可以通过看这系列摘录,就可以大体学到书里面的核

论文阅读记录: Automatic Image Colorization sig16

sig论文阅读记录 Let there be Color!: Joint End-to-end Learning of Global and Local Image Priorsfor Automatic Image Colorization with Simultaneous Classification ( siggraph 2016 ) 论文简介 论文主页:http://hi.cs.waseda.ac.jp/~iizuka/projects/colorization/en/ 作者是来自Wa

RFC4862 IPV6无状态地址自动配置 阅读记录

RFC4862 IPV6无状态地址自动配置 阅读记录 最近接触IPV6.首次接触RFC文档.之前总是以为,rfc标准都是已经实现好的,不需要自己实现,直接用就好了.现在才知道,rfc只是说明了实现的流程.具体实现还是要自己实现的.颠覆了自己的认知.下面就学习RFC 4862 关于ipv6无状态地址自动配置的学习记录如下. 第一章 引言在IPV6中,主机在决定如何自动配置它的接口时采取步骤如下.自动配置处理包括利用无状态自动配置生成链路本地地址(linklocal地址),生成全球地址,以及启动验证

《咨询的奥秘》阅读记录

1.<咨询的奥秘>阅读记录 1.1 为什么阅读<咨询的奥秘>? 答:为了成功的提出和获得建议. 1.2 <咨询的奥秘>简介 什么是咨询 成为一个成功咨询顾问的基本原则 如何避免抵制而取得信任 如何促成并控制客户的改善 咨询的奥秘就是如何提升个人竞争力并拥有良好人际关系的奥秘 1.3 为什么咨询如此艰难 咨询并不像看起来那么容易 舍比咨询法则 第一法则:无论客户和你说什么,问题始终存在. 第二法则:无论问题最初看起来是怎样,它始终是人的问题. 第三法则:不要忘记客户是按时

《Javascript高级程序设计》阅读记录(二):第四章

这个系列之前文字地址:http://www.cnblogs.com/qixinbo/p/6984374.html 这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较深入,而且实际使用价值较大的内容记录下来,并且注释上我的一些想法.做这个一方面是提升了我的阅读效果以及方便我以后阅读 另一个目的是,Javascript高级程序设计这本书内容很多也很厚,希望其他没有时间的人可以通过看这系列摘录,就可以大体学到书里面的核心内容. 绿色背景的内容是我认为比较值得注意的原著内容.