当前位置:   article > 正文

TensorFlow GPU 2.10+CUDA+cuDNN全环境设置指南及安装教程(已避坑)_cuda 和tensorflow安装

cuda 和tensorflow安装

建议以下所有的终端界面(小黑窗)都用管理员身份运行

步骤一:安装 Anaconda

首先,请确保您的计算机上已经安装了 Anaconda。如果没有,请按照anaconda官网下载安装。

  • 打开终端 (Terminal) 或命令提示符 (Command Prompt)

  • 运行以下命令,以确保 Anaconda 被正确配置:

    conda -V
    
    • 1

    运行结果

    conda 23.7.4
    
    • 1

步骤二:安装CUDA和cuDNN

继续去官网安装cudacuDNN,下载对应版本,本机是cuda 11.2.0和cudnn 8.1.0.77,具体教程视频。一定要配置好环境变量。参考视频2

注:cuDNN下载前需要注册账号,国内邮箱即可,我用的163邮箱。

步骤三:创建并激活虚拟环境

  1. 打开 Anaconda Prompt。
  2. 输入以下命令来创建一个名为 tf2x 的新虚拟环境(名称自己定),指定 Python 版本为 3.8(也可以为3.9):
conda create --name tf2x python=3.8
  • 1
  1. 创建完成后,激活该环境:
conda activate tf2x
  • 1

步骤四:安装 CUDA Toolkit 和 cuDNN

为了支持 TensorFlow-GPU,我们需要安装CUDA Toolkit 11.3和cuDNN 8.2.1以支持GPU加速。在 Anaconda Prompt 中执行以下命令:

conda install cudatoolkit=11.3 cudnn=8.2.1
  • 1

注意:这里的版本号可能随着时间和需求而变化,请确保安装与您所使用的硬件兼容的版本。检查您系统的 CUDA 支持情况,并选择合适的版本进行安装。

补充说明:此步骤避免了报错runtime CuDNN library: 8.1 but source was compiled with: 8.2.1,坑已踩过。

步骤五:安装 TensorFlow GPU 和 Keras

使用 pip 在虚拟环境中安装 TensorFlow-GPU 2.10.0 和 Keras 2.10.0:

pip install tensorflow-gpu==2.10.0 keras==2.10.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
  • 1

这里我们使用了清华大学的镜像源以加速下载速度。如果您遇到任何问题或想要使用默认的 PyPI 源,请去掉 -i https://pypi.tuna.tsinghua.edu.cn/simple/ 部分。

步骤六:安装其他依赖项

继续安装 OpenCV、Pillow、NumPy、Matplotlib、Scipy、Pandas、scikit-learn、tqdm、imutils、PyYAML、TensorBoard、Seaborn、Protobuf、Chardet 等软件包:

pip install opencv-python==4.4.0.44 pillow==8.2 numpy==1.22 matplotlib scipy pandas scikit-learn tqdm imutils PyYAML tensorboard seaborn protobuf==3.20 chardet -i https://pypi.tuna.tsinghua.edu.cn/simple/
  • 1

同样地,如果遇到问题或想使用默认的 PyPI 源,请去掉 -i https://pypi.tuna.tsinghua.edu.cn/simple/ 部分。

步骤七:查看已安装的包

安装完成后,你可以通过以下命令查看已安装的所有包及其版本信息:

conda list
  • 1

本机运行结果

# packages in environment at E:\Applications\Anaconda3\envs\tf2x:
#
# Name                    Version                   Build  Channel
absl-py                   2.0.0                    pypi_0    pypi
astunparse                1.6.3                    pypi_0    pypi
ca-certificates           2023.08.22           haa95532_0
cachetools                5.3.2                    pypi_0    pypi
certifi                   2023.11.17               pypi_0    pypi
chardet                   5.2.0                    pypi_0    pypi
charset-normalizer        3.3.2                    pypi_0    pypi
colorama                  0.4.6                    pypi_0    pypi
contourpy                 1.1.1                    pypi_0    pypi
cudatoolkit               11.3.1               h59b6b97_2
cudnn                     8.2.1                cuda11.3_0
cycler                    0.12.1                   pypi_0    pypi
flatbuffers               23.5.26                  pypi_0    pypi
fonttools                 4.46.0                   pypi_0    pypi
gast                      0.4.0                    pypi_0    pypi
google-auth               2.25.2                   pypi_0    pypi
google-auth-oauthlib      1.0.0                    pypi_0    pypi
google-pasta              0.2.0                    pypi_0    pypi
grpcio                    1.60.0                   pypi_0    pypi
h5py                      3.10.0                   pypi_0    pypi
idna                      3.6                      pypi_0    pypi
importlib-metadata        7.0.0                    pypi_0    pypi
importlib-resources       6.1.1                    pypi_0    pypi
imutils                   0.5.4                    pypi_0    pypi
joblib                    1.3.2                    pypi_0    pypi
keras                     2.10.0                   pypi_0    pypi
keras-preprocessing       1.1.2                    pypi_0    pypi
kiwisolver                1.4.5                    pypi_0    pypi
libclang                  16.0.6                   pypi_0    pypi
libffi                    3.4.4                hd77b12b_0
markdown                  3.5.1                    pypi_0    pypi
markupsafe                2.1.3                    pypi_0    pypi
matplotlib                3.7.4                    pypi_0    pypi
numpy                     1.22.0                   pypi_0    pypi
oauthlib                  3.2.2                    pypi_0    pypi
opencv-python             4.4.0.44                 pypi_0    pypi
openssl                   3.0.12               h2bbff1b_0
opt-einsum                3.3.0                    pypi_0    pypi
packaging                 23.2                     pypi_0    pypi
pandas                    2.0.3                    pypi_0    pypi
pillow                    8.2.0                    pypi_0    pypi
pip                       23.3.1           py38haa95532_0
protobuf                  3.20.0                   pypi_0    pypi
pyasn1                    0.5.1                    pypi_0    pypi
pyasn1-modules            0.3.0                    pypi_0    pypi
pyparsing                 3.1.1                    pypi_0    pypi
python                    3.8.18               h1aa4202_0
python-dateutil           2.8.2                    pypi_0    pypi
pytz                      2023.3.post1             pypi_0    pypi
pyyaml                    6.0.1                    pypi_0    pypi
requests                  2.31.0                   pypi_0    pypi
requests-oauthlib         1.3.1                    pypi_0    pypi
rsa                       4.9                      pypi_0    pypi
scikit-learn              1.3.2                    pypi_0    pypi
scipy                     1.10.1                   pypi_0    pypi
seaborn                   0.13.0                   pypi_0    pypi
setuptools                68.2.2           py38haa95532_0
six                       1.16.0                   pypi_0    pypi
sqlite                    3.41.2               h2bbff1b_0
tensorboard               2.14.0                   pypi_0    pypi
tensorboard-data-server   0.7.2                    pypi_0    pypi
tensorboard-plugin-wit    1.8.1                    pypi_0    pypi
tensorflow-estimator      2.10.0                   pypi_0    pypi
tensorflow-gpu            2.10.0                   pypi_0    pypi
tensorflow-io-gcs-filesystem 0.31.0                   pypi_0    pypi
termcolor                 2.4.0                    pypi_0    pypi
threadpoolctl             3.2.0                    pypi_0    pypi
tqdm                      4.66.1                   pypi_0    pypi
typing-extensions         4.9.0                    pypi_0    pypi
tzdata                    2023.3                   pypi_0    pypi
urllib3                   2.1.0                    pypi_0    pypi
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
werkzeug                  3.0.1                    pypi_0    pypi
wheel                     0.41.2           py38haa95532_0
wrapt                     1.16.0                   pypi_0    pypi
zipp                      3.17.0                   pypi_0    pypi
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80

其他指令,如有需要

  • 如果你需要暂时离开这个虚拟环境,可以使用以下命令:

    deactivate
    
    • 1
  • 如果需要删除名为"tf2x"的虚拟环境,可以使用以下命令:

    conda env remove --name tf2x
    
    • 1
  • 你可以使用以下命令检查NVIDIA驱动和CUDA版本是否正确安装:

    nvidia-smi
    
    • 1

    本机运行结果

    Sat Dec 16 15:38:11 2023
    +---------------------------------------------------------------------------------------+
    | NVIDIA-SMI 546.12                 Driver Version: 546.12       CUDA Version: 12.3     |
    |-----------------------------------------+----------------------+----------------------+
    | GPU  Name                     TCC/WDDM  | Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
    |                                         |                      |               MIG M. |
    |=========================================+======================+======================|
    |   0  NVIDIA GeForce RTX 3070 ...  WDDM  | 00000000:01:00.0  On |                  N/A |
    | N/A   39C    P8              19W / 115W |   1539MiB /  8192MiB |     21%      Default |
    |                                         |                      |                  N/A |
    +-----------------------------------------+----------------------+----------------------+
    
    +---------------------------------------------------------------------------------------+
    | Processes:                                                                            |
    |  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
    |        ID   ID                                                             Usage      |
    |=======================================================================================|
    |    0   N/A  N/A       796    C+G   ...5n1h2txyewy\ShellExperienceHost.exe    N/A      |
    |    0   N/A  N/A      2976    C+G   ... Edition 2023.1.2\bin\pycharm64.exe    N/A      |
    |    0   N/A  N/A      3236    C+G   D:\ToDesk\ToDesk.exe                      N/A      |
    |    0   N/A  N/A      3744    C+G   ...r\5.1.40.11202\widget\SpeedBall.exe    N/A      |
    |    0   N/A  N/A      3788    C+G   ...siveControlPanel\SystemSettings.exe    N/A      |
    |    0   N/A  N/A      4644    C+G   ...wekyb3d8bbwe\XboxGameBarWidgets.exe    N/A      |
    |    0   N/A  N/A      5888    C+G   E:\Applications\Typora\Typora.exe         N/A      |
    |    0   N/A  N/A      9520    C+G   C:\Windows\explorer.exe                   N/A      |
    |    0   N/A  N/A     10300    C+G   ...GeForce Experience\NVIDIA Share.exe    N/A      |
    |    0   N/A  N/A     11344    C+G   ...GeForce Experience\NVIDIA Share.exe    N/A      |
    |    0   N/A  N/A     12316    C+G   ...nt.CBS_cw5n1h2txyewy\SearchHost.exe    N/A      |
    |    0   N/A  N/A     12340    C+G   ...2txyewy\StartMenuExperienceHost.exe    N/A      |
    |    0   N/A  N/A     13452    C+G   ...crosoft\Edge\Application\msedge.exe    N/A      |
    |    0   N/A  N/A     13828    C+G   ...5990\office6\promecefpluginhost.exe    N/A      |
    |    0   N/A  N/A     15376    C+G   ...PKQVEOA7JVZE4OA5ZMSNU5MHA\DeepL.exe    N/A      |
    |    0   N/A  N/A     16720    C+G   ...CBS_cw5n1h2txyewy\TextInputHost.exe    N/A      |
    |    0   N/A  N/A     16908    C+G   ...ns\cc cleaner\CCleaner\CCleaner.exe    N/A      |
    |    0   N/A  N/A     18796    C+G   ...eskGo\3.3.1484.127\DesktopMgr64.exe    N/A      |
    |    0   N/A  N/A     19788    C+G   ...1\extracted\runtime\WeChatAppEx.exe    N/A      |
    |    0   N/A  N/A     20400    C+G   E:\Applications\QQNT\QQ.exe               N/A      |
    |    0   N/A  N/A     21404    C+G   ...o\3.3.1484.127\Win11ContextMenu.exe    N/A      |
    |    0   N/A  N/A     22832    C+G   ...2.0_x64__w2gh52qy24etm\Nahimic3.exe    N/A      |
    |    0   N/A  N/A     23392    C+G   ... Software\CloudMusic\cloudmusic.exe    N/A      |
    |    0   N/A  N/A     23852    C+G   ...tings\yoga\LenovoToolMonitoring.exe    N/A      |
    |    0   N/A  N/A     25528    C+G   ...ekyb3d8bbwe\PhoneExperienceHost.exe    N/A      |
    +---------------------------------------------------------------------------------------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

结束语

在激活的环境tf2x中,安装ipykernel库,这将允许你在Jupyter Notebook中使用此环境作为内核:

conda install ipykernel
  • 1

接下来,你需要为新环境创建一个内核。这可以通过运行以下命令完成,其中name后面是你的conda中创建的环境名称,display-name后面是你希望在Jupyter中显示的内核名称,这里也设置为tf2x

python -m ipykernel install --user --name=tf2x --display-name="tf2x"
  • 1

至此,您已经在名为 tf2x 的 Anaconda 虚拟环境中成功安装了 TensorFlow GPU 以及相关的依赖项。要开始使用这个环境,请确保它已经被激活,然后通过如下命令启动 Jupyter Notebook 或者 JupyterLab:

jupyter notebook
  • 1

jupyter lab
  • 1

现在,您可以在这个环境中编写和运行使用 TensorFlow GPU 的代码了。(个人建议用jupyter lab,因为界面可以像pycharm一样,还能随意切换编译环境)

或者在pycharm中选定tf2x环境,编译并运行以下测试代码:

# 导入Keras库
import keras

# 导入TensorFlow库
import tensorflow as tf

# 检查当前系统是否可用GPU资源
print(tf.test.is_gpu_available())

# 打印TensorFlow的版本号
print(tf.__version__)

# 打印Keras的版本号
print(keras.__version__)

# 获取TensorFlow的构建信息
build = tf.sysconfig.get_build_info()

# 打印CUDA的版本号(如果已安装)
print(build['cuda_version'])

# 打印cuDNN的版本号(如果已安装)
print(build['cudnn_version'])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

本机运行结果

WARNING:tensorflow:From E:\Bravo\self_driving\AI\Tensor functions.py:3: is_gpu_available (from tensorflow.python.framework.test_util) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.config.list_physical_devices('GPU')` instead.
2023-12-16 14:50:34.755552: I tensorflow/core/platform/cpu_feature_guard.cc:193] 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.
2023-12-16 14:50:35.581791: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1616] Created device /device:GPU:0 with 5481 MB memory:  -> device: 0, name: NVIDIA GeForce RTX 3070 Laptop GPU, pci bus id: 0000:01:00.0, compute capability: 8.6
True
2.10.0
2.10.0
64_112
64_8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

官方参考版本说明

TensorFlow官方版本对应说明

截取,以下是 TensorFlow 版本和相应的 Python 版本、编译器、构建工具、cuDNN 和 CUDA 版本的对应关系:

VersionPython versionCompilerBuild toolscuDNNCUDA
tensorflow_gpu-2.10.03.7-3.10MSVC 2019Bazel 5.1.18.111.2
tensorflow_gpu-2.9.03.7-3.10MSVC 2019Bazel 5.0.08.111.2
tensorflow_gpu-2.8.03.7-3.10MSVC 2019Bazel 4.2.18.111.2
tensorflow_gpu-2.7.03.7-3.9MSVC 2019Bazel 3.7.28.111.2
tensorflow_gpu-2.6.03.6-3.9MSVC 2019Bazel 3.7.28.111.2
tensorflow_gpu-2.5.03.6-3.9MSVC 2019Bazel 3.7.28.111.2

以下参考文档是根据第一版教程编写的。由于之前安装的是TensorFlow GPU 2.6.0版本,运行某些代码时遇到了新的问题,并未能解决。因此,以下参考文档只是提供了一些思路,但不能保证能解决您在以后遇到的问题。为此,我决定更换为TensorFlow GPU 2.10版本,并编写了这篇新的教程。(您可以不看以下内容,因为与上述内容冲突

  1. 注意,有些版本对应不上,需要按照以下版本安装,参考文章

    框架/库版本号备注
    Tensorflow-gpu2.6.0目前为止最高版本
    Python3.9.18能够支持tensorflow-gpu的最高Python版本
    Tensorflow2.6.0
    CUDA11.2.2装最高版本12.0就没有对应的tensorflow-gpu版本了
    cuDNN8.2.18.1 for CUDA 11.x的不行
    numpy1.23.4numpy版本不对的话,会导致import tensorflow as tf 这一步报错,错误信息是 …numpy has no attribute object…

    需要注意的是,这些库的版本需要相互匹配才能正常工作。如果您使用的是不兼容的版本,可能会导致程序无法正常运行或者出现其他问题。

  2. 将numpy 1.26.2降至1.23.4

    pip install numpy==1.23.4
    
    • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/906016
推荐阅读
相关标签
  

闽ICP备14008679号