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,命令行为:

conda search cudnn -c conda-forge 
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

conda search tensorflow-gpu   
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生成个简单的测试程序

import tensorflow as tf

# 打印TensorFlow版本
print("TensorFlow version:", tf.__version__)

# 列出所有物理设备
physical_devices = tf.config.list_physical_devices()

# 打印所有物理设备
for device in physical_devices:
    print(device)

# 检查是否有GPU设备
gpus = tf.config.list_physical_devices('GPU')
if gpus:
    print("GPUs Found:")
    for gpu in gpus:
        print(gpu)
else:
    print("No GPUs found.")

# 创建两个张量
a = tf.constant(2.)
b = tf.constant(4.)

# 在默认设备上执行乘法操作
result = a * b
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 数据集的图像。

import tensorflow as tf
from tensorflow.keras import datasets, layers, models

# Check GPU availability
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

# Load and prepare the CIFAR10 dataset
(train_images, train_labels), (test_images, test_labels) = datasets.cifar10.load_data()

# Normalize pixel values to be between 0 and 1
train_images, test_images = train_images / 255.0, test_images / 255.0

# Build the CNN model
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))

model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10))

# Compile and train the model
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

history = model.fit(train_images, train_labels, epochs=10,
                    validation_data=(test_images, test_labels))

# Evaluate the model
test_loss, test_acc = model.evaluate(test_images,  test_labels, verbose=2)
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?

  • 17
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以按照以下步骤配置AnacondaPyCharm的PyTorch环境: 1. 首先,确保你已经安装了AnacondaPyCharm,可以在官方网站上下载并按照说明进行安装。 2. 打开Anaconda Navigator,创建一个新的环境。点击"Environments"选项卡,然后点击"Create"按钮。输入一个环境名称(例如"pytorch_env"),选择Python版本(建议选择Python 3.7或更高),并点击"Create"按钮。 3. 在创建环境中,点击该环境的"Open Terminal"按钮,打开终端。 4. 在终端中,运行以下命令来安装PyTorch: ``` conda install pytorch torchvision torchaudio cudatoolkit=xx.x -c pytorch ``` 请将 "xx.x" 替换为你所需的CUDA版本。如果你不使用GPU,可以省略 `cudatoolkit` 部分。 5. 安装完成后,返回Anaconda Navigator界面,点击"Home"选项卡。 6. 在"Home"选项卡中,选择你创建的PyTorch环境,并点击右侧的三个点菜单图标。选择"Install",然后在搜索栏中输入"pycharm"。 7. 安装PyCharm社区版或专业版,然后返回Anaconda Navigator界面。 8. 点击"Environments"选项卡,找到你创建的PyTorch环境,并点击右侧的三个点菜单图标。选择"Open with Jupyter Notebook"。 9. 打开Jupyter Notebook后,点击右上角的"New"按钮,选择"Python 3"以创建一个新的Notebook。在Notebook中可以编写和运行PyTorch代码。 10. 打开PyCharm创建一个新的项目。在项目设置中,选择你创建的PyTorch环境作为项目的解释器。 现在你已经成功配置了AnacondaPyCharm的PyTorch环境。你可以在PyCharm中编写和运行PyTorch代码,并使用Anaconda Navigator中的Jupyter Notebook进行交互式开发。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值