使用Clion调试fastText源代码

前言
最近在导师的带领下开始研究fastText,fastText是由Facebook开源的快速文本分类器,比深度学习快了很多,一般深度学习要4,5个小时才能跑出来的大文本分类,fastText只要数十秒就能跑出来,而且效果比起深度学习来说也差不了多少。可以说是对于一些设备配置没那么好的研究是个福音。然后呢,导师布置了一个任务,既然是研究僧,那么就去深入研究吧!骚年!
好的,既然要读懂源代码,那么最起码就把fastText调试一遍好了,看看数据在里面的具体运行情况1,然后我就开始打开百度输入,“fastText 调试”,然后得到下面的结果:
这里写图片描述
好的,既然度娘不给力,那么谷歌爸爸总可以了吧,(ps,7.1号后关了好多vpn,伤心):
这里写图片描述

然后我就这个表情:
这里写图片描述

既然不能拿来主义,那就只要自己开荒僻壤了。。。

1.环境准备
系统:Ubuntu 14.04
gcc :4.8.4
fastText(c++版): https://github.com/facebookresearch/fastText
clion : 2017.1.3版本

2.编译fastText并准备一份数据集
在github上把项目clone下来之后,cd到fastText文件夹,然后敲入make进行编译

$ git clone https://github.com/facebookresearch/fastText.git
$ cd fastText
$ make

然后,准备一份数据集,最好按照官网给的标准格式,在一句话后面加上label标签字样,如:
这里写图片描述

3.CLion操作
第一步将fastText整个项目通过import source导入,在edit configuration里进行参数输入
这里写图片描述
好的,然后天真的我以为这样就可以了,但是!在debug到线程的时候就报了这样的错误:
这里写图片描述

内心是极其崩溃的:
这里写图片描述

经过查阅了好几个博客和stackoverflow之后,才知道这是由于使用c++11的原因,是编译器的问题,所以我们需要在CMakeLists.txt中加上这样一行,

set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-std=c++11 -pthread")

这里写图片描述

然后就可以愉快的进行debug了,跑通了一个流程:
这里写图片描述

尾语
以上就是fastText调试的全部过程,虽然看起来很简单,但是在网上资料很少以及本人c++基本是小白的情况下,黑灯瞎火摸索了半天,实是不易,转载请告知。
这里写图片描述

参考资料:

  1. http://blog.csdn.net/kangroger/article/details/39901601
  2. https://stackoverflow.com/questions/19463602/compiling-multithread-code-with-g
  3. http://www.cnblogs.com/langzou/p/5960346.html

猜你喜欢

转载自blog.csdn.net/sinat_33455447/article/details/74505671