如果我们将libtensorflow_jni和libtensorflow_jni_gpu添加到maven pom中,或者可能是这样的:
<dependency>
<groupId>org.tensorflow</groupId>
<artifactId>tensorflow</artifactId>
</dependency>
<dependency>
<groupId>org.tensorflow</groupId>
<artifactId>libtensorflow_jni_gpu</artifactId>
</dependency>
我们能否期望构建的应用程序能够运行并利用CPU和GPU平台? 或者那些图书馆是互相排斥的?
答案 0 :(得分:0)
libtensorflow_jni_gpu
具有该功能的超集,因为它允许利用CPU和GPU(当然在系统上可用)进行操作。
但是,libtensorflow_jni_gpu
目前要求在运行程序的系统上安装CUDA库(无论是否物理安装了GPU)。
希望有所帮助。
答案 1 :(得分:0)
我相信我能回答我的问题。
基于libtensorflow_jni
和libtensorflow_jni_gpu
jars结构以及NativeLibrary.java实现,我可以得出结论,他们的类路径名称空间重叠,因此这些原生jar是互斥 !
在任何特定时刻,都可以拥有
<dependency>
<groupId>org.tensorflow</groupId>
<artifactId>libtensorflow_jni</artifactId>
</dependency>
或
<dependency>
<groupId>org.tensorflow</groupId>
<artifactId>libtensorflow_jni_gpu</artifactId>
</dependency>
在类路径上,但从不两者!
这样做的一个实际意义是您的应用程序需要构建两个单独的部署jar(一个用于CPU和一个GPU环境)。