TensorFlow实战之环境搭建
前言
我这里是 window 11 系统,有一个 GTX 3060 12G的显卡。
(1) 经过最终测试,我安装了如下的内容:
- Anacoda:-2023.03-1-Windows-x86_64
- python:3.10.9
- pip:22.3.1
- tensorflow:2.10.1
- NVIDIA:531.79
- CUDA:12.1
- cudatoolkit:11.8.0
- cudnn:8.2.1
(2) 因为我的anaconda安装到了 C:\Soft\ 文件夹下,所以配置的配置环境变量如下:
1 | C:\Soft\anaconda3\pkgs\cudatoolkit-11.8.0-hd77b12b_0\Library\bin |
1.TensorFlow 安装与环境配置 这里安装 Anaconda 的 Python 3.7 64 位版本,NVi419.35,CUDA 版本10.1,TensorFlow 2.1,cudatoolkit=10.1 和 cudnn=7.6.5
2.如何使用wsl2搭建基于Tensorflow GPU的深度学习环境?
3.TensorFlow GPU不可用,WSL2安装 win11,安装的tensorflow的版本都是2.12的,但是从2.10开始tensorflow就不支持gpu了,这点在英文版的安装页面里有。
1.Anacoda
这个网上安装的过程很多,我自己也写了一点总结 Anaconda之安装和使用,下载 安装,然后配置环境变量。我这里配置了 “C:\Soft\anaconda3”。
安装了conda之后,可以配置虚拟环境,其实作为测试没有必要创建,随意好了。
1 | conda create --name [env-name] # 建立名为[env-name]的Conda虚拟环境 |
除了命令行之外,还可以打开 Anaconda3 Navigator ,安装 Jupyter Notebook,很多的示例都是在这个上面编写的。
2.Python
python安装我也写过很多的文章,其实也就是下载安装配置环境变量。
如果先安装了 Anacod,其实他自带了 Python 3.10.9。也可以通过 conda 安装特定版本的 python
1.[原创] Anaconda安装Python 3.6版本
3.Pip
安装了Python基本上都是自带了pip,如果命令行没有相关的命令,那就看看是否配置了环境变量。因为我安装了 Anacoda,所以我的 pip 路径在:“C:\Soft\anaconda3\Scripts” 路径下。
1 | pip install [package-name] # 安装名为[package-name]的包 |
安装完成之后,可以配置清华源。在用户目录文件创建pip文件夹,并创建了pip.ini。我的windows就是 “C:\Users\用户\pip” 目录。
1 | [global] |
1.Python pip 安装与使用
2.pip 使用国内镜像源 这是在linux环境下创建 .pip 文件夹和 pip.conf 文件
3.Windows下更换pip源为清华源 windows下配置清华源,是在 appdata文件夹创建 pip 文件夹和pip.ini文件。
4.pip下载速度慢,改用清华或者阿里pip源解决下载速度慢问题 这里提供的多种源,还是挺快的。
4.Tensorflow
直接使用pip就可以安装Tensorflow。
1 | ## 安装了,我这里安装了 2.12.0 版本 |
从 TensorFlow 2.1 开始 到TensorFlow 2.10 结束,pip 包 tensorflow 即同时包含 GPU 支持,无需通过特定的 pip 包 tensorflow-gpu 安装 GPU 版本。
如果对 pip 包的大小敏感,可使用 tensorflow-cpu 包安装仅支持 CPU 的 TensorFlow 版本。
1 | pin install tensorflow-gpu |
1.安装 TensorFlow 2 官方指南
5.NVIDIA显卡驱动
Windows 环境中,如果系统具有 NVIDIA 显卡,则往往已经自动安装了 NVIDIA 显卡驱动程序。
Linux 环境,安装的时候,可能需停用桌面环境。
(1) 下载 官方 Nvidia 显卡驱动
我电脑显卡是,系统是 UOS Server release 20, 我下载了最新的 ./NVIDIA-Linux-x86_64-550.54.14.run 驱动,因为我的是服务器上的版本,没有桌面,所以就少了很多的步骤,比如金庸1
2
3
4
5
6# 系统内核版本
uname -r
# 系统版本
cat /etc/redhat-release
# gpu版本
lspci | grep -i nvidia
(2) 安装
1 | # 安装依赖 |
(3) 验证
安装完成之后,可能有些警告:Unable to determine the path to install the libglvnd EGL vendor library config files. Check that you have pkg-config and the libglvnd development libraries installed, or specify a path with –glvnd-egl-config-path,后来我也没有管。使用 nvidia-smi 命令可以查看驱动是否安装成功。
1 | nvidia-smi |
【1】.DeepinOS 安装 tensorflow, cuda, cuDNN 最方便的方法
【2】.Linux查看GPU信息和使用情况
【3】.UOS 安装nvidia官方显卡驱动 方法一:安装官方闭源驱动(推荐);方法二:使用软件包管理器安装(不推荐);方法三:显卡驱动管理器安装(不推荐)。这里安装闭源驱动的时候还禁用 nouveau 驱动,进入系统级别 3,这些我都没有做。
【4】.CentOS7.0安装NVIDIA GTX1080Ti显卡驱动 这里还是有些问题解决方案的
【5】.centos安装cuda|gpu驱动 这里还安装了 cuda-toolkit,关闭了 X server
【6】.DeepinOS 安装 tensorflow, cuda, cuDNN 最方便的方法 sudo service lightdm stop #这一句是关闭图形桌面,这里还安装了 tensorflow。
问题:Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel
这个问题我没有单独的去处理这个东西,后来我直接就跳过了,用上面的安装步骤,直接就安装成功了。
【1】编译内核报错Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-deve 解决:apt-get install libelf-dev libssl-dev
【2】centos安装cuda|gpu驱动 yum install kernel-devel-$(uname -r)
【3】.Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y sudo dnf install elfutils-libelf-devel
6.CUDA Toolkit 和 cuDNN
在 Anaconda 环境下,推荐使用 conda 进行安装,因为我不知道如何对应版本,是不是需要确定的版本,于是我直接安装了最新版。
1 | conda install cudatoolkit=X.X |
安装 CUDA Toolkit 和 cuDNN,其中 X.X 和 X.X.X 分别为需要安装的 CUDA Toolkit 和 cuDNN 版本号,必须严格按照 TensorFlow 官方网站所说明的版本 安装。例如,对于 TensorFlow 2.12.1,可使用:
1 | ## 直接安装最新版的,这里我安装了 cudnn = 8.2.1 cudatoolkit = 11.8.0 |
在安装前,可使用 conda search 命令搜索 conda 源中可用的版本号。
1 | conda search cudatoolkit |
(2) 配置环境变量
将 cudnn 和 cudatookit 的安装路径配置到环境变量中。我这里路径是在 anaconda 下的。
1 | # cudatoolkit |
【1】.GPU 支持 这是中文官方对于TensorFlow支持的GPU的说明。
【2】.CUDA Installation Guide for Microsoft Windows CUDA在windows上的安,官方的文档。
【3】.安装tensorflow GPU版本–tensorflow-gpu版本与CUDA版本对应关系(持续更新,目前到TF2.10.1) CUdnn与CUDA的对应关系,还有2.1以后版本的检查。TF:2.10 对应 CUDA:11.6,cudnn:8.6
【4】.tensorflow GPU版安装说明 把CUDA和cuDNN的bin目录下的dll文件直接复制到系统system32目录中
【5】.[tensorflow]tensorflow与cuda对应关系表
【6】.使用虚拟环境conda安装不同版本的cuda,cudnn,pytorch 在虚拟环境中安装完cuda和cudnn想要测试是否安装成功,不能使用nvcc -V命令测试,需要在虚拟环境中安装pytorch包进行测试装好pytorch后,命令行输入python,进入python的命令行,导入torch包
【7】.查看CUDA和CUDNN是否安装成功(conda 环境 conda list,有cudnn ,则说明CUDA和CUDNN已经配置成功
7.测试GPU是否可用
因为我安装的Tensorflow 是2.12.0版本,比较小新,为了测试GPU是否可用,我费了好大的力气。后来安装了 tensorflow 2.10.1 版本,使用了下面的方法,测试是否可用,这个版本的 tensorflow 能输出正确的GPU信息。
1 | import tensorflow as tf |
1.tensorflow gpu环境安装 conda search cudnn=8 –info,可以查看cudnn8的各个子版本与cuda版本的关系
2.Tensorflow 2.1.0 failed to list GPU devices and detect GPU devices automatically Actually, there is a toy example in this tutorial which uses gpus = tf.config.experimental.list_physical_devices(‘GPU’)this API to check if there is any avaliable gpu device
3.tensorflow查看gpu是否可用 len(tf.config.experimental.list_physical_devices(‘GPU’)) 会返回可用的 GPU 数量。如果返回值大于 0,则表示 TensorFlow 可以使用 GPU。
4.Tensorflow 2.0 list_physical_devices doesn’t detect my GPU tensorflow and then installing “tensorflow-gpu“ will resolves your issue
8.TensorFlow-DirectML-Plugin
在 tensorflow 2.11 之后就不提供 gpu 版本了,转而代之的就是 TensorFlow-DirectML-Plugin,这个库是微软提供的。
1.Enable GPU Acceleration for TensorFlow 2 with tensorflow-directml-plugin
2通过Tensorflow-DirectML 快速启用 AMD及NVIDIA GPU 加速 不同的GPU与Tensorflow进行整合调用的时候,会有很多的技术细节,最近使用微软的DirectML感觉还可以,非常方便,在windows及WSL Linux下都能很好的使用GPU的运算能力
3.TensorFlow + DirectML with Windows ML: Real-time object detection from video 这是微软的官方文档,介绍了安装和配置 Directml 。
4.microsoft /tensorflow-directml-plugin DirectML PluggableDevice plugin for TensorFlow 2
9.IDEA
大部分的文章其实推荐的是使用Pycharm进行开发和调试的。
1.在idea环境下搭建tensorflow环境
2.TensorFlow笔记-02-使用PyCharm搭建TensorFlow环境(win版非虚拟机)
3.IDEA配置Anaconda图文并茂
4.【Python】Java工程师学Python之常用开发工具 Idea和PyCharm的区别就是Idea需要安装Python的插件,而PyCharm是专门用来开发Python的工具,Idea在安装插件后基本没啥区别,唯一点就是可能官方的插件没有PyCharm更新得快
5.Cannot add conda environment to Pycharm - Conda executable path is empty even when it’s not
6.系统配置:pycharm结合anaconda管理项目环境
问题
(1) Use tf.config.list_physical_devices('GPU')
instead
最早的就是 tensorflow 2.1 之前的版本。结果出现这个错误。
1 | import tensorflow as tf |
【解决方案】
就是使用新的测试代码 Use tf.config.list_physical_devices('GPU')
instead
1.tensorflow测试gpu是否可用 这是1.xx版本的。
2.Tensorflow-GPU测试是否可用 tf.config.list_physical_devices(‘GPU’)
3.tf.test.is_gpu_available
(2) print(tf.config.list_physical_devices(‘GPU’)) 打印为空
安装了 tensorflow 2.12.0 之后,打印GPU是否可用,结果显示为空。
【解决方案】
win11,安装的tensorflow的版本都是2.12的,但是从2.10开始tensorflow就不支持gpu了,这点在英文版的安装页面里有。而中文版是没有这个提示的,估计也是很多人试了很多遍,检查了很多次环境变量都解决不了为什么就是不能调用gpu的原因。此时我们只能通过wsl2的方式来安装了,这是在windows里运行了一个虚拟机环境,效果自然大打折扣了。
还有一种方式,就是使用 TensorFlow-DirectML-Plugin,也就是 DirectML 这个东西,暂时没有深入的研究。
1.Tensorflow找不到GPU:tensorflow 2.11.0版本开始,在windows上不再支持GPU 根据该条提示,Tensorflow 2.10是最后一个在本地windows上支持GPU的版本。从2.11版本开始,需要在windows WLS2(适用于 Linux 的 Windows 子系统)上安装才能使用GPU。所以要在native-windows上使用GPU,就只能安装2.10.0版本及以下的版本,或者安装老版的tensorflow-gpu。我卸载了之前安装的2.11.0版本,安装了2.10.0版本。
2.Tensorflow-gpu version 2.12.0 is not available TensorFlow 2.10 was the last TensorFlow release that supported GPU on native-Windows. Starting with TensorFlow 2.11, you will need to install TensorFlow in WSL2, or install tensorflow-cpu and, optionally, try the TensorFlow-DirectML-Plugin
3.Windows上tensorflow的GPU死活引用不了(tensorflow 2.11无法调用GPU) tensorflow对于gpu的支持只到2.10,如果你装了最新的tf(2.11),需要先卸载2.11
(3) module ‘tensorflow’ has no attribute ‘config’
当我从tensorflow 2.10.1 切换到 2.12.0的时候,结果上面的代码无法运行了,出现错误。这个问题我尝试,多半就是 pip uninstall 没有卸载干净 tensorflow 。于是我又卸载了其他的模块
1 | # 查看全部模块 |
【解决方案】
把pip list 列出的全部的tensorflow的东西全部卸载之后,再次安装,结果就可以了。
1.‘tensorflow’ has no attribute ‘config’
2.TensorFlow 2.12 正式发布 主要功能和改进
3.AttributeError: module ‘tensorflow’ has no attribute ‘version‘ If this returns an error, you may need to reinstall TensorFlow.
4.卸载不掉Tensorflow 这个给我灵感了,先要把全部的tensorflow列出来。
5.怎样完全卸载tensorflow?
(4) Failed to establish a new connection: [Errno 11001]
莫名其妙的出现了这个问题。
【解决方案】
可能网络不好,以后再尝试就好了。
1.Python HTTPConnectionPool Failed to establish a new connection: [Errno 11004] getaddrinfo failed
(5) multiple errors encountered anaconda navigator
当我从开始菜单打开 Anaconda Navigator 安装 Jupyter Notebook 的时候,死活安装不上,出现了这个错误。
【解决方法】
我当时安装 Anaconda 的时候,是 Admin 安装的,所以启动的时候,也需要用 Admin 启动。找到开始菜单,打开 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit) 文件夹,然后右键 Anaconda Navigator “以管理员身份运行” 即可。
或者找到上面的快捷方式,右键 “属性”,选择 “兼容性”,勾选始终 “以管理员身份运行” 即可。
1.Anaconda Navigator - Multiple Errors Encountered You can enable this behaviour by default by navigating to the Anaconda launch shortcut, right-click > Properties, go to Shortcut tab, click Advanced, and tick ‘Always launch as administrator’.
2.Windows10怎么设置始终以管理员身份运行某个软件