Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
user:zeman:joshua [2009/06/01 21:10] zeman Cesta k SRILM. |
user:zeman:joshua [2009/06/01 22:37] zeman Problém s kompatibilitou 64bitových strojů možná vyřešen. |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Joshua ====== | ====== Joshua ====== | ||
- | Toto jsou Danovy poznámky k práci s hierarchickým překladovým dekodérem Joshuou (reimplementace Hiera (David Chiang) v Javě od lidí z JHU). | + | Toto jsou Danovy poznámky k práci s hierarchickým překladovým dekodérem Joshuou (reimplementace Hiera (David Chiang) v Javě od lidí z JHU (Zhifei Li)). |
Zdroje informací: | Zdroje informací: | ||
* Soubory '' | * Soubory '' | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
- | ===== Instalace | + | ===== Instalace ===== |
- | SRILM je nástroj | + | Prerekvizity: |
+ | * Ant: kompilátor a make Javy. Máme ho v ''/ | ||
+ | * Swig: nástroj | ||
+ | * [[SRILM]]: nástroj Andrease Stolckeho na trénování | ||
- | Získat balík | + | Nastavit důležité proměnné (to by se hodilo přidat do '' |
- | Stažený balík srilm.tgz má asi 49 MB<nowiki>!</nowiki> Pozor, rozbaluje se do aktuální složky, takže před rozbalováním vytvořit složku srilm a vlézt do ní. | + | <code>setenv JAVA_HOME / |
+ | setenv SRILM / | ||
+ | setenv JOSHUA_HOME / | ||
- | < | + | Stáhnout aktuální verzi Joshuy: |
- | cd srilm | + | |
- | unzip.pl ../ | + | |
- | nebo | + | < |
+ | svn co https:// | ||
- | < | + | Přeložit Joshuu: |
- | Přečíst si soubor README, je tam mnoho tipů. Upravit Makefile, aby obsahoval cestu do mé složky. | + | < |
+ | ant compile</ | ||
- | < | + | Kdyby bylo potřeba v budoucnosti překompilovat Joshuu načisto, již zkompilované moduly se dají odstranit pomocí |
- | vi Makefile</ | + | |
- | diff: | + | < |
- | < | + | Otestujeme, že je Joshua funkční: |
- | < # SRILM = / | + | |
- | --- | + | |
- | > SRILM = / | + | |
- | Není tam popsaný akorát tento zádrhel: z neznámých důvodů SRILM očekává grafickou knihovnu TCL. Pokud tato knihovna není k dispozici, musíme mu říct, že se na ni má vykašlat. K tomu je potřeba ve složce SRILM vlézt do common, najít dílčí Makefile pro naši architekturu (lze zjistit pomocí '' | + | < |
+ | ./ | ||
+ | ./example/ | ||
- | < | + | Joshuu jsem překládal na zenu. Teď je ještě potřeba otestovat, že funguje i na clusteru, třeba na počítači sol1. A ejhle, na 64 bitech přestala fungovat spolupráce se SRILM. |
- | # TCL_INCLUDE = | + | |
- | # TCL_LIBRARY = -ltcl | + | |
- | NO_TCL = x</ | + | |
- | Nyní jsme připraveni přeložit SRILM. Pokud nejsme v kořenové složce '' | + | < |
+ | Jun 1, 2009 9:35:43 PM joshua.decoder.JoshuaConfiguration readConfigFile | ||
+ | INFO: you use a LM feature function, so make sure you have a LM grammar | ||
+ | Exception in thread " | ||
+ | at java.lang.ClassLoader$NativeLibrary.load(Native Method) | ||
+ | at java.lang.ClassLoader.loadLibrary0(ClassLoader.java: | ||
+ | at java.lang.ClassLoader.loadLibrary(ClassLoader.java: | ||
+ | at java.lang.Runtime.loadLibrary0(Runtime.java: | ||
+ | at java.lang.System.loadLibrary(System.java: | ||
+ | at joshua.corpus.vocab.SrilmSymbol.< | ||
+ | at joshua.decoder.JoshuaDecoder.initializeSymbolTable(JoshuaDecoder.java: | ||
+ | at joshua.decoder.JoshuaDecoder.initialize(JoshuaDecoder.java: | ||
+ | at joshua.decoder.JoshuaDecoder.< | ||
+ | at joshua.decoder.JoshuaDecoder.main(JoshuaDecoder.java:684)</ | ||
- | < | + | Přestože SRILM, který nebyl přeložen na 64 bitech, běží jak na 32, tak na 64 bitech, s Joshuou na 64 bitech spolupracovat neumí (na 32 ano). Nepomůže ani když překlad Joshuy pustím až na 64 bitech (při spolupráci s 32bitovým SRILM). |
- | Nyní bychom měli otestovat, že SRILM je přeložen a běží správně. K tomu ho musíme | + | **Nicméně se zdá, že pomohlo následující: |
+ | * Nalogoval jsem se na sol1 (aby kompilace probíhala na clusterové 64bitové architektuře). | ||
+ | * Upravil jsem $SRILM/ | ||
+ | * Vlezl jsem do $SRILM/ | ||
+ | * make clean, pak make World | ||
+ | * Vrátil jsem se do $JOSHUA_HOME a pustil ant clean, pak ant compile, nakonec ant test a hlavně ten ./ | ||
- | < | ||
- | cd test | ||
- | make all</ | ||
- | |||
- | Josh Schroeder: " | ||
- | |||
- | ==== Kompatibilita architektur ==== | ||
- | |||
- | Předpokládal bych, že když něco přeložím pro 32bitový počítač, poběží to i na 64bitovém, ale není to tak. Přeložil jsem SRILM na zenu a úspěšně jsem ho otestoval. Potom jsem se pokusil tentýž test zopakovat na luciferovi (lucifer.ufal.hide). Hlásilo to následující chybu: | ||
- | |||
- | < | ||
- | |||
- | Jako kdyby na luciferovi byla jiná verze céčka (a standardních knihoven) než na zenu. | ||
- | |||
- | **zen:** | ||
- | |||
- | < | ||
- | Using built-in specs. | ||
- | Target: i486-linux-gnu | ||
- | Configured with: ../ | ||
- | Thread model: posix | ||
- | gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu3)</ | ||
- | |||
- | **lucifer: | ||
- | |||
- | < | ||
- | Using built-in specs. | ||
- | Target: x86_64-redhat-linux | ||
- | Configured with: ../ | ||
- | Thread model: posix | ||
- | gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)</ | ||
- | |||
- | Možná je problém v tom, že na luciferovi ještě není Ubuntu, ale Red Hat. Zkusíme to tedy přímo na clusteru, např. **sol1:** | ||
- | |||
- | < | ||
- | Using built-in specs. | ||
- | Target: x86_64-linux-gnu | ||
- | Configured with: ../ | ||
- | Thread model: posix | ||
- | gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu3)</ | ||
- | |||
- | Tentokrát test běží bez chyb! | ||
- | |||
- | ===== Instalace ===== | ||
- | |||
- | Pozor, aby to běželo na clusteru LRC, je potřeba to překládat pro 64bitovou architekturu. V nejhorším případě přímo na clusteru samém. | ||
- | |||
- | Stáhnout aktuální verzi Joshuy: | ||
- | |||
- | < | ||
- | svn co https:// | ||
- | |||
- | Nastavit důležité proměnné (to by se hodilo přidat do '' | ||
- | |||
- | < | ||
- | which ant # / | ||
- | which swig # / | ||
- | setenv SRILM / |