安装tensorflow-gpu 1.12.0

目录

项目场景:

问题描述1

CUDA版本不匹配,需要重新安装

解决方案1:

额外安装其他版本的CUDA,并实现版本自由切换。

问题描述2:

1. cuDNN包解压后的cudnn.h文件无法复制到目标文件夹中

2. 如何查看是否会到最初版本的CUDA

解决方案2:

1. cudnn.h无法复制

2. 回到最初版本的CUDA

问题描述3:

tensorflow-gpu 1.12.0安装不断出现意外

解决方案3:

1. 方式一(更推荐方式二,下载速度翻倍)

 2. 方式二

最终测试



项目场景:

现在需要在NVIDIA RTX3090显卡上运行一个tensorflow 1.x的程序,具体配置如下:

版本选择越新越好,因此选择安装tensorflow-gpu 1.12.0。在安装的过程中,陆续会碰到三个问题,我将在下面依次列出并给予解答。


问题描述1

CUDA版本不匹配,需要重新安装

在安装tensorflow-gpu 1.12.0之前,需要查看该版本的tensorflow所需搭配的CUDA 和cuDNN版本如下:

使用nvidia-smi命令查看当前CUDA版本为11.2:

因此需要在非root条件下,为当前用户额外安装CUDA 9.0和对应的cuDNN 7.1,否则tensorflow 1.12.0根本无法使用。例如,在python交互式命令行中引入tensorflow如下:

import tensorflow

会得到以下报错信息:

这就提示我们需要在CUDA 9.0的环境下才能正常使用tensorflow-gpu 1.12.0。


解决方案1:

额外安装其他版本的CUDA,并实现版本自由切换。

强烈推荐这篇博客:

非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)_随性拂尘倾心的博客-CSDN博客按照他的步骤去做就能很顺利地在多个CUDA版本间自由切换了。


问题描述2:

按照上述博客安装其他版本的CUDA和cuDNN时,在最后的文件配置阶段会遇到两个问题:

1. cuDNN包解压后的cudnn.h文件无法复制到目标文件夹中

在执行第一句话时,系统会提示权限不够(Permission Denied)。

2. 如何查看是否会到最初版本的CUDA

        正如作者所述,想要在多个版本的CUDA之间自由切换,只需每次修改bashrc文件并重新读取配置文件即可,再用nvcc -V指令就能看到CUDA版本在不断变化。但是,这种方式只能看到CUDA版本在额外安装的CUDA之间来回变化,当我们将先前添加的所有export语句都注释并使用source .bashrc重新读取配置文件以后,再使用nvcc -V查看,会发现此时显示的CUDA版本仍然是最后一次选择的CUDA版本,并非原始的CUDA 11.2。


解决方案2:

1. cudnn.h无法复制

        在目标文件夹下同样可以找到一个cudnn.h文件, 该文件是只读文件,因此无法复制替换。此时先将该文件手动删除,再将源文件夹下的cudnn.h文件复制过来即可。

2. 回到最初版本的CUDA

 此时需要将当前窗口关闭后重新打开,再使用nvcc -V命令会得到以下信息:

这个时候反而证明CUDA版本回到11.2了。我们还可以进一步做如下尝试进行验证:

在python交互式界面中输入以下语句:

import tensorflow

会得到报错信息:

提示我们需要在CUDA 9.0环境下使用tensorflow,恰好证明我们现在回到了最初的CUDA 11.2 。当然,这种验证方法需要在安装tensorflow之后才能使用。


问题描述3:

tensorflow-gpu 1.12.0安装不断出现意外

我们尝试使用pip命令自动安装tensorflow-gpu 1.12.0。我们使用如下命令进行安装:

python -m pip --default-timeout=6000 install --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.12.0 --no-cache-dir

但是仍然不能避免出现版本问题,如:

[ERROR] THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE

并且,清华镜像源下载速度十分慢;中科大镜像源虽然速度很快,但在安装好tensorflow,并在接下来安装其他附加组件时,会出现找不到匹配包的问题;其他镜像源(如阿里、豆瓣、中科院)更是直接找不到tensorflow-gpu 1.12.0版本的安装包。


解决方案3:

直接在本地下载tensorflow-gpu 1.12.0的安装包,上传到服务器后使用pip进行安装。

1. 方式一(更推荐方式二,下载速度翻倍)

安装包可以在pypi的官网上进行下载:tensorflow-gpu · PyPI

首先选择目标版本:

选择下载文件:

选择对应python3.6版本的安装包:

 2. 方式二

安装包可以在阿里云镜像源中进行下载:Links for tensorflow-gpu。在Pypi中下载速度以KB/s为单位,而在镜像源中下载以MB/s为单位。

选择目标安装包下载:


 下载到本地后,上传到服务器中:

再使用pip命令进行安装:

pip install tensorflow_gpu-1.12.0-cp36-cp36m-manylinux1_x86_64.whl


最终测试

  1.  将CUDA版本切换成CUDA 9.0。
  2. 在python交互界面中输入:
import tensorflow as tf 

sess = tf.Session() 
a = tf.constant(1) 
b = tf.constant(1) 
print(sess.run(a+b)) 

 参考:测试TensorFlow 是否安装成功_zqx951102的博客-CSDN博客_测试tensorflow是否安装成功

 得到输出结果为:

即表明安装成功 。

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
自编译tensorflow: 1.python3.5,tensorflow1.12; 2.支持cuda10.0,cudnn7.3.1,TensorRT-5.0.2.6-cuda10.0-cudnn7.3; 3.无mkl支持; 软硬件硬件环境:Ubuntu16.04,GeForce GTX 1080 TI 配置信息: hp@dla:~/work/ts_compile/tensorflow$ ./configure WARNING: --batch mode is deprecated. Please instead explicitly shut down your Bazel server using the command "bazel shutdown". You have bazel 0.19.1 installed. Please specify the location of python. [Default is /usr/bin/python]: /usr/bin/python3 Found possible Python library paths: /usr/local/lib/python3.5/dist-packages /usr/lib/python3/dist-packages Please input the desired Python library path to use. Default is [/usr/local/lib/python3.5/dist-packages] Do you wish to build TensorFlow with XLA JIT support? [Y/n]: XLA JIT support will be enabled for TensorFlow. Do you wish to build TensorFlow with OpenCL SYCL support? [y/N]: No OpenCL SYCL support will be enabled for TensorFlow. Do you wish to build TensorFlow with ROCm support? [y/N]: No ROCm support will be enabled for TensorFlow. Do you wish to build TensorFlow with CUDA support? [y/N]: y CUDA support will be enabled for TensorFlow. Please specify the CUDA SDK version you want to use. [Leave empty to default to CUDA 10.0]: Please specify the location where CUDA 10.0 toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]: /usr/local/cuda-10.0 Please specify the cuDNN version you want to use. [Leave empty to default to cuDNN 7]: 7.3.1 Please specify the location where cuDNN 7 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda-10.0]: Do you wish to build TensorFlow with TensorRT support? [y/N]: y TensorRT support will be enabled for TensorFlow. Please specify the location where TensorRT is installed. [Default is /usr/lib/x86_64-linux-gnu]://home/hp/bin/TensorRT-5.0.2.6-cuda10.0-cudnn7.3/targets/x86_64-linux-gnu Please specify the locally installed NCCL version you want to use. [Default is to use https://github.com/nvidia/nccl]: Please specify a list of comma-separated Cuda compute capabilities you want to build with. You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus. Please note that each additional compute capability significantly increases your build time and binary size. [Default is: 6.1,6.1,6.1]: Do you want to use clang as CUDA compiler? [y/N]: nvcc will be used as CUDA compiler. Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]: Do you wish to build TensorFlow with MPI support? [y/N]: No MPI support will be enabled for TensorFlow. Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native -Wno-sign-compare]: Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: Not configuring the WORKSPACE for Android builds. Preconfigured Bazel build configs. You can use any of the below by adding "--config=" to your build command. See .bazelrc for more details. --config=mkl # Build with MKL support. --config=monolithic # Config for mostly static monolithic build. --config=gdr # Build with GDR support. --config=verbs # Build with libverbs support. --config=ngraph # Build with Intel nGraph support. --config=dynamic_kernels # (Experimental) Build kernels into separate shared objects. Preconfigured Bazel build configs to DISABLE default on features: --config=noaws # Disable AWS S3 filesystem support. --config=nogcp # Disable GCP support. --config=nohdfs # Disable HDFS support. --config=noignite # Disable Apacha Ignite support. --config=nokafka # Disable Apache Kafka support. --config=nonccl # Disable NVIDIA NCCL support. Configuration finished 编译: bazel build --config=opt --verbose_failures //tensorflow/tools/pip_package:build_pip_package 卸载已有tensorflow: hp@dla:~/temp$ sudo pip3 uninstall tensorflow 安装自己编译的成果: hp@dla:~/temp$ sudo pip3 install tensorflow-1.12.0-cp35-cp35m-linux_x86_64.whl

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值