2017-05-12 4 views
1

Ich versuche, Deeplearning4j einen Patch vorzuschlagen, aber zuerst muss ich in der Lage sein, das Projekt zu bauen. Ich kann es aus Maven mit den manuellen Anweisungen erstellen, aber IntelliJ (2016.3.6) findet Fehler, und wenn ich mir den Quellcode anschaue, kann ich es nicht tadeln.Wo wird Protokoll deklariert?

Die Quelldatei, die ich speziell von rumped ist, ist https://github.com/deeplearning4j/deeplearning4j/blob/master/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/main/java/org/deeplearning4j/models/word2vec/StaticWord2Vec.java, die ein paar Verweise auf eine Variable log hat, die nicht in dieser Datei deklariert ist.

package org.deeplearning4j.models.word2vec; 

import lombok.extern.slf4j.Slf4j; 
import org.deeplearning4j.models.embeddings.WeightLookupTable; 
import org.deeplearning4j.models.embeddings.reader.ModelUtils; 
import org.deeplearning4j.models.embeddings.wordvectors.WordVectors; 
import org.deeplearning4j.models.word2vec.wordstore.VocabCache; 
import org.nd4j.linalg.api.ndarray.INDArray; 
import org.nd4j.linalg.compression.AbstractStorage; 
import org.nd4j.linalg.factory.Nd4j; 
import org.nd4j.linalg.ops.transforms.Transforms; 

import java.util.ArrayList; 
import java.util.Collection; 
import java.util.List; 
import java.util.Map; 
import java.util.concurrent.ConcurrentHashMap; 

/** 
* This is special limited Word2Vec implementation, suited for serving as lookup table in concurrent multi-gpu environment 
* This implementation DOES NOT load all vectors onto any of gpus, instead of that it holds vectors in, optionally, compressed state in host memory. 
* This implementation DOES NOT provide some of original Word2Vec methods, such as wordsNearest or wordsNearestSum. 
* 
* @author [email protected] 
*/ 
@Slf4j 
public class StaticWord2Vec implements WordVectors { 
    private List<Map<Integer, INDArray>> cacheWrtDevice = new ArrayList<>(); 
    private AbstractStorage<Integer> storage; 
    private long cachePerDevice = 0L; 
    private VocabCache<VocabWord> vocabCache; 
    private String unk = null; 
... snipped 

Die Klasse erweitert eine Schnittstelle, erweitert jedoch nicht explizit eine übergeordnete Klasse. Inspizieren der Klassendatei, die von Maven javap mit, ich sehe:

Compiled from "StaticWord2Vec.java" 
public class org.deeplearning4j.models.word2vec.StaticWord2Vec 
implements org.deeplearning4j.models.embeddings.wordvectors.WordVectors { 
private static final org.slf4j.Logger log; 
... snipped 
+0

Für alle zukünftigen Fragen gibt es eine sehr aktive Entwickler-Community auf Gitter für DL4J: https://gitter.im/deeplearning4j/deeplearning4j – tremstat

+0

Werfen Sie einen Blick auf die '@ Slf4j' Annotation - https://projectlombok.org/ api/lombok/extern/slf4j/Slf4j.html –

Antwort

2

Ich bemerkte schließlich die Anmerkung @Slf4j und Verfolgung der Import-Anweisung, entdeckt, dass ich die Lombok plugin zu IntelliJ hinzufügen mussten in der Lage sein, dieses Projekt zu erstellen.

+0

siehe auch https://projectlombok.org/ –

Verwandte Themen