写在前面:win10(64位)家庭中文版系统;RTX2060显卡。
1.默认电脑都是装了显卡驱动的,检查一下自己的驱动版本:电脑右下角打开Nvidia图标:我的是442.62版本。提示我有新版本驱动,不过我并没有更新。
若无驱动,去Nvidia官网下载自己的显卡对应的驱动。https://www.nvidia.com/Download/index.aspx?lang=en-us
2. 安装VS,我用的是VS2017企业版本。下载--安装 即可。
3. 安装Cuda 和Cudnn:我选用的版本的Cuda 10.0和 Cudnn7.6. 注:一定要先安装VS,再安装Cuda,否则会出现VS找不到Cuda的情况!!
(1)官方的版本说明中,给出了显卡驱动版本范围对应的Cuda 版本:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
可知本机的显卡驱动版本(442.62 version)满足与Cuda 10.0的对应条件。
CUDA 下载地址 https://developer.nvidia.com/cuda-downloads ,安装方式:local。有链接说local的下载方式包含了与Cuda匹配的显卡驱动,不知道是不是这样,我一路默认安装,没出现啥问题。
(2)检查并添加环境变量(直接参考https://blog.csdn.net/u013165921/article/details/77891913 和 https://blog.csdn.net/threefourly/article/details/84492563):Cuda安装成功后,右键计算机属性--高级系统设置--环境变量,可以看到系统变量中存在以下两个变量:
再手动添加几条:
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
(3)验证Cuda是否安装成功:可直接参考 https://blog.csdn.net/leelitian3/article/details/83272272
根据以上链接里的讲解,我选用了两种方式进行验证:
A. 命令行测试:cmd打开命令提示符,输入nvcc -V,看到以下信息说明安装成功;
B. 验证deviceQuery和bandwidthTest:打开命令提示符:定位到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\demo_suite 分别运行 deviceQuery.exe和bandwidthTest.exe,Result = PASS 便说明CUDA安装成功。
注:有的博客讲解里步骤(2)和(3)顺序是反过来的,貌似没啥区别。
(4)下载Cudnn :下载地址 https://developer.nvidia.com/rdp/cudnn-download
Cudnn下载解压后,有三个文件夹,把三个文件夹拷贝到cuda的安装目录(默认路径为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0)下。我把Cudnn中的三个文件夹覆盖到cuda的安装目录下时,lib文件夹不知道为啥复制不过去,当时是看文件修改时间才发现,只复制过去了其余两个文件夹。复制过去的时候一定要记得确认一下是否全部覆盖!
注:步骤(2)和(3)的参考链接博客中都对VS进行了配置,我不明白这一步的配置是不是必须的(我按步骤配置完,运行失败,显示找不到cublas.lib 等。就放弃了,希望有明白的大神来解释一下哈~感谢!)
4. 安装Anaconda: (这一部分主要参考了https://blog.csdn.net/qq_27245699/article/details/81050035,以下大部分步骤我都是按照这个博主写的进行的,这里我直接照搬过来了。感谢!)
(1)有官网下载和清华镜像下载两种方式,https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
我用的是 Anaconda3-5.2.0-Windows-x86_64,自带Python 3.6版本。安装anaconda的步骤基本上也是一路默认,除了Advanced options那一部分,我两个都勾上了(建议两个都选上,这样就不用单独配置anaconda环境了)。安装到最后提示我安装VSCode,,上网查了一下,好像不是必须的,就Skip了。
(2)检查是否安装成功:开始--anaconda prompt---输入conda --version,出现以下信息:
(3)检测目前安装了哪些环境: conda info --envs
(4)创建python环境,环境名称为 tensorflow:检查目前有哪些版本的python可以安装:conda search --full-name python
我安装的是python 3.6 版本: conda create --name tensorflow python=3.6
安装过程中提示 y/n,输入y即可。
输入 activate tensorflow 启动 python(tensorflow)环境;然后输入python,查看安装的python版本:
安装了Python之后,检测目前安装了哪些环境: conda info --envs 的截图:
5. 安装tensorflow,不是上文的tensorflow (python环境的名称) 哈!
为防止pip不是最新版本导致后续的安装出现错误,先将pip升级到最新(这一步不是必须的,稳妥起见,我先升级了):首先 activate tensorflow 然后 python -m pip install --upgrade pip
(以下部分主要参考了https://blog.csdn.net/liuyong5573/article/details/85472808 和https://blog.csdn.net/mayunhe_cs/article/details/87216299?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-3 )
打开命令行;activate tensorflow;
A. 安装cpu版本的tensorflow:如果输入pip install tensorflow,会自动下载tensorflow(cpu版)最新版本及其依赖,可能会报错,建议改为和下面gpu一样的下载方式:(pip install 路径\tensorflow-1.12.0-cp36-cp36m-win_amd64.whl)或者 命令 pip install https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.12.0-cp36-cp36m-win_amd64.whl
B. 安装GPU版本的tensorflow:之前下载的tensorflow-gpu-1.12.0的轮子,命令:pip install 路径\tensorflow_gpu-1.12.0-cp36-cp36m-win_amd64.whl,即可安装完成。出现超时问题时,同样可按以上方法解决。(轮子下载地址:github上下载大牛build的wheel:https://github.com/fo40225/tensorflow-windows-wheel ,使用的是 :1.12.0\py36\GPU\cuda100cudnn73sse2)
安装过程中可能出现的问题:socket.timeout: The read operation timed out。
查了一下(https://blog.csdn.net/qq_40247705/article/details/90679080)博主说是”由于网速不稳定,下载过慢,超出默认时间,所以只要修改一下响应时间就好了。“
方法如下:
windows下输入 pip --default-timeout=100 install 包名 (这里为:pip --default-timeout=100 install 路径\tensorflow_gpu-1.12.0-cp36-cp36m-win_amd64.whl)
linux下输入 pip --default-timeout=100 install -U 包名
我用以上方法并未解决问题,应该是我的网速太不稳定了,卡的一批。后来换了网线,用最初的安装方式(pip install 路径\tensorflow_gpu-1.12.0-cp36-cp36m-win_amd64.whl)安装成功了。
我刚开始是同时安装了CPU和GPU版本的tensorflow,如下图所示:
安装完cpu版本的tensorflow之后再安装gpu版本的tensorflow,会有一些安装包显示已存在(不是报错):
注:以上同时安装了cpu版本和GPU版本的tensorflow,只想安一个的版本的, 选择对应的其一即可。
后来测试pycharm发现,会自动调用cpu(我想让程序自动GPU运行),就想把cpu版本的tensorflow卸载,但是如上图所示,安装cpu和gpu版本的tf时,有一些安装包是重叠的,担心贸然卸载cpu版的tf,会让gpu版的tf缺失一些包。于是,我把anaconda卸载了。按照以上步骤,重新只安装了GPU版本的tensorflow(在后面的pycharm测试中,显示程序自动调用gpu了)。
-----
以上两个参考链接中,写的时候应该是官方还没有支持Cuda10.0版本的tensorflow-gpu。现在官方给出了经过测试的构建配置:https://tensorflow.google.cn/install/source_windows#cpu
按官方的说明,cuda10.0 + cudnn 7.4 是对应tensorflow-gpu 1.13.0及其以上版本的(pip install tensorflow-gpu==1.13),如下图所示。这里先留个坑,我试完再来~
6. 测试
重新打开prompt,在tensorflow环境下(activate tensorflow)输入:python,然后再输入import tensorflow as tf,没有报错就可以了!(或者输入:import tensorflow as tf (回车)tf.Session() 。没有报错,且能看到GPU的信息,则为成功。若显示找不到dll文件,将命令行关闭后重新再试一遍)
https://blog.csdn.net/lcb_coconut/article/details/79228759 后续缺少啥包,就在anaconda prompt里通过 pip install 安装,或者在Anaconda Navigator的tensorflow环境中找到并安装:
7. 安装pycharm并进行配置
安装版本:pycharm 2019
配置:https://blog.csdn.net/wumenglu1018/article/details/88170519
和 https://blog.csdn.net/mayunhe_cs/article/details/87216299?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-3
选择file——>settings——>project——>project interpreter,点击最右边的那个设置按钮,然后Virtualenv Environment——>Existing environment,在Interpreter里添加你刚刚创建环境的python地址:设置python解释器到anaconda/envs/tensorflow目录下python.exe;
经典的测试代码:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
如果在cmd中可以import tensorflow,在pycharm中不可以,见:https://blog.csdn.net/mayunhe_cs/article/details/87216299?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-3 的最后部分讲解。
8. 完成啦!后续有啥问题我再继续更新~