Python——tensorflow-gpu的安装与一些问题

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

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

一、首先是Anaconda的安装

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

conda info --e

显示结果如下,它要我们激活这个base:
在这里插入图片描述
此时,我们执行

conda activate base

我们就进入了base
在这里插入图片描述
接着在这里输入

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的文件夹)
在这里插入图片描述
最后就是环境变量的配置了。在安装的时候机会有前两个环境自动配置好,而我们需要手动配置后两个:
在这里插入图片描述
至此,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)

此时结果是正常出来了,但是报出如下:
在这里插入图片描述
意思是你的 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'

结果如下:
在这里插入图片描述

扫描二维码关注公众号,回复: 9162997 查看本文章
发布了22 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/BerryNard/article/details/103660206