• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程

互联网 diligentman 5天前 9次浏览

前言:
由于电脑发生故障,重装了一下系统。所以最近需要重新搭建深度学习环境。刚好趁此机会,记录一下我的安装的和配置过程,给刚入门深度学习的小伙伴们一个参考。

文章目录

    • 一、安装Anaconda3
    • 二、安装PyCharm
    • 三、安装TensorFlow2.2
      • 3.1 创建虚拟环境
      • 3.2 安装TensorFlow2.2
      • 3.3 检查是否安装成功
    • 四、安装nvidia驱动
    • 五、安装Cuda10.1
      • 5.1.查看电脑已装的cuda版本
      • 5.2 安装Cuda
    • 六、安装Cudnn7.6
    • 七、检查安装与配置是否成功

一、安装Anaconda3

首先去Anaconda官网下载Anaconda3,我安装的版本是Anaconda3 2020.02

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程

具体安装步骤,可以参考我之前的记录:

Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建

二、安装PyCharm

首先去PyCharm官网下载PyCharm社区版,我安装的版本是pycharm-community-2020.1.3

按照提示直接安装即可,这个步骤就不赘述了!

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程

三、安装TensorFlow2.2

首先说明一点,对于版本TensorFlow <= 2.0.0,安装TensorFlow是区分cpu和gpu的。到TF2.0.0版本之后,cpu和gpu合并了。也就是说采用命令pip install tensorflow默认安装的是最稳定的TF2版本,同时支持cpu和gpu。

3.1 创建虚拟环境

由于不同的深度学习项目可能需要配置不同的版本,所以这里推荐使用conda建立虚拟环境,让项目间的环境隔离,互不干扰。

1)首先,从开始菜单找到并打开Anaconda Prompt。

2)然后,输入以下命令,新建一个虚拟环境

conda create -n tf2.2 python==3.7

3)等创建完毕后,进入虚拟环境

conda activate tf2.2

3.2 安装TensorFlow2.2

没有换源的情况直接下载速度会非常慢,所以这里使用国内源下载:

pip install -i https://pypi.douban.com/simple tensorflow==2.2.0

下载完成后,可以看到如下信息:

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程
一般情况下,这就意味着安装成功了!

3.3 检查是否安装成功

1)打开PyCharm,新建一个工程 First_Project

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程
2)配置虚拟环境

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程
3)选择合适的解释器,然后点击OK

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程
4)进入刚才新建的工程First_Project,新建一个python脚本mian.py,输入:

import tensorflow as tf
print(tf.__version__)

点击运行,出现以下结果表示安装成功!

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程
输出的2.2.0即表示已安装的TensorFlow版本,红色警告是因为还没有安装Cuda和Cudnn,不能支持gpu训练。接下面就来讲解如何配置gpu。

注:如果报错提示numpy有问题,多半是因为不兼容,这时需要卸载numpy,再重新安装对应版本的numnpy1.19.3

四、安装nvidia驱动

首先,在设备管理器中查看电脑是否已经安装驱动,如果安装了就跳过这一步

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程

如果没有安装,就需要去英伟达官网下载对应对应版本的驱动,我的显卡是RTX 2070,所以我选择对应版本的:

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程
驱动安装的教程网上比较多,这里就不做展开了。

五、安装Cuda10.1

查看TensorFlow官网得知,TensorFlow2.2支持Cuda10.1以及Cudnn7.6.x,如下图所示:
Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程

5.1.查看电脑已装的cuda版本

Win+R—输入cmd—输入:nvcc --version
检查看到,我这台机器上的cuda是8.0版本的,比较老了,所以下面我要先进行卸载。

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程
如果之前没有装过cuda,则掉过这一步。

5.2 安装Cuda

根据版本要求,选择 Cuda10.1下载下来,然后点击exe运行。选择自定义安装:

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程
选择下一步,然后等待安装完成。安装完成后,在C:Program Files目录下可以看到这两个文件:

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程

六、安装Cudnn7.6

首先下载 Cudnn7.6,然后进行解压。解压后如下:

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程
然后,将解压后的文件全部复制粘贴至C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.1目录下,如下图所示:

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程
完成之后,可再用nvcc --version查看cuda是否安装成功:

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程

七、检查安装与配置是否成功

在刚才新建的工程First_Project中,复制一个简单的深度学习demo至main文件中,代码如下:

代码来源:TF2.0深度学习实战(一):分类问题之手写数字识别:

import tensorflow as tf  # 导入TF库
from tensorflow.keras import layers, optimizers, datasets, Sequential, metrics  # 导入TF子库

# 1.数据集准备
(x, y), (x_val, y_val) = datasets.mnist.load_data()  # 加载数据集,返回的是两个元组,分别表示训练集和测试集
x = tf.convert_to_tensor(x, dtype=tf.float32)/255.  # 转换为张量,并缩放到0~1
y = tf.convert_to_tensor(y, dtype=tf.int32)  # 转换为张量(标签)
print(x.shape, y.shape)

train_dataset = tf.data.Dataset.from_tensor_slices((x, y))  # 构建数据集对象
train_dataset = train_dataset.batch(32).repeat(10)  # 设置批量训练的batch为32,要将训练集重复训练10遍

# 2.网络搭建
network = Sequential([
    layers.Dense(256, activation='relu'),  # 第一层
    layers.Dense(128, activation='relu'),  # 第二层
    layers.Dense(10)  # 输出层
])
network.build(input_shape=(None, 28*28))  # 输入
# network.summary()

# 3.模型训练(计算梯度,迭代更新网络参数
optimizer = optimizers.SGD(lr=0.01)  # 声明采用批量随机梯度下降方法,学习率=0.01
acc_meter = metrics.Accuracy()  # 创建准确度测量器
for step, (x, y) in enumerate(train_dataset):  # 一次输入batch组数据进行训练
    with tf.GradientTape() as tape:  # 构建梯度记录环境
        x = tf.reshape(x, (-1, 28*28))  # 将输入拉直,[b,28,28]->[b,784]
        out = network(x)  # 输出[b, 10]
        y_onehot = tf.one_hot(y, depth=10)  # one-hot编码
        loss = tf.square(out - y_onehot)
        loss = tf.reduce_sum(loss)/32  # 定义均方差损失函数,注意此处的32对应为batch的大小
        grads = tape.gradient(loss, network.trainable_variables)  # 计算网络中各个参数的梯度
        optimizer.apply_gradients(zip(grads, network.trainable_variables))  # 更新网络参数
        acc_meter.update_state(tf.argmax(out, axis=1), y)  # 比较预测值与标签,并计算精确度
    if step % 200 == 0:  # 每200个step,打印一次结果
        print('Step', step, ': Loss is: ', float(loss), ' Accuracy: ', acc_meter.result().numpy())
        acc_meter.reset_states()  # 每一个step后准确度清零

点击运行,开始训练,可得到如下结果:

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程
第一行红色的字体,表明这次成功的加载了动态库,可以使用GPU进行训练了。

如果你想进一步确定GPU的使用状态,可以在cmd命令行输入:nvidia-smi 进行查看,如下图所示:

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程
最后,如果你在学习AI之路上,有任何问题,可以加入群聊,我们一起讨论~

Anaconda3+PyCharm+Cuda10.1+Cudnn7.6+tensorflow2.2安装与配置教程


喜欢 (0)