前言

关于anaconda方式安装tensorflow(cpu版本)之前已经有博客写过了。这一次更新一下anaconda方式安装tensorflow(gpu版本),他们的区别在于TensorFlow-gpu版对安装的要求要高些,需要NVIDIA的驱动及CUDA工具支持。

1、关于CPU、GPU、CUDA、cuDNN的理解

关于这一块,我刚刚入门,就直接引入了别人写好的理解关于CPU、GPU、CUDA、cuDNN的理解
在这里插入图片描述
gpu与cpu
GPU(图像处理器,Graphics Processing Unit)和CPU(中央处理器,Central Processing Unit)在设计上的主要差异在于GPU有更多的运算单元(如图中绿色的ALU),而Control和Cache单元不如CPU多,这是因为GPU在进行并行计算的时候每个运算单元都是执行相同的程序,而不需要太多的控制。Cache单元是用来做数据缓存的,CPU可以通过Cache来减少存取主内存的次数,也就是减少内存延迟(memory latency)。GPU中Cache很小或者没有,因为GPU可以通过并行计算的方式来减少内存延迟。因此CPU的Cahce设计主要是实现低延迟,Control主要是通用性,复杂的逻辑控制单元可以保证CPU高效分发任务和指令。所以CPU擅长逻辑控制,是串行计算,而GPU擅长高强度计算,是并行计算
GPU加速是通过大量线程并行实现的,因此对于不能高度并行化的工作而言,GPU就没什么效果了。而CPU则是串行操作,需要很强的通用性,主要起到统管和分配任务的作用。
CUDA
CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。
cuDNN
cuDNN(CUDA Deep Neural Network library):是NVIDIA打造的针对深度神经网络的加速库,是一个用于深层神经网络的GPU加速库。如果你要用GPU训练模型,cuDNN不是必须的,但是一般会采用这个加速库。

2、检查硬件环境配置

(1)检查显卡驱动信息
在这里插入图片描述
先找到NVIDIA Control Panel,检查驱动版本是否支持CUNA10.0
在这里插入图片描述在这里插入图片描述
我的驱动是457.52,所以可以进行接下来的安装,如果发现电脑驱动过低,我看到有些博客有谈到可以在NVIDIA官网更新驱动
(2)安装前确定版本信息
在这里插入图片描述

我这里打算安装
在这里插入图片描述

tensorflow1.0+的版本可能更适用于初学者学习网上的代码

3、创建虚拟环境

打开Anaconda中的 Anaconda Prompt
在这里插入图片描述
输入命令创建新的虚拟环境

conda create -n TF115GPU python=3.7.0

注意安装的版本,这里的版本和上面的表格是对应的
在这里插入图片描述
在这里插入图片描述

4、激活虚拟环境

输入命令

activate TF115GPU

或者

conda activate TF115GPU

这种在服务器上输入必须加入conda
进入虚拟环境
在这里插入图片描述

5、安装CUDA

查看可供安装的版本

conda search cudatoolkit

在这里插入图片描述

查看之前我要安装的tensorflow_gpu-1.15.0,我需要安装cuda版本是10.0的
安装cuda命令

conda install cudatoolkit=10.0.130

在这里插入图片描述

我这里第一次安装的时候出现了错误
在这里插入图片描述
猜测可能访问速度过慢导致的报错,于是简单直接重新安装了一次就好了,后来查了一下关于这个错误的解决方法解决方法

5、安装cudnn

同样,先查找可安装的版本

conda search cudnn

在这里插入图片描述

我安装cudnn版本是7.6.0的,这里很多地方都说装的版本是7.4.1,但是会报错,按照自己系统的来,按照7.6.0就不会报错了
进行安装

conda install cudnn=7.6.0

在这里插入图片描述

6、安装tensorflow-gpu

同样,可以查看可安装的版本

conda search tensorflow-gpu

在这里插入图片描述

我这里安装的是tensorflow1.15.0

conda install tensorflow-gpu=1.15.0

conda安装不成功可以尝试pip安装

pip install tensorflow-gpu==1.15.0

7、安装成功进行测试

这里还是可以采用三种方法进行测试,测试方法见anaconda安装tensorflow的第四点:安装成功后进行测试(三种方法)

完成后我们可以查看安装的版本

conda list

在这里插入图片描述

重新进行测试

import tensorflow as tf

hello = tf.constant("Hello!TensorFlow")
sess = tf.Session()
print(sess.run(hello))


在这里插入图片描述
在这里插入图片描述
两种方式均安装成功

补充

ps:删除虚拟环境
我之前爬坑装了好几个虚拟环境,现在需要删除一下

conda remove -n TF113GPU --all

中间替换成自己定义的虚拟环境名

8、后期遇到的问题

(1)OpenCV
后面在使用这个环境过程中,引入OpenCV,使用imshow
报错

  File "d:/LearningData/deepLearning/tensorflow_exercise/img_base/imgReadingOrShow.py", line 17, in <module>
    cv2.imshow('image', img)
cv2.error: OpenCV(3.4.2) C:\Miniconda3\conda-bld\opencv-suite_1534379934306\work\modules\highgui\src\window.cpp:356: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'

原因
opencv是根据当前python版本自动安装对应版本的,但是用opencv中的DNN模块最好是最新版本才不会出现报错,所以更新opencv版本,通过pip进行安装
使用pip安装opencv-python:

pip install opencv-python

安装第三方包opencv-contrib-python:

pip install opencv-contrib-python

(2) Tensorflow 与numpy版本不对应

Traceback (most recent call last):
  File "d:/LearningData/deepLearning/tensorflow_exercise/img_base/imgReadingOrShow.py", line 2, in <module>
    import cv2
  File "D:\anaconda\envs\TF115GPU\lib\site-packages\cv2\__init__.py", line 8, in <module>
    from .cv2 import *
ImportError: numpy.core.multiarray failed to import

在这里插入图片描述
在修改之前我的tensorflow版本是1.15.0,而numpy版本是1.21.4.接下来进行降低版本
卸载numpy

pip uninstall numpy

尝试安装低版本的 numpy

pip install numpy==1.18.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/

在这里插入图片描述
(3)完成上两步后重新测试有了新的报错

  File "D:\anaconda\envs\TF115GPU\lib\site-packages\tensorflow_core\python\platform\tf_logging.py", line 36, in <module>
    import six
ModuleNotFoundError: No module named 'six'

这里是由于缺少 six 的包,PyInstaller打包的时候会从 Python 的安装路径或者工程目录查找包。
我们安装一下这个包

pip install six -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 

重新测试之后发现没有问题
(4)tensorflow_datasets
在后面引入tensorflow_datasets的时候提示需要安装对应的包,这里需要指定版本,tensorflow1.15.0对应的tensorflow_datasets版本应该是3.2.1,不然会出现版本不匹配问题(不要直接安装pip install tensorflow-datasets)

pip install tensorflow-datasets==3.2.1
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐