ubuntu18系统anaconda安装tensorflow——补充

ubuntu18系统anaconda安装tensorflow_qq_39429669的博客-CSDN博客

安装的过程主要思考两个问题:

  • 虚拟环境(比如conda install tensorflow-gpu==1.2.1自动安装)安装的CUDA、cudnn是否可用,是否会和在系统安装的CUDA、cudnn冲突,如果采用这种方式,是否可以不用提前在系统中安装CUDA、cudnn。
  • tensorflow与CUDA、cudnn的版本兼容,特别是分清上兼容还是下兼容。

接下来会针对这两个问题和其他问题进行说明。

一.虚拟环境中cuda版本与系统cuda版本

虚拟环境中cuda版本与系统cuda版本不同有什么影响


1.虚拟环境中的cuda和系统安装的cuda是互不影响的,所以在虚拟环境中放心安装你需要的cuda版本。安装之后为了验证时候安装成功,在终端运行了nvcc -V(V大写),很奇怪的发现和系统安装的cuda是一个版本。其实这个命令执行之后就是获得系统安装的版本,如果想要看虚拟环境中安装的版本应该运行conda list | grep cuda。

2.github上不同的项目所支持的pytorch版本是不一样的,而pytorch版本和cuda版本之间又是互相依赖的,所以如果可以利用anaconda灵活地在不同cuda版本间切换将是非常方便。我们可以在conda创建的不同虚拟环境中安装不同的cuda和cudnn版本,以此来实现不同cuda版本间的切换。最好一个项目创建一个虚拟环境,这样比较好。

3.但是!!cuda版本不能是任意的欧!需要安装与显卡对应的cuda和cudnn,这样才可以用显卡进行训练。小白亲测,在anaconda虚拟环境中配置相应版本的cuda发现运行代码的时候出现错误,提示显卡能够支持cudnn>=9000,而现在cudnn=8000,这个时候要升级虚拟环境中的cuda,cudnn版本和安装的pytorch版本,这个需要查阅相关文件,看看自己的电脑需要安装什么版本的cuda,cudnn,pytorch。如果不正确安装在使用显卡跑网络的时候会出现问题。

4.除非你打算安装CUDA 10.0并自行编译 TensorFlow 或 PyTorch ,否则不要自行安装 CUDA 和 cuDNN!安装了也可以使用。因为版本兼容问题是个大坑,而网上很多教程却避而不谈。其实最简单稳妥的办法就是通过 Anaconda 安装 TensorFlow ,让它来安装正确的依赖 —— 例如 CUDA 和 cuDNN。

操作实例:安装驱动-不知是否在系统上安装了cuda和cudnn-在环境中conda安装cuda和cudnn-不知是否安装tensorflow

千万不要这种方式,conda安装tensorflow可以自动安装对应版本的cuda和cudnn,不需要在环境中提前安装cuda和cudnn

1显卡驱动

显卡驱动安装适合本机显卡的版本。如果以前已经安装可以直接跳过。

链接

2cuda安装


2.1 确定cuda版本


安装好显卡驱动后,使用nvidia-smi命令可以查看这个显卡驱动可以安装的最高的cuda版本是多少,如下:
Driver Version: 461.40 表明当前驱动版本是461.40
CUDA Version: 11.2 表明当前驱动可以安装的cuda最高版本是11.2

 在这里插入图片描述

上面虽然显示的当前驱动版本461.40可以安装的cuda最高版本是11.2,但是我们还不能直接就认定我们就安装cuda 11.2,还需要查看pytorch的版本要求,比如我想安装pytorchv1.8.0,如下:

在这里插入图片描述

pytorchv1.8.0 要求的cuda版本是11.1,那我就可以确定安装cuda11.1

2.2查看conda支持的cuda版本

注意

  • 如果是第一次安装anaconda,需要先修改镜像

链接

  • 要先使用conda activate name命令把conda环境激活到你想要安装的那个环境。
conda search cudatoolkit
# 查看可以用来安装的cudatoolkit的所有版本都有哪些
conda search cudatoolkit --info
# 查看所有列出来的cudatoolkit的详细信息,包括版本号version,文件网址url,依赖项dependencies
# 文件网址url:
# 直接conda install cudatoolkit,通常下载安装包的速度很慢,因而可以用上面给出的文件网址url来用下载工具去下载这个包,再去本地安装
# 依赖项dependencies:
# 想要使用cudatoolkit,还需要安装什么才可以使用。

执行conda search cudatoolkit --info命令后,会显示出源内所有的cuda版本,以及下载地址,如图所示
在这里插入图片描述

2.3下载cuda

找到自己想要的cuda版本后,先把cuda下载到本地。首先复制url字段里的下载链接,然后用命令cd到想要下载的目录,执行如下代码下载

wget 你刚刚复制的链接地址

2.4安装cuda

执行如下命令进行安装,因为是通过本地安装的,所以需要写明本地包的路径

# 然后安装本地包
conda install --use-local 本地cuda包所在的路径

3cudnn安装

3.1确定cudnn版本

在cudnn仓库中找到适用于某个cudatoolkit版本的cudnn版本

# cudnn仓库
https://developer.nvidia.com/rdp/cudnn-archive
# 如下
在这里插入图片描述

适用于CUDA 11.1 的 cudnn 有多个版本。


3.2查看conda仓库中有哪些cudnn版本

conda search cudnn


# 下图中cudnn 8.1.0.77 出现了两个版本,因而可以先运行一下conda install cudnn=8.1.0.77,看一下默认安装的是哪个版本,然后再决定去下载哪个版本的cudnn 8.1.0.77
在这里插入图片描述


# 查看详细信息,并根据提供的网址去下载到本地

conda search cudnn --info


# 之后本地安装即可
在这里插入图片描述

3.3下载cudnn版本


还是复制你想要版本的cudnn的下载地址,使用wget 链接地址进行下载

wget 链接地址

3.4安装cudnn

conda install --use-local 本地cudnn包所在的路径



4测试安装是否成功


在虚拟环境中安装完cuda和cudnn想要测试是否安装成功,不能使用nvcc -V命令测试,需要

conda list | grep cuda

也可以在虚拟环境中安装pytorch包进行测试,十分复杂不建议。

安装pytorch
首先安装与cuda相匹配的pytorch和torchvision包,可以去pytorch官网查询。

因为我的cuda版本是11.0,支持的pytorch版本为1.7.1,所以我安装的是这俩个,你可以根据你的需要安装。

conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0

测试cuda版本
装好pytorch后,命令行输入python,进入python的命令行,导入torch包
查询cuda版本

print(torch.version.cuda)

查询cudnn版本

print(torch.backends.cudnn.version())

如图所示
在这里插入图片描述

5虚拟环境安装cuda和cudnn注意事项


注意1可以直接用conda install 包名==版本


在conda环境中,可以直接用conda装cuda和cudnn,缺点是conda源中没有全部版本的cuda和cudnn,而且更新较慢。

# 查看conda源中可以安装的cuda和cudnn版本
conda search cuda
conda search cudnn
# 安装
conda install cuda==版本  # 可指定版本
conda install cudnn==版本   # 可指定版本



注意2pytorch只自动安装cuda


和安装tensorflow不同的是,pytorch官网介绍的安装命令附带了下载和安装cuda,但是没有附带cudnn,所以还需要额外安装cudnn。
如下:

在这里插入图片描述

按照上面的命令安装好(不用conda安装cudnn)之后,使用网上的“检测pytorch的gpu是否可用的命令“检测时显示gpu可用,但是没有cudnn,所以还是不能用。

# 检测pytorch的gpu是否可用的命令

import torch

torch.cuda.is_available()


所以要用conda命令安装cudnn


安装torch和torchvision时候,使用pip命令,不要用conda命令,很容易断掉

pip install torch==1.7.1+cu101 torchvision==0.8.2+cu101 torchaudio===0.7.2 -f https://download.pytorch.org/whl/torch_stable.html


注意3conda虚拟环境安装CUDA路径

# liux中
https://blog.csdn.net/Mr__George/article/details/102972958


注意4conda install临时用国内源

conda install cudatoolkit=9.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/
conda install cudnn=7.1.4 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/
#-c代表--channel


二.tensorflow与CUDA、cudnn的版本兼容

参考你所需要的Tensorflow版本,安装对应版本的cuda,这点很重要!!!!实际中强烈推荐严格按照对应关系进行环境的安装:tensorflow与CUDA、cudnn的版本向上兼容还是向下兼容说不清楚

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

版本选择总结:

  • 显卡版本一定不能低,而且支持向后兼容,因此越高越好。nvidia-smi查看Driver Version

对于pytorch:

  • 可以进官网的install部分直接确定

对于tensorflow:

  • 首先确定tensorflow和python的版本(python3.6支持多数版本,是个不错的选择)
  • 如果需要gpu支持,查看tensorflow对应的tensorflow-gpu所需要的cuda和cudnn版本
     

安装流程总结:

流程1:

新建环境装python, 尝试先安装对应的cudatoolkit、cudnn(这个可以conda search cudnn),再装适合的tensorflow。

流程2:

已知所需tensorflow的版本,查找对应的python版本,新建环境装py,再装对应版本的tensorflow、cuda、cudnn。

一般在python中安装tensorflow的gpu版本时,pip会检查tensorflow依赖的其他的包,如果依赖的包没有安装,则会先安装最新版本的依赖包。这时候tensorflow的gpu版本依赖cudatoolkit和cudnn程序包,pip就会安装最新版本的cudatoolkit和cudnn程序包,最终导致gpu驱动版本和cuda运行时版本不匹配。

从驱动和运行时的版本对应关系来看,版本为384.81的驱动程序 对应的 运行时版本是9.0,也就是说我们在python中安装cudatoolkit和cudnn程序包版本9.2是过高了。

因为系统中依赖GPU驱动的程序比较多,一般出现这种情况,我们都是更改cudatoolkit和cudnn程序包的版本。

于是,先卸载python中安装cudatoolkit和cudnn程序包:pip uninstall cudnn ; pip uninstall cudatoolkit

然后安装对应版本的cudatoolkit和cudnn程序包:pip install cudatoolkit=9.0;pip install cudnn

注:不要自行安装CUDA和cuDNN,最简单有效的方法是通过Anaconda安装Tensorflow,让它自动安装正确的依赖
 

这个安装天时地利人和,必须各版本适配。非常建议!!网上查找自己显卡成功过的适配模式!!!下面分享一些安装成功的环境。愿大家都能成功!!!

cuda安装有anaconda管理,不直接安装于系统中!!如果你使用了anaconda,那么其实cuda套件安装过程十分简单。

 

三.conda安装和pip安装  

在官方文档中介绍了在Anaconda中安装TensorFlow有两种方法,一种是使用conda安装,另一种是使用pip安装。在实际操作时发现由于网络原因,稍大一点的安装包就会长时间卡住无响应。可以考虑将需要的安装包下载后以local模式进行安装,在操作中发现pip安装可下载的资源比较多,而conda安装资源比较难找,所以采用pip的方式进行安装。

在conda安装时,可以看到TensorFlow需要依赖的package及版本如下:

请问大神们,pip install 和conda install有什么区别吗? - HexUp的回答 - 知乎

请问大神们,pip install 和conda install有什么区别吗? - PP鲁的回答 - 知乎

conda是否会使用pip install从pypi更新软件包? - IT屋-程序员软件开发技术分享社区

问题描述:我使用 Anaconda ,并且可以通过conda install获得这些软件包是相当广泛的.但是,有时候我确实需要安装conda存储库中不可用的软件包,因此请从pypi 取而代之. 运行命令conda update --all时,conda还会更新这些pypi软件包吗?还是我必须单独更新它们? conda文档似乎没有答案. 这个问题和答案似乎表明没有, conda不管理pypi软件包,但我仍然不确定. 

推荐答案:否,conda updateconda install不会更新随pip安装的软件包(或使用pip安装的软件包).

这些conda命令仅检查您的默认" anaconda-通道或使用-c指定的通道,它们会忽略其他所有内容. conda list是一个例外,它还显示了随pip安装的软件包,这些软件包被标记为<pip>,并且不会被更新.

不止是tensorflow,在anaconda环境中安装其他包时,也有conda install和pip install两种方式,要根据需求选择合适的方式。安装相同的包时,一种方式不行,可以试试另一种。在anaconda环境中安装cuda和cudaa时,好像只有conda install一种方式。

在pip安装模式下,根据安装过程的提升,将对应版本的安装文件从本文最末的Python安装包下载地址中下载到本地。比如在此次安装过程中,参考链接作者手动下载了几个比较大的安装文件,如下所示。我认为有些麻烦了,网不好可以多等一会,也可以使用国内源,并且我安装的时候网还可以。

pip install numpy-1.11.2-cp27-cp27mu-manylinux1_x86_64.whl
pip install protobuf-3.0.0-py2.py3-none-any.whl
pip install tensorflow-0.11.0rc0-cp27-none-linux_x86_64.whl

Pytorch的安装需要在其官网上下载whl文件。但非常不幸的是,pytorch.org 需要,所以我将安装包下载下来,有需要的可以取用。
https://pan.baidu.com/s/1dfn2QgxZ3v17sdnz4vr1NA
在pytorch文件路径下输入

pip install torch-0.4.0-cp36-cp36m-linux_x86_64.whl
pip install torchvision

操作实例:通过tensorflow cuda和cudnn的安装,介绍conda install和pip install两种安装方式

搜索Tensorflow:
安装之前可以搜索都有什么版本,是否有自己所需要的匹配版本:

conda search tensorflow-gpu
或 pip search tensorflow-gpu

pip search 无法正常工作,因为官网暂时关掉了这个功能,可以直接去官网搜索合适版本

linux ubuntu pip search报错 Fault: <Fault -32500: “RuntimeError: PyPI‘s XMLRPC API is currently disab_Hello Word!-CSDN博客

安装tensorflow

conda install  tensorflow-gpu  #默认最新版本 当前为cuda 11.0
or
conda install  tensorflow-gpu==1.14.0

pip install tensorflow-gpu==1.15.0

pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.2.0-cp35-cp35m-linux_x86_64.whl

如果找不到合适的源,就指定合适的网址或者将conda换成pip


搜索keras版本:

conda search keras-gpu
或 pip search keras-gpu

安装keras:

conda install keras-gpu==版本号
conda install keras==版本号

安装cudatoolkit

conda install -c anaconda cudatoolkit  #-c代表--channel。 它用于指定搜索包的频道  默认最新版本
or
conda install cudatoolkit=10.0 # 若需指定版本

安装cudnn

conda install -c anaconda cudnn  #若上步指定了版本,这里将做自动匹配~
conda install  cudnn  = 7.3.1

conda install -c spyder-ide spyder=3.0.0 加一个-c表示从http://anaconda.org下载资源包

有些包在conda默认的channels中不包含,比如cudatoolkit-8.0,cudnn等,这时只需要在conda install指令后加上-c anaconda即可。比如要下载cudatoolkit-8.0,在只需要输入

conda install -c anaconda cudatoolkit=8.0

 conda install -c anaconda - Runtime69 - 博客园

conda install临时用国内源

conda install cudatoolkit=9.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/
conda install cudnn=7.1.4 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/
#-c代表--channel

并不是所有软件包都能直接安装,有一些需要指定安装源,例如做AI中经常会用到的OpenCV便是无法直接安装的,需要指定安装源,命令如下:(或者只用pip安装)

conda install --channel https://conda.anaconda.org/menpo opencv3

各人建议安装这两个深度学习框架时,选择conda方法安装,可将相关联的软件包同时安装。pip安装通常时在有特殊需求不需要关联包时。安装opencv时可以使用pip方法安装。

利用pip安装时,通常官网会相对慢一些,可以选择国内的一些镜像,比如:
清华镜像:https://pypi.tuna.tsinghua.edu.cn/simple
阿里镜像:https://mirrors.aliyun.com/pypi/simple
豆瓣镜像:https://pypi.douban.com/simple
中国科技大学镜像:https://pypi.mirrors.ustc.edu.cn/simple
可根据以下为例应用:

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
或 pip install opencv-python==3.4.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

四. 删除虚拟环境

删除整个环境:

conda remove -n 环境名称 --all

删除环境中的某个包:

conda remove --name 环境名称  包名称 

如果出现安装不成功的情况,需要把相应已存在的tensorflow文件夹删除:

cd /home/amax/anaconda3/envs/
rm -r tensorflow/   
ls #查看tensorflow文件夹是否删除exit。如果已删除成功,floww再次运rm行创建tensorflow环境命令即可。

五.Bazel不用下载

看版本对照表时发现Bazel的对应,不知道是什么,是否下载

Bazel是谷歌开源编译工具,不用下载,进行tensorflow源码安装时才需要下载。

如何评价谷歌开源的Bazel编译工具? - MKP的回答 - 知乎

bazel 安装与手动安装tensorflow - 知乎

 

虚拟环境中cuda版本与系统cuda版本不同有什么影响_bloomerOAO的博客-CSDN博客_cuda版本不同会影响模型结果

不踩坑:Ubuntu下安装TensorFlow的最简单方法(无需手动安装CUDA和cuDNN) - 知乎


conda虚拟环境中安装cuda和cudnn,再也不用头疼版本号的问题了_何飞飞的博客-CSDN博客_conda cudnn版本

在anaconda环境中使用conda命令安装cuda、cudnn、tensorflow(-gpu)、pytorch_LIWEI940638093的博客-CSDN博客_conda安装cudatoolkit

在anaconda环境中使用conda命令安装cuda、cudnn、tensorflow(-gpu)、pytorch_hellopbc-CSDN博客_conda安装cuda

还在系统中安装CUDA?Anaconda虚拟环境中安装CUDA配合Tensorflow-gpu-多版本 - 简书

Ubuntu16.04 Anaconda创建虚拟环境Tensorflow+keras+opencv_wuhongwuyan的博客-CSDN博客

7.Ubuntu16.04安装Anaconda、TensorFlow教程_xjtuse123的博客-CSDN博客_ubuntu中anaconda安装tensorflow

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值