之前完成过一个基于tensorflow-gpu深度学习框架的科研训练项目,在配置环境的时候也是走了非常大的弯路,之后也在交流群里听过不少问环境配置的问题的同学,借着自己项目完成,C盘存储爆炸的时候,重装了一下系统,重新配置一下tensorflow-gpu,尝试着写一篇比较完整的教程文章
Tensorflow-gpu < 2.0, CUDA compute Capability 3.0
Tensorflow-gpu >=2.0, CUDA compute Capability 3.5
也就是显卡算力要达3.0才能够安装tensorflow1.x,笔者电脑显卡960M,算力5.0。960M已经是非常老的显卡了,一般近三年买的电脑都能支持没必要查,确定你用的不是A卡就行了(AMD很香,但是CUDA是英伟达的驱动没法安,之前也有看到消息说可以安了但是没太了解)
CUDA算力查询
找到最下面显示适配器选项,里面一般会展示GPU型号
第一个是集显,第二个是独显,看独显这一个即可。
其他方法可以网上找,或者直接按电脑型号查,这一步也可以直接跳过毕竟做深度学习的电脑基础还是应该有的吧
Anaconda里面包含了大量的Python用的基础库,例如Numpy(矩阵计算、高维度数组等,非常实用),h5py(衔接mat数组文件,这个我在这上面走了非常多弯路印象深刻),也包含一个python包和conda包,如果不想要这些杂七杂八的基础库想自己下载可以安装一个Miniconda,只包含了Python和conda。
anaconda官网
我尝试的时候速度不会很慢,anaconda也不是很大。
清华源
如果官网下载非常慢,从清华源镜像站下载很快
注意:python版本过高可能会导致Tensorflow出现一些错误要排除,所以若要特定版本tensorflow对应的anaconda也应该去清华源下载对应版本的anaconda较好(影响也并非很大)
下载下来正常安装即可,有几个特别的点可以注意一下
1、如果系统盘内存不充裕的可以安装在其他盘,需要修改环境变量,网上都能有解决方案。如果允许的话装C盘,非常省事。
2、安装过程中
建议两个都打✔,一个是给你添加环境变量,一个是默认使用anaconda里的Python。
Anaconda安装完成后,从开始菜单中打开Anaconda→Anaconda prompt或者用cmd
输入conda --version
首先确定自己Tensorflow要下载的版本,我自己原来用的是Tensorflow1.15.0,Tensorflow2与Tensorflow1自我感觉差距还是相对很大的,至于选择哪个版本的话感觉各有优势。这次考虑到2.x的优势,考虑下载目前最新版本的tensorflow2.3.1尝试一下
1、Tensorflow1.x跟2.x的区别确实有点大,比如在1.x中几乎一定会用到的“get_variable”、“Session”、“placeholder"都被删除了,虽然报错时会让你修改名字就可,但是对于初学者难免要用别人的源码,用v1会有很多意想不到的BUG和修改v1版本代码的额外开销。
Ps:据说一句 import tensorflow.compat.v1 as tf 就可以在2.x版本下运行1.x下代码,没有尝试过但是应该可行。
2、Tensorflow2.x提供了更简单的API,更加注重Keras,更简单易用,更容易上手(官话),也就是引入了data和Keras两个新KPI,data还未使用不做评论,Keras确实是很常用到的框架。
3、毕竟是新版本,并且也更新了一段时间,bug和不足逐渐修复,性能的优势和更高的易用性确实有点吸引人
之前我是手动安装,看到不少文章用conda安装简单方便,大家可以尝试在虚拟环境中用conda命令安装cuda和cudnn,省去其他的步骤。但是又有文章说conda安装的cuda并不完整可能会报错,以防万一我选择原来手动安装的方式。下方是conda安装的指令
conda install cudatoolkit=10.1
conda install cudnn=7.4
如下是从官网文档中windows系统下写的GPU与CUDA与cuDNN对应版本,根据tensorflow版本选择性安装,若是安装高版本CUDA运行时会报错,解决方法就是通过修改cuda目录下报错文件后缀(例如nvcuda11.0.dll改成nvcuda10.1,实测有效)
安装CUDA之前,首先先看一下自己英伟达驱动是否更新。
方法就是打开NVIDIA控制面板
点击右下角系统信息
再点击组件
3D设置下NVCUDA.DLL就是你所能支持的最高版本CUDA(比如我现在是支持最高版本是CUDA7.5.14)。如果不能支持,需要去英伟达官网找你显卡对应型号的驱动下载。
驱动安装完后这就是我能够安装的最高版本CUDA 11.1
之后就是cuDNN和CUDA的安装,CUDA正常下载安装就可以了,cuDNN直接解压到CUDA所在文件夹位置。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
若是默认安装CUDA,CUDA存储路径大概就是这个位置。如果解压失败,也可以手动将cuDNN里的文件复制到对应的CUDA文件夹(总共也就三个文件)。
之后配置一下环境变量,将CUDA存储地址也就是上方的存储路径添加到环境变量中。可以借用Win10自带的搜索
然后搜索环境变量
点击编辑系统环境变量
再次点击右下角环境变量
选择用户变量Path→编辑→新建,然后复制CUDA存储路径保存即可。
首先建议先创建一个虚拟环境专门用于Tensorflow的学习
conda create -n your_env_name python=X.X #如果不设定python版本会默认用anaconda自带的python版本
输入y之后即创建完成
之后输入 conda info -e
即可查看已有的虚拟环境
再次输入
activate name #name为虚拟环境名字即可进入
以我个人为例
conda create -n tensorflow
activate tensorflow
成功进入虚拟环境
Tensorflow安装正式开始
输入conda install tensorflow-gpu=X.X.X #X.X.X为版本号
如果报错可以考虑使用
pip install tensorflow-gpu=X.X.X
安装完毕后就算是成功安装
conda install tensorflow-gpu
仍然打开刚才的anaconda promty,进入虚拟环境,方法如前所说。
输入python进入编译模式
尝试输入
import tensorflow as tf
tf.constant(1.)+tf.constant(1.)
输出结果比较繁杂。确定是否能成功使用看两个结果
一就是是否成功加载CUDA相关
全部为Successfully就是成功,如果这些文件报错没找到,就说明是你安装版本不对,具体方法可以找到这些文件(此时版本号不对,比如cudart64_101.dll可能是cudart64_110.dll),然后修改成它所需要的文件名
二就是看有没有成功输出
没有打印出结果但是预分配了一块数据块,说明代码成功运行。
打开Pycharm工程,点击File→Settings
选择Project PycharmWork(后面为工程名)→Python Interpreter→右上角的齿轮标志→Add
选择Conda environment→existing environment
interpreter选择conda下虚拟环境的python文件
C:\Users\DREW\anaconda3\envs\tensorflow\Tools\python.exe
Conda executable 选择conda文件(好像能自动选)C:\Users\DREW\anaconda3\Scripts\conda.exe
✔选make available to all projects
点OK就可以开始尝试使用了
可以从Settings界面看一下是否导入了虚拟环境的库(也就是Tensorflow-gpu)
可以看到成功安装tensorflow-gpu 2.3.1
验证:创建一个main.py,输入
import tensorflow as tf
print(tf.version)
test = tf.constant(“hello”)
print(test)
run main.py
至此,完成。
由于明年要实习所以提前接受了毕业实习的任务,比较忙。导致后面的部分可能比较赶工,如果有什么不足和不对的欢迎联系。我可以解答和修改。