本人最近开始学习TensorFlow,一直崇尚使用最新稳定版的软件。看了网上各位大神的攻略,在笔记本(i5-8250U,8G,MX150-4G)上尝试安装Anaconda3+Python3.7+CUDA10.1+cuDNN7.6+TensorFlow-GPU1.14+VisualStudio2019成功。
本文参考了如下大神的文章,在此致敬!
打开Nvidia显卡驱动官网: https://www.geforce.cn/drivers. 找到显卡对应的型号并下载。
下载到的文件为:431.36-notebook-win10-64bit-international-whql.exe
点击该文件进行安装,显卡驱动更新完成后,查看Nvidia控制面板–>系统信息–>组件:找到NVCUDA.DLL的版本为:CUDA 10.1.120,说明该显卡支持目前最新的CUDA 10.1。
打开Nvidia官网,找到开发者–>CUDA:
选择对应的Windows版本,下载网络安装版或本地安装版均可。注意到CUDA最新的版本号是:10.1.168。
下载到的文件(本人下载的是网络安装版)为:cuda_10.1.168_win10_network.exe
打开Nvidia官网,找到开发者–>NVDIA开发者:
选择深度学习:
选择深度学习训练:
选择cuDNN进行下载:
cuDNN下载页面https://developer.nvidia.com/cudnn:下载前要登陆NVIDIA开发者账号,如果没有的话要注册一下。
下载到的文件为:cudnn-10.1-windows10-x64-v7.6.1.34.zip
注意一下版本对应:CUDA 是10.1版,cuDNN是7.6版。
打开Anaconda官网: https://www.anaconda.com/distribution/. 发现最新版:
下载得到的文件是:Anaconda3-2019.03-Windows-x86_64.exe ,该版本自带Python3.7.3。
打开Visual Studio 2019下载页面: https://visualstudio.microsoft.com/zh-hans/downloads/. 下载免费的社区版:
下载后的文件为:vs_community.exe
打开下载好的vs_community.exe文件,选择如下四个组件即可:通用Windows平台开发、使用C++的桌面开发、Python开发、Visual Studio扩展开发。
打开下载好的Anaconda3-2019.03-Windows-x86_64.exe文件安装。
打开下载好的cuda_10.1.168_win10_network.exe文件安装。
解压下载好的cudnn-10.1-windows10-x64-v7.6.1.34.zip文件,将所有的内容合并到CUDA安装目录对应的文件夹中。
右击我的电脑–>属性–>高级系统设置–>环境变量。
确认CUDA_PATH和CUDA_PATH_V10.1已存在。
然后找到系统变量Path,编辑修改:
将以下路径加入到其中:
前期采用pip在线安装TensorFlow-GPU版本,看似成功了,但一旦进入Python运行测试程序:import tensorflow as tf 就报错。上网查找,决定采用离线安装。
https://github.com/fo40225/tensorflow-windows-wheel
本人的CPU是第八代酷睿i5-8250U,支持AVX2指令集。如果不知道自己的CPU是否支持AVX2指令集,可以用CPU-Z软件查看。不支持AVX2指令集就下载SSE2版本。
下载到的两个压缩包文件,用7z软件解压。
这样下载到的文件分别为:
可以用两种方法在Anaconda里创建TensorFlow-GPU环境:
conda create -n TensorFlow-GPU python=3.7 #建立TensorFlow-GPU环境
conda activate TensorFlow-GPU #激活TensorFlow-GPU环境
python -m pip install --upgrade pip #更新pip到最新版
pip install d:\tensorflow-1.14.0-cp37-cp37m-win_amd64.whl #d:\换成你的文件所在的路径
pip install d:\tensorflow_gpu-1.14.0-cp37-cp37m-win_amd64.whl #d:\换成你的文件所在的路径
到此,全部安装完成。
打开Python或iPython,依次输入如下命令:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
nvidia-smi
nvcc -V