java - 如何确保我的 tensorFlow Java 程序正在 Windows 上使用我的 GPU?

标签 java windows tensorflow gpu inference

所以我在 Windows 中实现了用于 CPU 的 Java tensorFlow。现在 tf 1.10 之后的版本允许在 Windows 中进行 GPU 计算,我尝试建立连接。 现在在maven pom中我调用tensorflow_jni_gpu而不是tensorflow_jni。程序没有失败,但计算上似乎没有任何差异。如何检查我的程序是否正在使用 GPU 或者如何强制它使用 GPU?

最佳答案

要使用 GPU,您应该在 POM 中具有以下依赖项来处理 libtensorflow 而不是 tensorflow: `

<dependency>
    <groupId>org.tensorflow</groupId>
    <artifactId>libtensorflow</artifactId>
    <version>1.15.0</version>
</dependency>

<dependency>
    <groupId>org.tensorflow</groupId>
    <artifactId>libtensorflow_jni_gpu</artifactId>
    <version>1.15.0</version>
</dependency>

<dependency>
    <groupId>org.tensorflow</groupId>
    <artifactId>proto</artifactId>
    <version>1.15.0</version>
</dependency>

`

以及以下代码:

byte[] config = ConfigProto.newBuilder()
            .setGpuOptions(GPUOptions.newBuilder().setAllowGrowth(true))
            .build().toByteArray();       
    final Runner runner = Session.runner();
    runner.setOptions(config);

关于了解它是在 CPU 还是 GPU 上运行,您应该在应用程序日志中看到它,或者关于某些 CPU 指令尚未构建 tensorflow ,或者 tensorflow 管理加载 CUDA dll 等关于操作系统

关于java - 如何确保我的 tensorFlow Java 程序正在 Windows 上使用我的 GPU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60062509/

相关文章:

python-3.x - tensorflow 中的 'tf.contrib.rnn.DropoutWrapper' ' 到底是做什么的? (三个关键问题)

java - 如何通过 Swing gui 在后台线程中使用 jdbc

windows - 如何让 Cygwin 准确读取我的 Windows 环境变量?

python - 在 TF 2.1 功能 API 中使用 tf.hub.KerasLayer 会引发 ValueError : Python inputs incompatible with input_signature:

windows - Windows 7 上的 Python 3.4 中的 curses 需要什么?

windows - 从浏览器在客户端运行命令

python - 我可以使用 DistributionLambda 层优化三个参数吗?

java - JDBC 和 Hive 查询错误 10 或 9

java - 删除文件后,Logback 不会重新创建日志文件

java - 使用代理网络中的临时队列的请求/回复模式的 ActiveMQ/Camel 故障转移 - 无法发布到已删除的临时队列