本节内容基于Windows 10搭建TensorFlow开发环境,分别部署tensorflow-cpu和tensorflow-gpu两个模式下的虚拟开发环境。
1、安装Anaconda
基于Windows系统的Anaconda安装包,可从Anaconda官网和清华大学软件镜像站下载。下载时需要注意选择与操作系统和Python版本适配的安装包,tensorflow2.6版本支持Python3.6~Python3.9。
图 1-4 适配不同操作系统的Anaconda安装包
基于64位Windows 10操作系统,需要选择图1-4所示的64-Bit Graphical Installer 安装包,该安装包支持Python3.9版本。
安装包下载完成,执行安装包在本地计算机安装Anaconda,安装过程需要注意选择自动添加环境变量检查项。如图1-5所示,检查该项后安装包会自动将安装路径注册到Windows系统变量,命令行窗口运行Anaconda时,不会出现找不到Anaconda问题。
图 1-5检查自动添加环境变量项
若忘记检查该项,可在安装完成后再配置环境变量。打开电脑—>属性—>高级系统设置—>环境变量,在系统变量Path变量下增加Anaconda的安装路径,若安装在D:\program目录下,则完整路径为:
D:\program\anaconda3\condabin
Anaconda安装和配置完成后,可以在系统的程序菜单找到Anaconda程序项,启动Anaconda即可。Anaconda已经把Python集成在内,因此就不需要再安装Python了。图1-6是Anaconda工作界面。
图 1-6Anaconda工作界面
在Anaconda工作界面可以创建虚拟开发环境,也可以使用Anaconda集成的各种工具软件。比较有用的是工具软件是Jupyter Notebook,它是一个可以在浏览器编写Python程序的工具。不过Jupyter Notebook并不是一个集成开发环境,在代码自动排版和编写、程序调试、项目文件管理、单元测试等功能要比集成开发环境弱一些,建议学习者在有条件的情况下,还是选用集成开发环境比较好,也能学到系统集成等更多知识。
安装Anaconda主要的任务就是创建两个tensorflow开发环境,一个基于CPU开发环境,一个基于GPU开发环境(GPU开发环境需要独立显卡支持),当然使用Anaconda也可以创建其它独立的应用开发环境。
下面主要介绍Anaconda虚拟开发环境创建、激活、查看、退出、删除命令。
创建环境命令
Anaconda提供了一个默认的base环境,也可以直接在base环境中开发应用程序。基于课程内容需要,我们创建tensorflow-cpu环境。创建环境的命令为:
conda create -n ENV_NAME python=x.x
其中,-n表示环境名称参数,ENV_NAME为待创建虚拟开发环境的名称,x.x表示该环境中python的版本是多少,例如想要3.9版本的python,就写python=3.9。
启动Windows命令行窗口,在窗口输入下面的命令:
conda create -n tensorflow-cpu python=3.9
若出现‘conda’不是内部或外部命令,也不是可运行的程序等信息,需要配置Anaconda系统环境变量。命令执行完成,名称为tensorflow-cpu的虚拟开发环境就创建成功了。
查看环境命令
若需要查看当前Anaconda有哪些虚拟环境,可以使用下面的命令:
conda env list
激活环境命令
该命令是常用的操作命令,使用该命令激活环境后,才能进入该虚拟环境进行编程。命令如下:
conda activate ENV_NAME
其中ENV_NAME是要进入的环境名称。进入成功后,一般可以看到命令行的最左端括号中也切换成了ENV_NAME的名称。另外,如果想要从一个环境A切换到另一个环境B去,也可以直接执行该命令,将ENV_NAME写为B即可。
退出环境命令
若需要退出当前虚拟开发环境,可以使用下面的命令:
conda deactivate
该命令直接退回到base环境。
删除环境命令
该命令需谨慎使用,因为该命令会删除虚拟环境下的所有数据。命令如下:
conda remove -n ENV_NAME --all
2、安装Python依赖包
在tensorflow-cpu环境下使用pip工具软件安装numpy、matplotlib、pillow、pandas、scikit-learn。
启动Windows命令行窗口,在命令行窗口输入激活命令,激活tensorflow-cpu环境。
conda activate tensorflow-cpu
tensorflow-cpu环境激活后,使用pip工具分别安装上述Python依赖包。安装建议使用清华大学镜像站。如安装numpy命令如下:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
pip安装matplotlib时,会自动安装pillow包。
3、安装tensorflow-cpu版本
tensorflow分为两个版本,一个是CPU版本,一个是GPU版本。GPU版本充分应用了图形处理器的计算引擎,缩短模型训练的时间,GPU版本需要独立显卡的支持。
启动Windows命令行窗口,在命令行窗口输入激活命令,激活tensorflow-cpu环境。输入下面的命令安装tensorflow 2.6.0版本。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow==2.6.0
上面的命令将在本地安装tensorflow 2.6.0版本,默认安装是cpu模式。
安装完成,需要验证tensorflow 2.6.0是否安装成功。
启动Windows命令行窗口,使用conda激活命令激活tensorflow-cpu环境,进入Python环境。
C:\Users\lenovo>conda activate tensorflow-cpu (tensorflow-cpu) C:\Users\lenovo> (tensorflow-cpu) C:\Users\lenovo>python >>> import tensorflow as tf >>> print(tf.__version__) 2.6.0 >>>
4、安装tensorflow-gpu版本
我们把tensorflow-gpu安装到另外一个虚拟环境,这样做的好处是CPU版和GPU不互相影响。安装GPU版需要本地计算机配置支持CUDA的NVIDIA显卡,因为在搭建TensorFlow的GPU版本时,首先需要做的一件事就是安装其基础支持平台CUDA和其机器学习库cuDNN,然后在此基础上搭建TensorFlow GPU版本。
其次还要了解一下不同的TensorFlow版本所需要对应安装的CUDA和cuDNN版本是多少,因为在TensorFlow的GPU版本安装过程中,如果对应的CUDA版本和cuDNN版本不正确的话,是无法正常使用GPU来进行模型训练的。
创建conda虚拟环境,安装依赖包和CPU版本相同,这里就不再讲述了。建议GPU虚拟环境的名称为:tensorflow-gpu。
安装GPU版本之前,首先确认本地计算机是否配置了NVIDIA显卡,并且运算能力在3.5之上。要查看本地计算机显卡算力,可以直接去nvidia查看,网址如下:
https://developer.nvidia.com/cuda-gpus#compute
在安装tensorflow-gpu之前,还需要安装CUDA和cuDNN。CUDA (ComputeUnified Device Architecture)是显卡厂商 NVIDIA 推出的运算平台,它采用通用并行计算架构,该架构使 GPU 能够解决复杂的计算问题。cuDNN是指NVIDIA cuDNN,它是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。
安装CUDA
查看CUDA的版本,到NVIDIA网站下载对应版本的CUDA驱动程序。启动Windows命令行窗口,输入下面的命令:
nvidia-smi
该命令显示本地计算机NVIDIA显卡的配置信息。
图 1-7 NVIDIA显卡的配置信息
从图1-7的NVIDIA显卡配置信息可以得到当前显卡CUDA的驱动版本是11.1。进入NVIDIA官方CUDA Toolkit下载页面:
https://developer.nvidia.com/cuda-toolkit-archive
在下载页面找到对应的版本:
进入下载详情页面:
选择与本地计算机操作系统适配的安装包下载。安装包下载完成,运行安装包安装CUDA Toolkit,安装过程一般采用安装包的默认选项即可,需要记住CUDA Toolkit的安装目录,后面安装cuDNN时,还需要进行配置。
下载cuDNN
进入cuDNN下载页面,在下载页面可以看到cuDNN版本与CUDA的版本对应关系,选择适配CUDA版本的cuDNN包下载。
解压cuDNN下载包,解压后的目录结构如下图:
将bin目录下的所有文件复制到CUDA安装目录computingtoolkit\v11\bin目录下。
将include目录下的所有文件复制到CUDA安装目录computingtoolkit\v11\include目录下。
将lib\x64目录下的所有文件复制到CUDA安装目录computingtoolkit\v11\lib\x64目录下。
上述复制路径仅供参考,具体路径还需要由安装的CUDA版本确定。复制完成后,还需要配置Path环境变量,将cuda相关路径添加到Path变量。配置路径可参考下图。
安装tensorflow-gpu版本
安装GPU版本之前,需要确定合适的tensorflow-gpu版本,因为不同版本适配不同的CUDA和cuDNN版本。进入ensorflow官网页面,查看适合本地计算机安装的tensorflow-gpu版本。
https://tensorflow.google.cn/install/source_windows?hl=zh-cn
页面相关内容如下图所示:
从上图可以看出,CUDA 11.1驱动适配tensorflow_gpu-2.4.0,Python版本为3.6~3.8。
启动Windows命令行窗口,输入下面的命令创建tensorflow-gpu虚拟开发环境:
conda create -n tensorflow-gpu python=3.8
输入激活tensorflow-gpu环境命令:
conda activate tensorflow-gpu
安装相关依赖包:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy matplotlib pillow pandas scikit-learn
安装tensorflow-gpu 2.4.0版本:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==2.4.0
在安装过程中,若出现“ReadTimeoutError”,说明网络速度比较慢,换一个网络速度比较快的环境安装。或者设置超时时间:
pip --default-timeout=1000 install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==2.4.0
在安装过程中,若出现如下图所示的错误:
可使用pip单独安装termcolor:
pip install termcolor==1.10
在安装过程中,若出现下图所示的错误:
可使用pip单独安装wrapt:
pip install wrapt==1.10
验证tensorflow-gpu版本
使用conda命令激活tensorflow-gpu虚拟开发环境:
conda activate tensorflow-gpu
进入Python环境:
(tensorflow-gpu) C:\Users\lenovo>python
在Python环境,分别执行下面的语句:
>>> import tensorflow as tf
>>> print(tf.__version__)
若输出tensorflow的版本号,则说明tensorflow 安装成功,后面还要验证GPU是否能够正常使用。
在Python环境输入下面的语句:
print(tf.config.list_physical_devices('GPU'))
若输出“[]”,说明GPU设备没有启用,查看打印信息,输出了cusolver64_10.dll not found错误。CUDA11默认使用的是cusolver64_11.dll的文件,但是代码运行的时候却是需要cusolver64_10.dll文件,这可能是tensorflow-2.4.0的一个BUG,从网上下载cusolver64_10.dll,然后复制到CUDA安装目录computingtoolkit\v11\bin目录下即可解决该问题。或者直接修改cusolver64_11.dll名称为cusolver64_10.dll,然后重新启动命令行窗口,再次执行列出GPU设备的命令。若输出如下内容,说明GPU设备已启用。
5、配置Visual Studio Code开发环境
启动Visual Studio Code,打开命令面板,配置Python解释器为tensorflow-cpu或tensorflow-gpu虚拟环境的Python解释器。虚拟环境目录存储与anaconda目录下。
6、第一个tensorflow代码
启动Visual Studio Code,新建hello-tf.py文件,输入下面的代码:
import tensorflow as tf print("hello tensorflow!,运行版本:{}".format(tf.__version__))