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
Für alle zukünftigen Fragen gibt es eine sehr aktive Entwickler-Community auf Gitter für DL4J: https://gitter.im/deeplearning4j/deeplearning4j – tremstat
Werfen Sie einen Blick auf die '@ Slf4j' Annotation - https://projectlombok.org/ api/lombok/extern/slf4j/Slf4j.html –