2016-02-12 1 views
10

Ich weiß nicht, was es von mir will. Ich bin mit

<dependency> 
     <groupId>org.deeplearning4j</groupId> 
     <artifactId>deeplearning4j-core</artifactId> 
     <version>${deeplearning4j.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.deeplearning4j</groupId> 
     <artifactId>deeplearning4j-nlp</artifactId> 
     <version>${deeplearning4j.version}</version> 
    </dependency> 

wo

<deeplearning4j.version>0.4-rc3.8</deeplearning4j.version> 

aber ich bin immer

Caused by: org.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendException: null 
    at org.nd4j.linalg.factory.Nd4jBackend.load(Nd4jBackend.java:148) ~[nd4j-api-0.4-rc3.7.jar:na] 
    at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:4498) ~[nd4j-api-0.4-rc3.7.jar:na] 
    ... 53 common frames omitted 

wenn ich versuche, das Google Wort Vektormodell zu laden:

@RequestMapping("/loadModel") 
public Boolean loadModel(@RequestParam(value="model") String model) { 

    Resource resource = appContext.getResource("WEB-INF/word-vector-models/" + model); 

    try { 
     File modelFile = resource.getFile(); 

     System.err.println(modelFile.getAbsolutePath()); 
     WordVectors googleModel = WordVectorSerializer.loadGoogleModel(modelFile, true); 
     this.wordVectorsMap.put(model, googleModel); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     return false; 
    } 

    return true; 
} 

Antwort

11

Es sieht aus wie Sie haben kein nd4j backend sp ecified in Ihrer Pom-Datei. Sie müssen einen haben, und Sie sollten nur einen verwenden (haben Sie nicht mehrere Backends in Ihrem Pom auf einmal, es sei denn, Sie verwenden Profile). Derzeit habe ich für Version 0.4-rc3.8 Glück mit nd4j-x86 auf nicht-GPU-fähigen Mac, Windows und Linux-Boxen. Wenn Sie Zugriff auf GPUs haben, können Sie eines der nd4j-jcublas-7.x Gläser verwenden, aber beachten Sie, dass es eine major Cuda rewrite geht nach ihrer Gitter geht.

Vorerst

Hier ist, wie ich meine pom.xml Abhängigkeiten einrichten. In der Standardeinstellung ((das heißt mvn clean install), läuft es mit nd4j-x86, aber wenn ich meinen Code auf die GPU-Box ziehen, ich hängen Sie einfach den Profilnamen (so mvn clean install -P cuda) und schalten Backends leicht:

<!-- Platform-dependent backend selection (netlib is default) --> 
<profiles> 
    <profile> 
     <id>cuda</id> 
     <dependencies> 
      <dependency> 
       <groupId>org.nd4j</groupId> 
       <artifactId>nd4j-jcublas-${cuda.version}</artifactId> 
       <version>${nd4j.version}</version> 
      </dependency> 
     </dependencies> 
    </profile> 
    <profile> 
     <id>netlib</id> 
     <dependencies> 
      <dependency> 
       <groupId>org.nd4j</groupId> 
       <artifactId>nd4j-x86</artifactId> 
       <version>${nd4j.version}</version> 
      </dependency> 
     </dependencies> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
    </profile> 
</profiles> 
<!-- end platform-dependent backend selection --> 


<dependencies> 
<!-- dl4j dependencies --> 
    <dependency> 
     <groupId>org.deeplearning4j</groupId> 
     <artifactId>deeplearning4j-core</artifactId> 
     <version>${dl4j.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.deeplearning4j</groupId> 
     <artifactId>deeplearning4j-ui</artifactId> 
     <version>${dl4j.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.deeplearning4j</groupId> 
     <artifactId>deeplearning4j-scaleout-api</artifactId> 
     <version>${dl4j.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.deeplearning4j</groupId> 
     <artifactId>deeplearning4j-scaleout-akka</artifactId> 
     <version>${dl4j.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.deeplearning4j</groupId> 
     <artifactId>deeplearning4j-scaleout-zookeeper</artifactId> 
     <version>${dl4j.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.deeplearning4j</groupId> 
     <artifactId>deeplearning4j-nlp</artifactId> 
     <version>${dl4j.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.deeplearning4j</groupId> 
     <artifactId>deeplearning4j-aws</artifactId> 
     <version>${dl4j.version}</version> 
    </dependency> 
    <!-- end dl4j dependencies --> 

    <!-- nd4j dependencies --> 
    <dependency> 
     <groupId>org.nd4j</groupId> 
     <artifactId>canova-nd4j-image</artifactId> 
     <version>${canova.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.nd4j</groupId> 
     <artifactId>canova-nd4j-codec</artifactId> 
     <version>${canova.version}</version> 
    </dependency> 
    <!-- end nd4j dependencies --> 

    <dependency> 
     <groupId>com.fasterxml.jackson.dataformat</groupId> 
     <artifactId>jackson-dataformat-yaml</artifactId> 
     <version>${jackson.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>net.java.openjfx.backport</groupId> 
     <artifactId>openjfx-78-backport</artifactId> 
     <version>1.8.0-ea-b96.1</version> 
    </dependency> 


    <!-- logging --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.7.13</version> 
    </dependency> 
    <!-- end logging --> 


    <dependency> 
     <groupId>org.apache.maven.reporting</groupId> 
     <artifactId>maven-reporting-api</artifactId> 
     <version>2.2.1</version> 
    </dependency> 
</dependencies>