当前位置:   article > 正文

Anaconda + Pycharm 创建 Python 3.7 + TensorFlow 2.7 环境

Anaconda + Pycharm 创建 Python 3.7 + TensorFlow 2.7 环境

目录

一、目标:创建一个 Python 3.7 + TensorFlow 2.7 的环境

二、确定安装版本

2.1 首先查看目标的 Python 版本和 TensorFlow 版本是否匹配

2.2 接下来查看本机显卡即驱动是否 支持 cudatoolkit11.2

综上共要安装:python3.7,cudatoolkit11.2,cudnn8.1,tensorflow2.7。

三、配置 Python3.7 环境

3.1 Anaconda 创建 Python3.7 环境

3.1.1 Anaconda Navigator 方式

3.1.2 Anaconda Prompt 方式

3.2 Pycharm 使用 Anaconda 中 TensorFlow2.7 环境

四、配置 cudatoolkit11.2,cudnn8.1,tensorflow2.7 环境

4.1 在 Pycharm 中安装 cudatoolkit11.2 和 cudnn8.1

五、测试环境安装

六、常见问题

6.1 未找到:TensorFlow 2.6以上的版本对应表。

七、注

7.1 包管理工具冲突


一、目标:创建一个 Python 3.7 + TensorFlow 2.7 的环境

电脑环境

笔记本系统NVIDIA 显卡显卡驱动版本驱动支持最高CUDA版本
联想小新 15Windows 11 家庭中文版NVIDIA GeForce MX350472.1911.4

二、确定安装版本

2.1 首先查看目标的 Python 版本和 TensorFlow 版本是否匹配

TensorFlow 官网 上查询 Windows 中 GPU 版本的 TensorFlow 和 Python 版本对应表(部分)。

Windows 中 GPU 版本的 TensorFlow 和 Python 版本对应表

得到我们需要的版本对应信息。

VersionPython versionCompilerBuild toolscuDNNCUDA
tensorflow_gpu-2.7.03.7-3.9MSVC 2019Bazel 3.7.28.111.2

MSVC 2019:(Microsoft Visual C++ Compiler)是微软的编译器。
Bazel 5.1.1:是 Google 开发的一种构建工具,可以自动化地构建和测试大型代码库。
本文使用 Anaconda3 工具安装 CUDA 所以不涉及到这两个。

 

cuDNN: 深度神经网络库(CUDA Deep Neural Network library)主要作用是在CUDA平台上加速深度神经网络的训练和推理过程。
CUDA:是 NVIDIA 的并行计算平台和应用编程接口(API)。
CUDA Toolkit:是由 NVIDIA 提供的一套工具集合,它包含了编写、编译、调试和优化 CUDA 应用程序所需要的各种组件。简言之,目标环境中需要安装 CUDA Toolkit 。当提到 CUDA 版本时,通常是指 CUDA Toolkit 的具体版本号。所以 CUDA Toolkit 版本为11.2。

2.2 接下来查看本机显卡即驱动是否 支持 cudatoolkit11.2

打开 命令提示符 [win + r -> cmd -> 确定]。

vidia-smi命令用于查询 NVIDIA GPU 的状态和信息。

nvidia-smi

显示驱动版本为472.19,可安装 CUDA 的最高版本为11.4,满足目标环境要求。

综上共要安装:python3.7,cudatoolkit11.2,cudnn8.1,tensorflow2.7。

三、配置 Python3.7 环境

使用到的软件:Anaconda3 + PyCharm 2024.1.4(Professional Edition)

3.1 Anaconda 创建 Python3.7 环境

3.1.1 Anaconda Navigator 方式

Environments -> Create -> Packags选择3.7.x(x表示任意),名字任意即可。

3.1.2 Anaconda Prompt 方式

命令行 conda create -n 名称 python=版本号

具体步骤

(1)打开 Anaconda Prompt

(2)输入命令:

conda create -n TensorFlow2.7 python=3.7 

y

(3)安装完成后,可按照提示 conda activate TensorFlow2.7 切换到 TensorFlow2.7 环境下输入命令行继续安装。本文使用 PyCharm 连接到新建的 TensorFlow2.7 环境后继续安装其他包。

3.2 Pycharm 使用 Anaconda 中 TensorFlow2.7 环境

之后点击确定,加载完毕后再点击确定。这样就可以在 Pycharm 中使用 TensorFlow2.7 环境。

四、配置 cudatoolkit11.2,cudnn8.1,tensorflow2.7 环境

4.1 在 Pycharm 中安装 cudatoolkit11.2 和 cudnn8.1

(1)打开本地终端

(2)下载 cudatoolkit11.2 和 cudnn8.1

先查找

 conda search cudatoolkit

但是没有对应版本

(TensorFlow2.7) PS D:\CSDN\TensorFlow2.7_workspace> conda search cudatoolkit
Loading channels: done
# Name                       Version           Build  Channel             
cudatoolkit                      8.0               4  pkgs/main           
cudatoolkit                      9.0               1  pkgs/main           
cudatoolkit                      9.2               0  pkgs/main           
cudatoolkit                 10.0.130               0  pkgs/main           
cudatoolkit                 10.1.168               0  pkgs/main           
cudatoolkit                 10.1.243      h74a9793_0  pkgs/main           
cudatoolkit                  10.2.89      h74a9793_0  pkgs/main           
cudatoolkit                  10.2.89      h74a9793_1  pkgs/main
cudatoolkit                 11.0.221      h74a9793_0  pkgs/main
cudatoolkit                   11.3.1      h59b6b97_2  pkgs/main
cudatoolkit                   11.8.0      hd77b12b_0  pkgs/main

所以用

conda search cudatoolkit -c conda-forge

查询到

cudatoolkit                   11.2.0      h608a323_7  conda-forge
cudatoolkit                   11.2.0      h608a323_8  conda-forge
cudatoolkit                   11.2.1      h7a7aa70_8  conda-forge
cudatoolkit                   11.2.2     h7d7167e_10  conda-forge
cudatoolkit                   11.2.2     h7d7167e_11  conda-forge
cudatoolkit                   11.2.2     h7d7167e_12  conda-forge
cudatoolkit                   11.2.2     h7d7167e_13  conda-forge
cudatoolkit                   11.2.2     h933977f_10  conda-forge
cudatoolkit                   11.2.2      h933977f_8  conda-forge
cudatoolkit                   11.2.2      h933977f_9  conda-forge

这句命令行是在 conda-forge 通道(channel)中搜索可用的 cudatoolkit 包。(conda 默认的 channel 是defaults,但这个channel包不全。)

接下来同样用 conda-forge channel 下载 cudatoolkit 11.2.0

conda install cudatoolkit==11.2.0 -c conda-forge

输入y(同意安装),等待一段时间后,显示done说明安装成功。

按照同样方法下载 cudnn8.1,命令行为:

  1. conda search cudnn -c conda-forge
  2. conda install cudnn==8.1.0.77 -c conda-forge

之后可以检查下是否安装成功,即

conda list

显示如下,说明安装成功。

cudatoolkit               11.2.0               h608a323_8    conda-forge
cudnn                     8.1.0.77             h3e0f4f4_0    conda-forge

(3)安装 tensorflow2.7

发现,conda search 不到 tensorflow2.7

  1. conda search tensorflow-gpu
  2. conda search tensorflow-gpu -c conda-forge

于是使用 Python 的包管理工具 pip

pip index versions tensorflow-gpu   

得到

Available versions: 2.12.0, 2.10.1, 2.10.0, 2.9.3, 2.9.2, 2.9.1, 2.9.0, 2.8.4, 2.8.3, 2.8.2, 2.8.1, 2.8.0, 2.7.4, 2.7.3, 2.7.2, 2.7.1, 2.7.0, 2.6.5, 2.6.4, 2.6.3, 2.6.2, 2.6.1, 2.6
.0, 2.5.3, 2.5.2, 2.5.1, 2.5.0, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0, 2.3.4, 2.3.3, 2.3.2, 2.3.1, 2.3.0, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.4, 2.1.3, 2.1.2, 2.1.1, 2.1.0, 2.0.4, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 1.15.5, 1.15.4, 1.15.3, 1.15.2, 1.15.0, 1.14.0, 1.13.2, 1.13.1

所以,直接下载 2.7.0 即可。

pip install tensorflow-gpu==2.7.0         

等待下载完毕后,完成目标环境的配置。

五、测试环境安装

让GPT生成个简单的测试程序

  1. import tensorflow as tf
  2. # 打印TensorFlow版本
  3. print("TensorFlow version:", tf.__version__)
  4. # 列出所有物理设备
  5. physical_devices = tf.config.list_physical_devices()
  6. # 打印所有物理设备
  7. for device in physical_devices:
  8. print(device)
  9. # 检查是否有GPU设备
  10. gpus = tf.config.list_physical_devices('GPU')
  11. if gpus:
  12. print("GPUs Found:")
  13. for gpu in gpus:
  14. print(gpu)
  15. else:
  16. print("No GPUs found.")
  17. # 创建两个张量
  18. a = tf.constant(2.)
  19. b = tf.constant(4.)
  20. # 在默认设备上执行乘法操作
  21. result = a * b
  22. print(result)

运行结果

TensorFlow version: 2.7.0
PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU')
PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')
GPUs Found:
PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')


2024-07-23 21:21:33.269228: I tensorflow/core/platform/cpu_feature_guard.cc:151] 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.
2024-07-23 21:21:33.793438: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1525] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 1321 MB memory:  -> device: 0, name: NVIDIA GeForce MX350, pci bus id: 0000:01:00.0, compute capability: 6.1


tf.Tensor(8.0, shape=(), dtype=float32)

红字部分表示 成功 检测并初始化了 NVIDIA GeForce MX350 GPU 作为计算设备。

再测试个能用到 GPU 的程序。构建和训练一个卷积神经网络(CNN)以识别 CIFAR-10 数据集的图像。

  1. import tensorflow as tf
  2. from tensorflow.keras import datasets, layers, models
  3. # Check GPU availability
  4. print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))
  5. # Load and prepare the CIFAR10 dataset
  6. (train_images, train_labels), (test_images, test_labels) = datasets.cifar10.load_data()
  7. # Normalize pixel values to be between 0 and 1
  8. train_images, test_images = train_images / 255.0, test_images / 255.0
  9. # Build the CNN model
  10. model = models.Sequential()
  11. model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
  12. model.add(layers.MaxPooling2D((2, 2)))
  13. model.add(layers.Conv2D(64, (3, 3), activation='relu'))
  14. model.add(layers.MaxPooling2D((2, 2)))
  15. model.add(layers.Conv2D(64, (3, 3), activation='relu'))
  16. model.add(layers.Flatten())
  17. model.add(layers.Dense(64, activation='relu'))
  18. model.add(layers.Dense(10))
  19. # Compile and train the model
  20. model.compile(optimizer='adam',
  21. loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
  22. metrics=['accuracy'])
  23. history = model.fit(train_images, train_labels, epochs=10,
  24. validation_data=(test_images, test_labels))
  25. # Evaluate the model
  26. test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
  27. print('\nTest accuracy:', test_acc)

运行时,查看任务管理器,发现用到了 GPU 的一些内存。所以到此为止,目标环境安装成功。

六、常见问题

6.1 未找到:TensorFlow 2.6以上的版本对应表。

将网站右上角语言改为 English 即可,可能中文网页还没更新。

七、注

7.1 包管理工具冲突

本文共可能涉及到 pip、conda默认通道、conda-forge通道,下载各种包,有概率导致不同方式下载的包不完全兼容。这个暂时没遇到,不会解决,或许可以尝试卸载之后重新换下载方式。

可以参考 替换 conda install cudatoolkit 的 pip 备选方案设置优先使用conda-forge 这些文章。

也可以看看知乎的讨论——为什么有些人宁愿花费很多时间去自己手工配置Python环境, 也不用Anaconda?

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

闽ICP备14008679号