环境: win10 + 显卡 1050Ti
( Visial Studio2017这里有个坑,后面补)
版本: anaconda3 + python3.6
版本:CUDA10.0 + cudnn7.6.4 + tensorflow-gpu2.1.0
工作台:Visial Studio Code
(可选)
全文:📌 标记为主!!!!
1.换源
📌为了速度,必须做。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
2.新建python3.6环境
我的环境是python3.7,tensorflow-gpu不支持的,
📌需要在anaconda新建一个python3.6环境:tensorflow
双环境切换运行: (了解)
-
主菜单启动:
默认是base系统,切换为虚拟环境:(这条命令必须记住
)activate tensorflow
-
anaconda面板启动虚拟环境:
-
退出:deactivate
不同环境下,pip和conda安装是不一样的,特别注意。
3.安装gpu-2.1.0
我尝试用anaconda自动安装gpu,会安装一些相关配置;(失败的,不用做这一步)
然而安装后的版本都是低版本,失败!
查看已安装:
cuda和cudnn、tensorflow-gpu是1.1.0版本,肯定是不对的
安装命令参考:(版本号,很慢,舍去这种方法,不用做)
pip install tensorflow-gpu==your_version
用清华源安装之前,切记要换源:
📌从清华源,默认是安装tensorflow-gpu高版本2.1.0
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu --upgrade
这里相关的库也更新了:
测试(果然失败):
原因:CUDA版本与Tensorflow版本冲突。
4.安装cuda-10.0
这里强调:cuda版本和cudnn版本对应很重要!参考版本对应
我的显卡是GeForce GTX 1050Ti,显卡的计算能力(compute capability)是6.1,
最终选择的是:tensorflow-gpu2.1.0+CUDA10.0+cudnn7.6.4
📌cudnn和cuda版本没有更新,下载更新(这里是cuda10版本百度云盘下载链接)
流程:
- 安装cuda.exe (win10下需安装Visual Studio,我之前安装了2017)
- 解压cudnn压缩包获得补丁
- 将补丁替换cuda安装目录
为了方便我以后查看,这里具体记录一下:
-
📌安装(这只是一个临时文件夹,安装完成后会自动删除掉,不用在意)
📌无脑next:(精简安装(会自动配置环境变量)、中间会让你确定是否安装、最后重启ok!)
下载的时候,特别慢,耐心等待。
总算是下载成功了,因为是默认安装,会安装visiual studio 等工具,
📌中间确定安装NAIDIA:(会提示重启才能安装)
会提示环境变量的路径(在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
),这里Visual Studio 也配置了。
安装完成会在桌面配置图标:(双击GeForce Experience安装NVIDIA驱动)
如果没有安装会遇到:
安装成功,后期运行时会显示你的版本:
打开NVIDIA驱动-》帮助-》系统信息-》组件(找到NVCUDA.DLL 可以查看到版本)
📌配置环境变量:
(可以查看到安装时自动配置路径:)
📌path里需要手动配置一条:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
📌验证安装:nvcc -V
cuda10安装完成 !
5.安装cudnn-7.6.4
📌解压之前下载的cudnn压缩包,等到三个文件夹,拖拽复制到cuda路径下:
📌新建cudnn环境变量
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
📌cudnn添加到path环境变量
%CUDA_PATH%\lib\x64
cudnn到此安装完成!
6.安装vs2019环境
我又兴致勃勃测试是否安装成功!import tensorflow as tf
依然报错:DLL load failed:找不到指定模块
困扰了我一下午,又是修改 gpu版本,又是修改numpy等环境,无果,但我接近真相了,不能放弃!!!
原因:我系统安装的是vs2017版本,和 tf-gpu 最新版支持 vs2019 不符。
(因为gpu2.1.0版本问题吧)参考于:Tensorflow 2.1.0 安装的坑
📌解决办法:下载vs2019的环境——VC_redist.x64.exe
,运行重启。
再次运行:(警告了一下,但忽略了,红红火火恍恍惚惚~)
感人一幕。hello gpu!
7.编辑器(可选)
之前剑走偏锋用eclipse+pydev,再到 jupyter notebook ,深度不好debug;pycharm没打算装,vscode先凑合!
vscode是在Anaconda Navigatior
控制面板装的,
装完是第二种样式,也不影响我原先的使用,暂且用着,后面遇到问题再补充!
写了一个test.py
import tensorflow as tf
tf.config.list_physical_devices('GPU')
警告应该是cuda版本10.0,应该要升级到10.1,我还没实践。
接下来就是感受gpu的快乐了!红红火火恍恍惚惚~
如果有用,那就点个赞吧;没用的话,就就就就再找找其他方法,小编已经没有可以奉献的了~
其他:
-
运行时警告:
Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
参考解释:您下载的TensorFlow太low了,根本没有通过兼容AVX来Compile。如果您下载源代码在该电脑上重新compile,就可以支持AVX。其实你的电脑是支持AVX的,只是编译好的TensorFlow不支持。处理参考链接(选做)。
-
前面cuda101问题(下面是一种教程,不对的)
参考教程:将cuda\bin路径下的cudart64_100.dll改为101!
同理它说什么名称不对,改过去(安装目录下是100改成10)
然后报错:F tensorflow/stream_executor/cuda/cuda_driver.cc:209] Check failed: err == cudaSuccess || err == cudaErrorInvalidValue Unexpected CUDA error: invalid argument
事实证明是不对的,我又把cuda改回100了(此部分有待探究)。