自迁移出 MediaWiki 以来,本页内容尚未经过审查。如果您愿意帮忙,请查看帮助指南!
此页面上的注释与 imagej-tensorflow 库的任何工具相关(例如更新站点 imagej-tensorflow 和 CSBDeep)。
如何安装 TensorFlow GPU 原生库
GPU 支持适用于配备 NVIDIA 显卡的 Linux 和 Windows 计算机。请注意,TensorFlow Java 本机绑定被认为是实验性的,虽然某些硬件/操作系统设置可以使用本页描述的轻松工具获得 GPU 支持,但在其他机器上我们没有成功。
1.安装支持Java的GPU的TensorFlow
1.开放Edit > Options > TensorFlow...
2.选择与您的系统匹配的 TensorFlow 版本
3.等待库下载并安装(完成后会弹出窗口告诉您)
4.重启斐济

例如,您可以通过找到已选择的选项(在屏幕截图中,TF 1.15.0 CPU)从CPU切换到GPU,并选择相同的TensorFlow版本但支持GPU(例如TF 1.15.0 GPU)。
2.安装CUDA®工具包和cuDNN
安装这些 NVIDIA 要求运行具有 GPU 支持的 TensorFlow,如第 TensorFlow Documentation 中所述。
需要安装哪些特定的 CUDA 和 cuDNN 版本?
ImageJ TensorFlow 安装程序中显示的 CUDA 和 CuDNN 版本(如上图所示)可帮助您设置正确的环境。
译文:CSBDeep更新节点附有TensorFlow 1.16.0,需要CUDA 10.1和cuDNN >= 7.5.1。
您还可以使用屏幕顶部的过滤器来过滤特定的 TensorFlow 或 CUDA 版本,或仅首发支持 GPU 的库。
注意:如果您在不同的 TensorFlow 版本上训练模型,则使用默认安装运行模型可能会失败。在这种情况下,请通过Edit > Options > TensorFlow...选择特定的 TensorFlow 版本,并安装与 TensorFlow 版本兼容的 CUDA 和 cuDNN。
3. 如何检查 GPU 支持是否有效
- 转到
Edit > Options > TensorFlow...并确保选择了 GPU 版本并且没有显示错误 -
使用
imagej-tensorflow运行命令时,可以通过Window > Console打开控制台。可能有与此类似的行(在本例中,没有手动安装 GPU 版本,因此使用默认的 CPU TensorFlow 版本):[INFO] No TF library found in /media/data/Programs/Fiji.app/lib/. [INFO] Using default TensorFlow version from JAR: TF 1.15.0 CPU </code>
- 有时这仍然不够,即使选择了正确的库并且控制台确认了这一点,GPU也没有被使用。请阅读下面针对特定操作系统的注释。
3.1 Windows 提示
分步示例
以下是成功安装GPU支持的分步示例:
- 按照 here 的说明为您的系统安装最新的 Nvidia 驱动程序
- 在斐济,打开
Edit > Options > TensorFlow...并切换到 TF 1.15.0 GPU - 从here安装
CUDA 10.1 - 从here下载
cuDNN 7.6.5 for CUDA 10.1(您需要注册/登录) - 将 cuDNN 文件从 ZIP 复制到 CUDA,如here所述
- 将
/PATH/TO/Fiji.app/lib/win64/tensorflow_jni.dll添加到您的PATH中(这是指南how to set system variables)
您应该设置的变量是这两个。通常,CUDA 在您安装时将为您完成此操作。

以及对 PATH 系统变量添加以下内容。

如果重新启动斐济后,您选择了 GPU 版本,但菜单Edit > Options > TensorFlow...仍然显示 CPU 版本(控制台窗口Window > Console中还报告一条消息,指出在 lib/win64 目录中缺少 TensorFlow),那么您可以尝试将 dll tensorflow_jni.dll从Fiji.app/lib/win64中的原始位置移动到斐济的根目录(通常包含斐济的 exe 的目录)斐济.app)。
3.2 Linux 提示
分步示例
- 按照 here 的说明为您的系统安装最新的 Nvidia 驱动程序
- 在斐济,打开
Edit > Options > TensorFlow...并切换到 TF 1.15.0 GPU - 从here安装
CUDA 10.1中选择您使用的Linux版本。 - 从here下载
cuDNN 7.6.5 for CUDA 10.1(您需要注册/登录)再次,从文档中选择适合您系统的版本,默认为Linux。 - 将 cuDNN 文件从 ZIP 复制到 CUDA,如here所述
####设置库路径
CUDA 和 cuDNN 需要添加到您的系统变量中,斐济才能使用它们。您可以通过在 .bashrc 或 .zshrc文件中添加与此类似的行来实现此目的:
export PATH=/usr/local/cuda/bin${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH}
..然后从命令行启动Fiji。另一种可能性工具Fiji启动器编辑如下所示:
export PATH=/usr/local/cuda/bin${PATH};export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH};/PATH_TO_APPS/Fiji.app/ImageJ-linux64
####多个GPU
如果您有多个启用 CUDA 的 GPU,您可能需要设置环境变量 CUDA_VISIBLE_DEVICES 来指定应使用的 GPU。
由于 CUDA 将尝试按速度枚举 GPU
$ export CUDA_VISIBLE_DEVICES=0
应该只给你最快的 GPU。在启动 Fiji 之前执行此行,或将其放入 ~/.bashrc 中,或在其他位置设置环境变量,如 ~/.pam_environment 中。有关如何设置环境变量的选项,请参阅发行版的文档。
任选:
如果这对于您的设置来说还不够。可以通过以下方式找到GPU的ID(按PCI进程顺序):
$ nvidia-smi
Thu Sep 14 17:39:33 2017
+—————————————————————————–+
| NVIDIA-SMI 375.66 Driver Version: 375.66 |
|——————————-+———————-+———————-+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 NVS 310 Off | 0000:A1:00.0 N/A | N/A |
| 30% 56C P0 N/A / N/A | 294MiB / 961MiB | N/A Default |
+——————————-+———————-+———————-+
| 1 TITAN Xp Off | 0000:03:00.0 Off | N/A |
| 23% 28C P8 9W / 250W | 1MiB / 12189MiB | 0% Default |
+——————————-+———————-+———————-+
并设置环境指标CUDA_DEVICE_ORDER:
$ export CUDA_DEVICE_ORDER="PCI_BUS_ID"
$ export CUDA_VISIBLE_DEVICES=1
有关详细信息,请参阅CUDA Programming Guide。
帮助
是不是有什么东西不起作用了?请发表您的问题in the forum!