tensorflow - Tensorflow:找出预构建的 tensorflow 轮子所针对的 CUDA/CuDNN 版本
问题描述
我已经安装了 tensorflow-gpu 1.14,但是我通过预构建的轮子安装了它,所以我不知道它最初构建的 CUDA/CuDNN 版本是什么。如何找出来?
我问这个问题的原因是,就我而言,我想先安装一个特定的 Tensorflow 轮,然后再安装所需的 CUDA/CuDNN 版本以支持我的 Tensorflow。如果运行时 CUDA/CuDNN 库与 Tensorflow 构建的原始 CuDA/CuDNN 库不匹配,则可能会出现错误“找不到'cudart64_80.dll'”或“7.1.5 中内置的 cudnn 库不匹配” ,运行时间为 7.0.5"。
特别是在我的情况下,我的错误消息是“tensorflow/stream_executor/platform/default/dso_loader.cc:53] 无法 dlopen library 'libcudnn.so.7'; dlerror: libcudnn.so.7: cannot open shared object file:没有这样的文件或目录;LD_LIBRARY_PATH: /usr/local/cuda/lib64:/usr/local/cuda-9.0/lib64:"
这个错误很奇怪,因为 libcudnn.so.7 已实际安装并正确链接,请参阅
$ sudo ldconfig -p | grep libcudnn.so.7
libcudnn.so.7 (libc6,AArch64) => /usr/local/cuda/lib64/libcudnn.so.7
libcudnn.so.7 (libc6,AArch64) => /usr/lib/aarch64-linux-gnu/libcudnn.so.7
$ ls -alh /usr/local/cuda/lib64/libcudnn.so.7
lrwxrwxrwx 1 root root 44 Oct 17 19:17 /usr/local/cuda/lib64/libcudnn.so.7 -> /usr/lib/aarch64-linux-gnu/libcudnn.so.7.1.4
$ ls -alh /usr/lib/aarch64-linux-gnu/libcudnn.so.7
lrwxrwxrwx 1 root root 44 Oct 17 17:48 /usr/lib/aarch64-linux-gnu/libcudnn.so.7 -> /usr/lib/aarch64-linux-gnu/libcudnn.so.7.1.4
我的调试过程,(1)我试图通过以下方式在我的系统中找到 tensorflow 包
$ python -c "import tensorflow as tf; print(tf.__file__)"
***/lib/python3.5/site-packages/tensorflow/__init__.py
(2) 然后我 cd 到那个目录并试图找出硬编码的构建信息
$ cat python/platform/build_info.py
is_cuda_build = True
cuda_version_number = '9.0'
cudnn_version_number = '7.1'
但是,如果这是真的,我仍然无法理解为什么会发生错误。
注意:
1. 引用原始的 Tensorflow-to-CUDA/CuDNN 绑定不起作用,因为我的 tensorflow 是通过预先构建的轮子安装的。
2. 检查运行时 CUDA/CuDNN 并不能回答问题,我是在构建阶段询问库。
3. 基于runtime CUDA/CuDNN重新安装Tensorflow不是首选方案。
解决方案
了解安装的 CUDA/cuDNN 版本
跑
nvidia-smi
Tensorflow 1.14 支持 CUDA 10.0 和 cuDNN 7.4。
要安装支持 GPU 的 Tensorflow,请按照Tensorflow站点中提到的说明进行操作。
推荐阅读
- google-apps-script - 错误行中的事件 ID,无法调用方法 deleteEvent
- android - SQLite 数据库通过适配器获取所有数据到 Recyclerview。(寻找首选项)
- python - Python 统计测试中 CSV 文件的 T 测试“KeyError”问题
- excel - Excel - 根据分隔符将值放在不同的列中
- ios - 当我尝试使用 @objc(newName) 重命名时,方法“”提供的错误“Objective-C 方法”:与要求的选择器不匹配
- python - Python:如何用@符号替换字符串中的元音
- r - 使用 R 中的循环项动态创建数据帧
- javascript - 如何使选择菜单中的选项指向 Django URL
- java - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“null”附近使用正确的语法
- docker - 更改/降级 Docker API 版本