赞
踩
建议以下所有的终端界面(小黑窗)都用管理员身份运行。
首先,请确保您的计算机上已经安装了 Anaconda。如果没有,请按照anaconda官网下载安装。
打开终端 (Terminal) 或命令提示符 (Command Prompt)
运行以下命令,以确保 Anaconda 被正确配置:
conda -V
运行结果
conda 23.7.4
继续去官网安装cuda和cuDNN,下载对应版本,本机是cuda 11.2.0和cudnn 8.1.0.77,具体教程视频。一定要配置好环境变量。参考视频2。
注:cuDNN下载前需要注册账号,国内邮箱即可,我用的163邮箱。
tf2x
的新虚拟环境(名称自己定),指定 Python 版本为 3.8(也可以为3.9):conda create --name tf2x python=3.8
conda activate tf2x
为了支持 TensorFlow-GPU,我们需要安装CUDA Toolkit 11.3和cuDNN 8.2.1以支持GPU加速。在 Anaconda Prompt 中执行以下命令:
conda install cudatoolkit=11.3 cudnn=8.2.1
注意:这里的版本号可能随着时间和需求而变化,请确保安装与您所使用的硬件兼容的版本。检查您系统的 CUDA 支持情况,并选择合适的版本进行安装。
补充说明:此步骤避免了报错runtime CuDNN library: 8.1 but source was compiled with: 8.2.1
,坑已踩过。
使用 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/
这里我们使用了清华大学的镜像源以加速下载速度。如果您遇到任何问题或想要使用默认的 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/
同样地,如果遇到问题或想使用默认的 PyPI 源,请去掉 -i https://pypi.tuna.tsinghua.edu.cn/simple/
部分。
安装完成后,你可以通过以下命令查看已安装的所有包及其版本信息:
conda list
本机运行结果
# 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
如果你需要暂时离开这个虚拟环境,可以使用以下命令:
deactivate
如果需要删除名为"tf2x"的虚拟环境,可以使用以下命令:
conda env remove --name tf2x
你可以使用以下命令检查NVIDIA驱动和CUDA版本是否正确安装:
nvidia-smi
本机运行结果
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 | +---------------------------------------------------------------------------------------+
在激活的环境tf2x
中,安装ipykernel
库,这将允许你在Jupyter Notebook中使用此环境作为内核:
conda install ipykernel
接下来,你需要为新环境创建一个内核。这可以通过运行以下命令完成,其中name
后面是你的conda
中创建的环境名称,display-name
后面是你希望在Jupyter中显示的内核名称,这里也设置为tf2x
:
python -m ipykernel install --user --name=tf2x --display-name="tf2x"
至此,您已经在名为 tf2x
的 Anaconda 虚拟环境中成功安装了 TensorFlow GPU 以及相关的依赖项。要开始使用这个环境,请确保它已经被激活,然后通过如下命令启动 Jupyter Notebook 或者 JupyterLab:
jupyter notebook
或
jupyter lab
现在,您可以在这个环境中编写和运行使用 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'])
本机运行结果
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
截取,以下是 TensorFlow 版本和相应的 Python 版本、编译器、构建工具、cuDNN 和 CUDA 版本的对应关系:
Version | Python version | Compiler | Build tools | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-2.10.0 | 3.7-3.10 | MSVC 2019 | Bazel 5.1.1 | 8.1 | 11.2 |
tensorflow_gpu-2.9.0 | 3.7-3.10 | MSVC 2019 | Bazel 5.0.0 | 8.1 | 11.2 |
tensorflow_gpu-2.8.0 | 3.7-3.10 | MSVC 2019 | Bazel 4.2.1 | 8.1 | 11.2 |
tensorflow_gpu-2.7.0 | 3.7-3.9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.6.0 | 3.6-3.9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.5.0 | 3.6-3.9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
以下参考文档是根据第一版教程编写的。由于之前安装的是TensorFlow GPU 2.6.0版本,运行某些代码时遇到了新的问题,并未能解决。因此,以下参考文档只是提供了一些思路,但不能保证能解决您在以后遇到的问题。为此,我决定更换为TensorFlow GPU 2.10版本,并编写了这篇新的教程。(您可以不看以下内容,因为与上述内容冲突)
注意,有些版本对应不上,需要按照以下版本安装,参考文章。
框架/库 | 版本号 | 备注 |
---|---|---|
Tensorflow-gpu | 2.6.0 | 目前为止最高版本 |
Python | 3.9.18 | 能够支持tensorflow-gpu的最高Python版本 |
Tensorflow | 2.6.0 | |
CUDA | 11.2.2 | 装最高版本12.0就没有对应的tensorflow-gpu版本了 |
cuDNN | 8.2.1 | 8.1 for CUDA 11.x的不行 |
numpy | 1.23.4 | numpy版本不对的话,会导致import tensorflow as tf 这一步报错,错误信息是 …numpy has no attribute object… |
需要注意的是,这些库的版本需要相互匹配才能正常工作。如果您使用的是不兼容的版本,可能会导致程序无法正常运行或者出现其他问题。
将numpy 1.26.2降至1.23.4
pip install numpy==1.23.4
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。