记录安装tensorflow-gpu版本时遇到的一些问题

     我现在用的时Pycharm,里面的Interpreter使用的是Anaconda的python.exe。我的想法是,把所有的package全都放在一个Interpreter里,这样的话,以后我不管运行什么文件都可以只是用这个Interpreter,从而不需要安装重复的package。
  但事实上,我请教了一些大佬,他们说tensorflow一般都单独创建一个虚拟环境,因为像tensorflow, pytorch之类谁知道混在一起就会崩了。而我看了网上的一些教程也都是让你先创建一个名为tensorflow的环境,然后安装进去之类…
再然后就是,我使用Pycharm的时候会遇到一些问题,有时候我会绕过去,但早晚还会再遇见这些坑,于是这次我又跳了进去…但最后还是跳了出来。

一、首先是Anaconda的安装

正常默认安装, 记得勾选添加环境变量。
打开Anaconda Prompt,输入

conda info --e

显示结果如下,它要我们激活这个base:

最新版本tensorflow不支持GPU_cuda


此时,我们执行

conda activate base

我们就进入了base

最新版本tensorflow不支持GPU_tensorflow_02


接着在这里输入

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==2.0.0a0

OK,tensorflow-gpu版本就已经安装完成了!

二、然后我们安装Cuda

https://developer.nvidia.com/cuda-10.0-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal 选择version10安装,然后全都默认安装到结束。

然后就是cudnn的安装

https://developer.nvidia.com/rdp/cudnn-download

下载之后解压缩,然后将文件夹的内容放到Cuda的安装目录下(需要自己建立一个名为cudnn的文件夹)

最新版本tensorflow不支持GPU_深度学习_03


最后就是环境变量的配置了。在安装的时候机会有前两个环境自动配置好,而我们需要手动配置后两个:

最新版本tensorflow不支持GPU_tensorflow_04


至此,Cuda算是安装完成了。

正常默认安装, 记得勾选添加环境变量。

三、记录一下安装tensorflow-gpu遇到的一些问题

装完之后,运行以下测试代码(来自网络)

import tensorflow as tf
import timeit

with tf.device('/cpu:0'):
    cpu_a = tf.random.normal([10000, 1000])
    cpu_b = tf.random.normal([1000, 2000])
    print(cpu_a.device, cpu_b.device)

with tf.device('/gpu:0'):
    gpu_a = tf.random.normal([10000, 1000])
    gpu_b = tf.random.normal([1000, 2000])
    print(gpu_a.device, gpu_b.device)


def cpu_run():
    with tf.device('/cpu:0'):
        c = tf.matmul(cpu_a, cpu_b)
    return c


def gpu_run():
    with tf.device('/gpu:0'):
        c = tf.matmul(gpu_a, gpu_b)
    return c


# warm up
cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print('warmup:', cpu_time, gpu_time)

cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print('run time:', cpu_time, gpu_time)

此时结果是正常出来了,但是报出如下:

最新版本tensorflow不支持GPU_Cuda_05


意思是你的 CPU 支持AVX AVX2 (可以加速CPU计算),但你安装的 TensorFlow 版本不支持。但我用的是GPU的Cuda加速,想想就不需要CPU了。虽然这些不是警告也不是错误,但看起来还是不舒服。

查找了忽略这些信息的一些方法:

os.environ["TF_CPP_MIN_LOG_LEVEL"] = '1' # 默认,显示所有信息 
os.environ["TF_CPP_MIN_LOG_LEVEL"] = '2' # 只显示 warning 和 Error 
os.environ["TF_CPP_MIN_LOG_LEVEL"] = '3' # 只显示 Error

因此,对于现在的情况,我们选择‘2’

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

结果如下:

最新版本tensorflow不支持GPU_深度学习_06


我手贱,我手贱,把显卡驱动升级到11.0了,导致现在识别不了我的GPU了,只能重新装了。。。
参考了这篇博客。

来到https://developer.nvidia.com/cuda-toolkit-archive 找到11.0,下载。我一般下载local的.exe文件。

他原本安装位置在C盘:

最新版本tensorflow不支持GPU_cuda_07


我向来是不喜欢的,改。

最新版本tensorflow不支持GPU_Cuda_08


装的时候看看我的tensorflow-gpu的版本是2.2,在对着下面的表,就升了2.4

https://tensorflow.google.cn/install/source_windows

最新版本tensorflow不支持GPU_python_09