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

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

下载并安装CUDA toolkit

下载并安装SRILM

下载并安装Atlas BLASIntel_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. 表单验证实现React-router跳转

    方法一:broserHistory.push handleSubmit(e){ e.preventDefault(); const path = '/demo'; broserHistory.push ...

  2. 1、React-Native的基础入门

    React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 React 在原生移动应用平台的衍生产物,目前支持iOS和安 ...

  3. 即将开始的python之路

    准备开始学py 记录一下 加油

  4. 交换机基础配置之结合以太通道的vlan设置

    我们将以上面的拓扑图来做实验,建立以太通道,并设置好vlan,将pc1和pc3放在同一vlan,将pc2和pc4放在同一vlan,同一vlan能跨交换机通信 在一切还没布置之前,四台pc机都在同一网段 ...

  5. Guava Cache 工具类 [ GuavaCacheUtil ]

    pom.xml <dependency> <groupId>com.google.guava</groupId> <artifactId>guava&l ...

  6. Shell学习——变量

    1.在Bash中,每一个变量的值都是字符串 2.查看某个进程的环境变量 cat /proc/$PID/environ | tr '\0' '\n' 3.变量赋值 3.1.var=value,注意var ...

  7. 谷歌浏览器如何调试JS

    平常在开发过程中,经常会接触到前端页面.那么对于js的调试那可是家常便饭,谷歌浏览器是常用来调试JS代码的工具,本文主要介绍如何利用谷歌浏览器来调试JS代码,协助我们进行开发工作,加快开发效率. 1. ...

  8. 3.4.2 Undefined类型【JavaScript高级程序设计第三版】

    Undefined 类型只有一个值,即特殊的 undefined.在使用 var 声明变量但未对其加以初始化时,这个变量的值就是 undefined,例如: var message; alert(me ...

  9. 操作 Java 数组的 12 个最佳方法

    1.  声明一个数组 Java代码: String[] aArray = new String[5]; String[] bArray = {"a","b",& ...

  10. [Bzoj3252]攻略(dfs序+线段树)

    Description 题目链接 Solution 可以想到,每次肯定是拿最大价值为最优 考虑改变树上一个点的值,只会影响它的子树,也就是dfs序上的一个区间, 于是可以以dfs序建线段树,这样就变成 ...