自己这几天更换电脑,再加上前次旧电脑学习,安装了好几次TensorFlow,每次都遇到了一些问题,经常缺一些文件,在网上下载文件还很慢,走了不少弯路,特将完整的安装方法记录如下,以便后续使用,也供同行参考。
TensorFlow的学习需要有专门的Nvida的GPU显卡的电脑,GPU的显存最好在4G以上,我以前那台电脑只有1G显示只能学习一些非常初级模型,稍微复杂的模型就无法运行。对于没有GPU独显的同学,可以使用百度的AI Studio,上面提供免费的GPU服务器,每天可以免费使用8小时,并且直接安装好百度的PaddlePaddle,系统已经配置好,也可以快速学习人工智能。
可以在终端界面,通过nvidia-smi命令查看你的也显卡信息,查看你的电脑是上否有支持CUDA的显卡及相应的型号、显存。
也可以在控制面板中找NVIDIA Control Panel程序,升级Windows 11后发现控制面板中没有NVIDIA的控制面板了,可以在开启程序中通过查找找到。
在NVIDIA控制面板中,通过帮助查单–>系统信息–>组件,找到如下图所示NVCUDA64.dll程序所对应的版本,就是你计算机上CUDA能支持的版本,后续在下载CUDA时一定要与此相匹配,避免兼容性和莫名其妙的问题出现。我的笔记本是新的,显卡是Geforce Rtx 3060,安装的CUDA驱动程序是11.2版本,后续要查找与之对应的CUDA、CUDNN、Tensorflow-GPU版本进行安装,否则会出现不匹配的情况。
在TensorFlow官网的安装指南给出了TensorFlow、Python、CUDA对应的版本,我在前期学习中,由于安装版本问题,走了不少弯路。具体请参阅。
根据前面查询到的CUDA版本11.2,我决定尽可能安装高一些版本的工具,以减少后续组件升级的工作量,因此我确定安装cudnn 8.1,python 3.9,tensorflow 2.6作这台新电脑的研究环境。对于python和tensorflow可以不同项目使用不同的版本,自己后续可以根据项目需要进行调整,但需要尽可能在上图官方已经测试的版本中选择,否则可能出一些兼容性问题。
1、CUDA及cuDNN下载
CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。
cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。
CUDA看作是一个工作台,cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。
CUDA下载链接为:https://developer.nvidia.com/cuda-toolkit-archive,找到第一章信息对应的板版本。如下图所示,没有对应的Windows11版本,可以用Windows 10对应的版本可以安装和使用。文件比较大,请使用迅雷等下载工具下载,否则容易下载失败。另下载注意使用Local全部下载,后续查找缺少的Dll文件需要。
cuDNN的下载需要注册一下Nvidia开发帐号才能下载,下载地址为:https://developer.nvidia.com/cudnn。根据网站提示,先用邮箱注册一个开发者帐号,登录后出来下载下载页面,根据第二章确定的cuDNN版本,从归档历史库下载你计算机匹配的cuDNN版本。
2、CUDA安装
安装cuda时,第一次会让设置临时解压目录,第二次会让设置安装目录;临时解压路径,建议默认即可,也可以自定义。安装结束后,临时解压文件夹会自动删除。
安装目录,可以使用默认路径,也可以使用指定路径,关注一下安装路径,后续需要手工将几个程序所在路径加到系统环境变量的path参数中,以便于python程序调用。
CUDA安装过程比较简单,安装完后,将下面几个目录加到系统环境变量的path参数中,以使用python程序调用对应的程序和dll库。
CUDA文件比较大,如果你的计算机硬盘空间足够,建议用自定义选项,全部安装,避免少文件。我的计算机是SSD硬盘,空间不大,采用的是基本安装,在使用时发现少很多文件,刚开始是到网上DLL库上找并下载使用,发现存在文件不全且版本不对应情况,通过修改文件名勉强可以使用,但可能存在兼容性问题。
后面用winrar打开CUDA安装exe文件,可以通过查找功能找到缺少的文件,解压后放在cuda安装目录的bin文件目录下即可。红线文件是CUDA缺少的文件,绿线文件是下一步cuDNN解压拷贝的文件。
3、cuDNN安装
cuDNN是一些动态库文件,用解压缩软件打开,直接解压到前面一条CUDA的安装路径即可,解压后注意确认好文件的路径。此外,注意文件版本,与第2章找到的对应表对应。
1、Python文件下载
Python下载网站:https://www.python.org/downloads/。Python下载文件不是很好找,容易跳乱,各版的下载导航连接在页面下部,参见下图。
同样,下载文件也是在页面下部,根据自己需要的版本、操作系统找到对应的安装文件,Python安装文件不大,下载很快。
2、Python安装
Python安装时,注意先将下面的增加Python 3.9到path勾选上,避免后续手工添加,另外建议用自定义安装,将python安装到一个简单、短一点的目录,后续经常要用到。
将python安装到C:\python目录, 同时将install for all users选项选中。
python安装成功后,可以在CMD终端下,用python命令进入,检查版本以及是否可用。
先在Pycharm中建立一个项目,如果你使用的是其它开发工具,在你对应工具中创建项目。我这儿直接使用的是Virtualenv虚拟环境,使用要简单一些,前面使用过Anaconda,没有感觉到太大优势,问题还不少,这次就直接使用Pycharm的虚拟环境,感觉要简单一些。
注意选择Python解释器,如果你计算机上有多个python要选择与项目兼容的版本。
TensorFlow可以在具体项目中用pip安装,也可以用pycharm的工具安装,注意选择你电脑显卡能支持与兼容的版本,根据第二章,我选择的是2.6版本。
注意安装的是tensorflow-gpu,选择指定的版本,此处选择的是2.6.0,我试过用最新的2.7.0不兼容,无法使用。当前你也可以根据项目前期使用的版本选择对应的TensorFlow版本。此外还要注意对应的python、cuda版本,都要匹配才能正常使用。
TensorFlow安装的包比较多,速度比较慢,建议提前将pip.ini、pycharm的更新仓库都改为国内镜像:(https://pypi.tuna.tsinghua.edu.cn/simple/)。
在项目中创建一个测试文件test.py,以下几行代码即可。
import tensorflow as tf
if tf.test.gpu_device_name():
print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
else:
print("Please install GPU version of TF")
运行test.py如下所述,系统提示运行成功,并显示出GPU的型号,计算能力,我的显卡计算能力为8.6,感觉性能应该还不错,后面根据程序实际的计算性能再发分享报告。
C:\Users\86139\PycharmProjects\test3\venv\Scripts\python.exe C:/Users/86139/PycharmProjects/test3/test.py
2021-11-13 19:50:40.703464: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
Default GPU Device: /device:GPU:0
2021-11-13 19:50:42.588444: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Created device /device:GPU:0 with 3495 MB memory: -> device: 0, name: GeForce RTX 3060 Laptop GPU, pci bus id: 0000:01:00.0, compute capability: 8.6
2021-11-13 19:50:42.589427: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Created device /device:GPU:0 with 3495 MB memory: -> device: 0, name: GeForce RTX 3060 Laptop GPU, pci bus id: 0000:01:00.0, compute capability: 8.6
Process finished with exit code 0
通过上述工具安装,你可以在自己的计算机上进行人工智能的基础学习与研究了。