Win10+Tensorflow-gpu1.13.1+cuda10.1+cudnn7.5疯狂踩坑记

本文详细记录了从卸载旧版CUDA到成功安装TensorFlow-GPU 1.13的过程,包括解决常见问题和避免潜在陷阱的方法。适用于希望利用GPU加速深度学习任务的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面?

ATP曾经,曾经,曾经,拥有过一台装好了tensorflow-gpu的电脑。当初的ATP使用的还是tensorflow1.7.1,还在煞笔兮兮地用tf.matmul手写卷积神经网络。

后来,ATP运行某代码时出了问题,告诉ATP它用的tensorflow版本太低了。那么ATP显然需要升级一下。

据说升级tensorflow需要同时升级cuda和cudnn,那么ATP就把旧的卸了。

然后,它装不上新的了。

在ATP用CPU训练了若干模型后,ATP在一个不想学习的下午又打开了安装教程。在安装了一个下午以后ATP陷入了自闭,然后它让npy陪它去食堂吃了两串烤面筋和四串烤鱿鱼,然后晚上回来又装,然后装上了,似乎是成功的装上了。

为了防止其他有类似境遇的程序猿陷入像ATP一样不得不在晚上摄入额外热量的境地,ATP决定把它的坑罗列出来供大家参考。

毕竟这类踩坑博文虽然网上有很多,但总是少正好适合自己的那一篇,就像ATP的零食箱子里总是少一件零食一样。

以下内容假设你已经安装了Anaconda并且明白它的基本使用。否则可以去百度一下,这一部分实际上都大同小异。

先把旧的卸了

如果你的电脑纯洁得像一张白纸那么资瓷忽略这一部分。

实际上主要是要卸掉旧的cuda。像这样打开开始菜单里的设置:

1095951-20190512230001152-707882353.png

找到“应用”,点进去,然后在列表上方的下拉菜单里选择按安装日期排序,像这样:

1095951-20190512230100573-63617742.png

然后可以发现里面有一堆带着cuda这四个字母的东西,把它们全卸了。换句话说,假设你的旧版本是9.2,那么就把名字里带着9.2的全卸了。

别的东西没必要动,也最好别动。有些人可能为了图省事把安装日期是当天的东西全给卸了,但cuda的安装程序可能会对以前就有的一些驱动进行更改。ATP有一次失败的时候就一口气把所有全卸了,包括一个叫GeForce的东西,然后它打游戏的时候发现它的游戏帧数从70帧每秒掉到了15帧每秒,吓得ATP赶紧重新安装了显卡驱动,结果因祸得福把游戏帧数提到了90帧每秒。

安装cuda

首先要确定你可以安装哪个版本的cuda。查询方法是打开控制面板(运行+control),打开“硬件和声音”,找到一个叫“NVIDIA控制面板”的东西。

如果你的这个东西点不开,那可能需要重新装一遍显卡驱动。ATP的就是重装了GeForce以后才能点开的。

打开以后是下图这样:

1095951-20190512230838461-1366866447.png

然后打开帮助->系统信息,在对话框里的小标签里点“组件”。有一个叫“NVCUDA.DLL”的东西,后面跟着一串版本号,大概意思就是你的显卡能支持哪个版本的cuda。亲测版本低了可以,高了不行。如下图:

1095951-20190512231014761-423695315.png

然后可以查一下你想安装的cuda版本对应哪个版本的tensorflow和cudnn。这个可以很方便地百度到。

反正总之注意一定要按照对应关系安装!要不然会乱七八糟的。

ATP打算装的是tensorflow1.13,对应cuda10.1和cudnn7.5。

从这个地方下载cuda:https://developer.nvidia.com/cuda-downloads

按照你自己的系统一步步选,最后选exe(local)即可。下载完了双击exe,选择“精简”安装就可以了,不需要自定义什么东西。

安装cudnn

从这个地方下载cudnn:https://developer.nvidia.com/rdp/cudnn-download

它需要登录,但不需要特别去注册一个账号,用QQ都可以登录。

按照你的cuda版本下载对应的cudnn。一定要下载对应的!不然系统乱了都不知道咋乱的。。

它第一页只有最新版本cudnn,如果要下载旧一点的版本可以点下面的Archived Cudnn Releases,ATP下载的是7.5.0 for cuda10.1。

下载下来以后是个压缩包。解压开里面有bin、lib和include三个文件夹和一个文本文件。

接下来是重点!ATP在这个地方卡了好久。

打开目录C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1,它应该长这样:

1095951-20190512231829958-1050108478.png

把刚才那三个文件夹和一个文本文件直接复制到这个地方。实际上就是让cudnn的bin文件夹里的东西在这个cuda的bin文件夹里,lib文件夹里的东西在cuda的lib文件夹里,这样。

实际上,如果你打开cudnn的bin文件夹, 可以发现只有一个文件叫做cudnn64_7.dll。刚才做的事情等价于把这个文件复制粘贴到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin目录下。

有时候安装错误,tensorflow会报错,意思是缺少“cudnn64_7.dll”这个文件,问题就在于可能你没有让这个dll文件呆在cuda目录的bin文件夹里面。

这个也弄完了以后就okk了!就可以用Anaconda新建一个环境,然后pip安装tensorflow-gpu了。

注意在新建环境的时候要确保python是3.7,pip是19.1。然后pip install tensorflow-gpu,它就会自动装上最新的1.13版本了。

如果安装完了以后还是有奇怪的问题,也可以试试这个安装源:
https://github.com/fo40225/tensorflow-windows-wheel

一些问题

如果import tensorflow的时候报一个叫做“ImportError”的错,很有可能是cuda的版本跟显卡目前的支持不对应。

如果想把显卡弄得支持最高版本的cuda,ATP的方式是重新下载显卡驱动。因为ATP一开始的显卡只支持到9.2,但重新下了驱动以后突然神奇地变成了支持10.2。

顺便,ATP的显卡是1050Ti。

另外,要查看目前的tensorflow是支持CPU还是GPU,可以输入这一段代码:

import os
from tensorflow.python.client import device_lib
os.environ["TF_CPP_MIN_LOG_LEVEL"]="99"

if __name__=="__main__":
    print(device_lib.list_local_devices())

然后,没了。ATP要是哪天再把它现在的版本卸了然后遇到了新的坑再来补。

反正关键问题就是找好对应的cuda版本,然后把cudnn放到正确的地方就没问题了。

转载于:https://www.cnblogs.com/FromATP/p/10854142.html

自编译tensorflow1.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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值