【问题标题】:org.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendExceptionorg.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendException
【发布时间】:2016-02-12 15:57:03
【问题描述】:

我不知道它想从我这里得到什么。我正在使用

    <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>

在哪里

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

但我得到了

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

如果我尝试加载 Google 词向量模型:

@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;
}

【问题讨论】:

    标签: java deeplearning4j


    【解决方案1】:

    您的 pom 文件中似乎没有指定 nd4j backend。你必须有一个,而且你应该只使用一个(除非你使用配置文件,否则不要一次在你的 pom 中有多个后端)。目前,对于 0.4-rc3.8 版本,我在非 GPU 启用的 Mac、Windows 和 linux 机器上使用 nd4j-x86 很幸运。如果您可以访问 GPU,则可以使用其中一个 nd4j-jcublas-7.x jar,但请注意,根据他们的 Gitter,有一个 major Cuda rewrite 正在进行。

    现在,

    以下是我设置 pom.xml 依赖项的方法。默认情况下((即mvn clean install),它使用nd4j-x86运行,但是当我将代码拉到GPU盒上时,我只需附加配置文件名称(所以mvn clean install -P cuda)并轻松切换后端:

    <!-- 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多