当前位置: 首页 > 知识库问答 >
问题:

使用CUDA运行Dl4j时出现问题

南门新荣
2023-03-14

我正在尝试使用GPU而不是CPU运行dl4j模型。该模型使用CPU运行良好。所以我决定尝试CUDA来利用我的GPU。我遵循了这里描述的每个步骤,对于CUDA安装,我按照NVIDIA的说明从这里安装CUDA工具包。代码编译正常,但出现错误:

Skipped [JCublasBackend] backend (unavailable): java.lang.UnsatisfiedLinkError: C:\Users\albertb\.javacpp\cache\cuda-10.2-7.6-1.5.3-windows-x86_64.jar\org\bytedeco\cuda\windows-x86_64\jnicudart.dll: Can't find dependent libraries
Exception in thread "main" java.lang.ExceptionInInitializerError
    at TestCUDA.run(TestCUDA.java:12)
    at TestCUDA.main(TestCUDA.java:7)
Caused by: java.lang.RuntimeException: org.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendException: Please ensure that you have an nd4j back-end on your classpath. Please see: https://deeplearning4j.konduit.ai/nd4j/backend
    at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:5094)
    at org.nd4j.linalg.factory.Nd4j.<clinit>(Nd4j.java:270)
    ... 2 more
Caused by: org.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendException: Please ensure that you have an nd4j backend on your classpath. Please see: https://deeplearning4j.konduit.ai/nd4j/backend
    at org.nd4j.linalg.factory.Nd4jBackend.load(Nd4jBackend.java:221)
    at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:5091)
    ... 3 more

我的项目是使用IntelliJ上的Maven创建的。所有的依赖项都是可以的,否则代码将无法编译。必须缺少某些后端依赖项、库或安装。可能是版本不兼容的问题
消息请确保您的类路径上有一个nd4j后端为我提供了一些关于必须存在的后端jar的提示。但是Maven应该负责这件事。。。据我所知。

我在网上搜索了一些解决方案或示例或教程...任何东西!!上面链接中有相同指令的所有冒号。

一些技术信息:

  • Windows 10

我会继续努力解决这个问题,但我会感谢任何帮助。谢谢

共有2个答案

程承恩
2023-03-14

我决定了!现在,我的例子在GeForce3090上工作!!!

我POM的一部分:

 org.example
    dl4jCuda
    1.0-SNAPSHOT

        <dependency>
            <groupId>org.deeplearning4j</groupId>
            <artifactId>deeplearning4j-cuda-11.0</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.deeplearning4j</groupId>
            <artifactId>deeplearning4j-core</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>

您还需要从源代码构建nd4j-cuda-11.0,并将所有*jar和dll文件添加到您的项目中!

俞学
2023-03-14

您可能安装了错误的cuda版本。nd4j cuda版本在工件id中指定,如:nd4j-cuda-11.0/10.2。

如果需要,可以使用javacpp的redist工件:https://search.maven.org/artifact/org.bytedeco/cuda-platform-redist/11.0-8.0-1.5.4/jar

这是cuda 11的最新版本。Nd4j只是在其所有本机互操作中使用javacpp。

 类似资料:
  • 问题内容: 我需要在Flask应用程序上定期运行某些任务。我决定使用一个简单的库-Schedule(https://github.com/dbader/schedule)来执行此操作。我在与主应用程序线程不同的线程上运行任务计划程序。这是相关的代码片段。 运行此程序时,我想要“运行定期任务!” 每10秒打印一次。但是,这是我得到的输出。 显然,由于某种原因,任务似乎每10秒执行两次,而不是一次。但

  • 问题内容: 我已经将一个Java项目编译到一个Jar文件中,并且在运行它时遇到了问题。 当我跑步时: 我收到以下错误 该类文件不在jar的根目录中,因此我尝试更改主类的路径以使其与该类文件的路径匹配,并且遇到相同的问题。 我应该展平文件结构吗?如果是这样,我该怎么做。如果有任何用途,我正在使用Ant来构建Jar文件。 更新 这是jar的内容以及相关的Ant部分,我将我工作的公司的名称更改为“ or

  • 失败:生成失败,出现异常。 生成在8s中失败cmd:命令失败,退出代码为%1错误输出:failure:生成失败,但出现异常。

  • 我在运行数据流作业时得到以下错误。我正试图将现有的beam版本更新到2.11.0,但在运行时出现了以下错误。 java.lang.incompatibleClassChangeError:类org.apache.beam.model.pipeline.v1.runnerAPI$standardpTransforms$Primitives没有实现在org.apache.beam.runners.co

  • 当我试图使用命令运行create-react-app时,我收到以下消息 然后,我尝试使用全局卸载create-react-app,并再次运行npx命令。我仍然收到相同的消息,即我应该全局卸载create-react-app,即使如此,全局安装的唯一模块是我机器上的npm

  • 问题内容: 我在尝试使用sqlplus将sql脚本运行到oracle时遇到问题。该脚本仅填充一些虚拟数据: 使用Oracle SQL Developer运行脚本时,脚本运行良好,但是使用sqlplus命令行工具时,将输出以下内容,然后将其挂起: 我正在使用以下命令行运行该工具,该命令在其他脚本中也可以正常运行: 有任何想法吗?谢谢。 问题答案: 您需要在脚本的末尾放置一个,或以(例如重定向的输入代