CSLM工具(continuous space language model toolkit)用于训练NNLM,支持SRILM、KENLM(默认)语言模型工具,CUDA加速,CSTM统计机器翻译。

本文粗略介绍在SRILM与CUDA环境下配置CSLM工具过程。操作系统为Ubuntu64bit 13.04 桌面版,Xeon系列CPU,GEFORCE显卡...

下载并安装CUDA toolkit

下载并安装SRILM

下载并安装Atlas BLAS或Intel_MKL

下载并安装boost库

  ./bootstrap.sh

  ./b2 install

以上安装过程略,可参考源码根目录下README、INSTALL

解压CSLM_v3.0.tgz,编辑Makefile文件:

1)CUDA_ROOT ?= cuda安装目录

2)BOLM_DIR=$(SRILM)更改为BOLM_DIR=SRILM安装目录

3)LM_TOOLS_INC=-I$(LM_TOOLS_DIR)/include/lmmax -I$(LM_TOOLS_DIR)/include/sphinx3 -I$(LM_TOOLS_DIR)/include/sphinxbase

改为LM_TOOLS_INC=-I. -I$(LM_TOOLS_DIR)/include/lmmax -I$(LM_TOOLS_DIR)/include/sphinx3 -I$(LM_TOOLS_DIR)/include/sphinxbase

4)LM_LIBS=-L$(BOLM_DIR)/lib/i686 -loolm -ldstruct -lmisc

改为LM_LIBS=-L$(BOLM_DIR)/lib/i686-m64 -loolm -ldstruct -lmisc此处需要到SRILM安装目录确认链接库的存储位置

5)CFLAGS=${OPT_FLAGS} -Wall -g ${DB} ${BLAS} ${BOLM_FLAGS} ${MOSES_INC} ${MOSES_CFLAGS}

改为

CFLAGS=${OPT_FLAGS} -Wall -g ${DB} ${BLAS} ${BOLM_FLAGS} ${LM_TOOLS_INC} ${MOSES_INC} ${MOSES_CFLAGS}

6)可能会因为GCC版本导致使用链接库时报错,如无法找到log,log10等,若出现该情况则做以下修改:

$(LM_TOOLS_DIR)/dmp2max: $(LM_TOOLS_DIR)/dmp2max.o $(LM_TOOLS_OBJS_lmmax)
gcc -g -O3 -Wall -lm -pthread -o $@ $(LM_TOOLS_DIR)/dmp2max.o $(LM_TOOLS_OBJS_lmmax) -lm

$(LM_TOOLS_DIR)/lm_convert: $(LM_TOOLS_DIR)/main_lm_convert.o $(LM_TOOLS_OBJS_main)
gcc -g -O3 -Wall -lm -pthread -o $@ $(LM_TOOLS_DIR)/main_lm_convert.o $(LM_TOOLS_OBJS_main) -lm

$(LM_TOOLS_DIR)/max_read: $(LM_TOOLS_DIR)/lm_max_read.o $(LM_TOOLS_OBJS_lmmax)
gcc -g -O3 -Wall -lm -pthread -o $@ $(LM_TOOLS_DIR)/lm_max_read.o $(LM_TOOLS_OBJS_lmmax) -lm

make CUDA=1 BOLM_TOOL=SRILM

echo "/usr/local/cuda/lib64" >>/etc/ld.so.conf
ldconfig

CSLM 配置粗解的更多相关文章

  1. Android Studio gradle配置详解

    android gradle配置详解 AppExtension类及其属性 可能大部分人看到AppExtension类会感觉到非常的陌生,其实我们在app中的build.gradle中填写配置信息的时候 ...

  2. Log4j配置详解(转)

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  3. logback 常用配置详解<appender>

    logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...

  4. [转]阿里巴巴数据库连接池 druid配置详解

    一.背景 java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色 ...

  5. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  6. logback配置详解3<filter>

    logback 常用配置详解(三) <filter> <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一.返回DENY ...

  7. logback配置详解2<appender>

    logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写 ...

  8. log4j.properties配置详解

    1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN < ...

  9. Log4J日志配置详解

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

随机推荐

  1. SQL基础语句汇总

    连接数据库 1 mysql -h10.20.66.32 -uroot -p123456 -h后面是mysqlServer所在地址,-u后面是用户名,-p后面是密码 查看数据库 1 show datab ...

  2. hdu_1452_Happy 2004 (乘法逆元

    Consider a positive integer X,and let S be the sum of all positive integer divisors of 2004^X. Your ...

  3. .NET 客户IP地址捕捉

    MVC模式下要获取客户IP可以在ActionFilterAttribute中进行拦截 filterContext.HttpContext.Request.UserHostAddress 同样,在Web ...

  4. float元素浮动后高度不一致导致错位的解决办方法

    换行开始的第一个元素clear:left;即可 例如  四列时应该时第5个,9个...加clear:left; .row .col-lg-3:nth-child(4n+1),.row .col-md- ...

  5. 列表,元组的操作,for循环

    1.列表 # li = ["wang","jian","wei"] # print(li) # 结果:['wang', 'jian', 'w ...

  6. pytorch中如何使用预训练词向量

    不涉及具体代码,只是记录一下自己的疑惑. 我们知道对于在pytorch中,我们通过构建一个词向量矩阵对象.这个时候对象矩阵是随机初始化的,然后我们的输入是单词的数值表达,也就是一些索引.那么我们会根据 ...

  7. poj 2965 枚举+DFS

    The Pilots Brothers' refrigerator Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 25343 ...

  8. c++ 计算器 带括号 代码实现

    我用了两个栈 一个用来存数字 一个用来存运算符 这里引入优先度的概念便于理解 不同的运算符有不同的优先度 当优先度高的符号进入栈中 所有比它优先度低的符号都要弹出 对 就是这么霸道 ( 没有优先度 没 ...

  9. linux c scanf()小解

    今天学习了新的内容,关于c语言的scanf()函数. scanf()函数,读取指定格式的值赋值给相应变量.空格(‘ ‘),回车('\n'),TAB是分隔符,轻易不会被读取.还有,该函数的返回值是正确读 ...

  10. Android 意图通用类 IntentUrl

    1.整体分析 1.1.源代码如下,可以直接Copy. public class IntentUtil { /** * 打开链接 * 根据设置判断是用那种方式打开 * * @param context ...