参考tensorflow官网:https://www.tensorflow.org/install/source#common_installation_problems
tf版本 | Python 版本 | 编译器 | 编译工具 | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-1.13.1 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.19.2 | 7.4 | 10.0 |
tensorflow_gpu-1.12.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.11.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.10.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.9.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.11.0 | 7 | 9 |
tensorflow_gpu-1.8.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.10.0 | 7 | 9 |
tensorflow_gpu-1.7.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.9.0 | 7 | 9 |
tensorflow_gpu-1.6.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.9.0 | 7 | 9 |
tensorflow_gpu-1.5.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.8.0 | 7 | 9 |
tensorflow_gpu-1.4.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.5.4 | 6 | 8 |
tensorflow_gpu-1.3.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.4.5 | 6 | 8 |
tensorflow_gpu-1.2.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.4.5 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.4.2 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.4.2 | 5.1 | 8 |
我使用pip的命令安装tensorflow:
sudo pip3 install tensorflow-gpu
由于后边没有加版本号,所以默认安装了tensorflow-gpu的最新2.0.0版,后边运行的过程出现了cnDNN无法导入的问题:
tensorflow.python.framework.errors_iml.UnknownError:Failed to get convolution algorithm. This is because cnDNN failed to initialize, so try looking to see if a warning log message was printed above. [Op:Conv2D]
是因为cnDNN和当前环境不匹配,因此升级了cnDNN版本,由原来的7.3.1改为7.6.0(也尝试改过7.4.1以上,都不好使):
删除旧版本:
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn
解压下载安装包,出现cuda文件夹,在它的目录下打开终端执行:
sudo cp -a include/* /usr/local/cuda/include
sudo cp -a lib64/* /usr/local/cuda/lib64
查询是否安装成功:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
出现cnDNN版本。
然后运行程序就不会出现问题。因此tensorflow2.0.0应该对应cuda10.0,和cuDNN的7.6.0以上。
cnDNN下载网址:https://developer.nvidia.com/rdp/cudnn-archive