DL4J

6

ben (önceden eğitilmiş vektörler dosya yükleme) DL4J aşağıdaki örnek yürütmek için çalıştı file Google Haberler-vektörler süper yavaş:DL4J

File gModel = new File("./GoogleNews-vectors-negative300.bin.gz"); 

Word2Vec vec = WordVectorSerializer.loadGoogleModel(gModel, true); 

InputStreamReader r = new InputStreamReader(System.in); 

BufferedReader br = new BufferedReader(r); 

for (; ;) { 
    System.out.print("Word: "); 
    String word = br.readLine(); 

    if ("EXIT".equals(word)) break; 

    Collection<String> lst = vec.wordsNearest(word, 20); 

    System.out.println(word + " -> " + lst); 
} 

Ama süper yavaş (alma ~ 10 dakika hesaplamak için en yakın kelimeler, doğru olsalar da).

Yeterli miktarda bellek var (-Xms20g -Xmx20g). Ben https://code.google.com/p/word2vec/

aynı Word2Vec örneği çalıştırdığınızda

çok çabuk yakın kelimeleri verir. Benim koduyla yanlış bir şey http://nd4j.org/benchmarking

var mı:

DL4J Numpy olarak iki kat daha hızlı olduğunu iddia hangi ND4J kullanır?

GÜNCELLEME: Bu, https://github.com/deeplearning4j/dl4j-0.4-examples.git tabanlı (herhangi bir bağımlılığa dokunmadım, sadece Google önceden eğitilen vektörler dosyasını okumaya çalıştım) temel alıyor. Word2VecRawTextExample yalnızca iyi çalışıyor (ancak veri boyutu nispeten küçüktür). performansını artırmak amacıyla

cevap

0

, şu yapmanızı öneriyorum: En mantıksal çekirdek sayısına eşit

  1. Set ortam değişkeni OMP_NUM_THREADS

  2. kullanırsanız Intel Math Kernel Library yükleyin Intel işlemcileri

  3. Yolunuzda, Intel Math Kernel kitaplığından mkl_intel_thread.dll nerede yaşıyor