实验室配了一台伺服器跑深度学习,想同时装TensorFlow和pytorch可以么。该怎么装呢


可以


实验室配了一台伺服器跑深度学习,想同时装TensorFlow和pytorch可以么。

可以。

该怎么装呢

  1. 安装NVIDIA驱动
  2. 安装CUDA和cuDNN
  3. 安装conda
  4. 使用pip安装

假定你已经做完了步骤123,如果没有,参考下面的链接3。

第4步的命令如下:

pip install torch tensorflow-gpu

参考链接:

  1. https://www.tensorflow.org/install/gpu
  2. https://pytorch.org/
  3. https://dl.ypw.io/ubuntu-install-guide/#python


当然可以,一个框架的两个版本都可以。推荐使用anaconda傻瓜式搭建。

更多环境搭建教程可以加入mana社区查看

t.manaai.cn?

t.manaai.cn


当然可以。

用conda创建多个环境,每个环境下装一个框架,甚至同一个框架的不同版本都行。


最简单的办法,利用conda来就行管理

查看环境

conda info --e

创建环境:conda create -n 环境名称 python=版本

conda create -n env_name python=3.6

激活环境:conda activate 环境名称

conda activate env_name


当然可以,装十个都没有问题。如果互相之间有冲突,就用docker相互隔离开。


这个属于基本操作,完全可行。

甚至还可以安装一个框架的多个版本,利用anaconda或者vietualenv。


可以的,可以参考我最近出了一个博客《『带你学AI』开发环境配置之Windows10篇:一步步带你在Windows平台开发深度学习(TensorFlowPyTorchMXNet_CPUGPU)》:

小宋是呢:『带你学AI』开发环境配置之Windows10篇:一步步带你在Windows平台开发深度学习?

zhuanlan.zhihu.com图标

基于Conda来管理的Python环境,其实不只是多个深度学习开发框架,也支持GPU与CPU版本安装,同时也支持多个版本Cuda。原则是同一个版本Cuda下的环境都可以同时安装在同一个Python环境中,不同的Cuda版本,需要配合Conda新建新的环境来管理组织。

安装起来也很简单,手把手教学。好文推荐,觉得有用别忘点赞收藏哈。。

下面举个例子演示如何同时安装TensorFlow2、PyTorch与MXNet的GPU版本。具体操作步骤可以翻阅我的博客,这里简单介绍安装流程

1.使用conda新建python环境与替换conda源与pip源(换源操作参考全文):

conda create -n dl python=3.7

2.conda安装「cudatoolkit」与「cudnn」(版本分别为10.1与7,为了同时兼容TensorFlow2、PyTorch与MXNet)

conda activate dl
conda install cudatoolkit=10.1 cudnn=7

3.安装TensorFlow2、PyTorch与MXNet

pip install tensorflow==2.3
conda install pytorch=1.7.1 torchvision torchaudio
pip install mxnet-cu101==1.7.0

4.测试是否安装成功

这个内容可以参考之前我写的一篇文章:《『带你学AI』测试深度学习框架GPU版本是否正确安装方法:TensorFlow,PyTorch,MXNet,PaddlePaddle》

https://xiaosongshine.blog.csdn.net/article/details/108850784?

xiaosongshine.blog.csdn.net


当然可以。如果两个框架兼容,那么直接安装就行。如果不兼容那么通过conda来创建两个虚拟环境,两个框架分别装到两个环境中,需要用哪个切换就是。

https://zhuanlan.zhihu.com/p/123921247


当然可以啦,记得最开始入炼丹的坑的时候,还没有环境隔离的概念,到训练伺服器上一顿操作,我是爽了,可是隔壁同事一跑训练,怎么炸了,opencv版本不兼容,protobuf版本不对了,顿时无语。后面慢慢接触到了conda,对于Python的训练环境隔离还做得不错,但是对于caffe这种老一点,更偏向于C训练和推理的框架,问题依旧。后面接触到了docker,从此打开了新世界的大门,后面主要就是三个docker ,一个caffe,一个mxnet, 一个pytorch。主要注意和别人协商好显卡的使用就没问题,从此开启了炼丹的爬坑之旅。


肯定可以的,题主或许是对两个框架共存的兼容与冲突方面存在担忧,简单来说有两个解决方案:Anaconda和Docker

具体怎么做 ↓

1.用 Anaconda 创建两个不同深度学习框架的虚拟环境

Anaconda 是一个 python 的发行版,包括了 python 和很多常见的软体库, 和一个包管理器conda 。也就是说安装了 Anaconda ,会自动的帮你配置好一个带有常用的第三方库的 python 运行环境,你需要的是使用 Anaconda 去创建不同的虚拟环境,每个环境可以使用不同的版本的 python ,并在其 python 环境基础下使用 pip 任意安装你所需要的第三方库,包括你所说的不同的深度学习框架 Tensorflow 和 Pytorch ,不同的虚拟环境之间的运行互不干扰,可以使用命令进行任意的切换。下面简单讲一下怎么用:

(1)安装 Anaconda

以下是我觉得比较详细的几个Linux下安装Anaconda的教程,可以参考

阿飞:深度学习 | Linux安装Anaconda?

zhuanlan.zhihu.com图标IT考试网:Anaconda下载和windows/Macos/Linux环境下安装步骤及使用教程(小白专用)?

zhuanlan.zhihu.com图标

在命令行终端下可以使用以下的命令搭建你需要的环境

(2)创建或者删除虚拟环境

创建 ↓

$ conda create –name & &

比如说创建一个python版本为3.6的虚拟环境:

$ conda create -n py36 python==3.6

默认情况下,新创建的环境将会被保存在 /Users/当前用户名/anaconda3/env 目录下,

执行此操作以后,你就可以在该目录 anaconda3/env/py36/bin 下找到对应的 python3.6

删除 ↓

$ conda remove –name & –all

举例,删除名称为py36 的虚拟环境:

$ conda remove -n py36 --all

(3)激活虚拟环境

创建了虚拟环境后,需要激活切换到该虚拟环境,否则依然用的是系统的 python 环境,激活虚拟环境的命令如下:

$ conda activate &

$ conda activate py36

激活后你会看到

命令行左侧的(base)变成了(py36)这就说明已经切换到 py36 的虚拟环境下

当然你可以使用以下命令退出该虚拟环境

$ conda deactivate

命令行左侧变回原来的(base)

(4)在当前虚拟环境下使用 pip 安装深度学习框架

首先激活你需要安装 pytorch 的虚拟环境,并使用 pip install 命令安装对应的框架

比如安装1.1版本的 pytorch:

$ pip install torch==1.1

如果安装 pytorch 的过程中容易意外中断,推荐使用豆瓣源,可以加上 -i 临时指定源

$ pip install torch==1.1 -i

https://pypi.douban.com/simple

同样激活另一个虚拟环境,并使用 pip 安装你需要的 TensorFlow,就满足了你需要的两种框架共存的需求了,切换到对应环境下的 python,就可以在一台伺服器上使用不同的框架了。

2.使用 Docker 建立两个不同深度学习框架的容器

(1)基本概念

image,镜像,是一个个配置好的环境。

container,容器,是image的具体实例。

image和container的关系,相当于面向对象中类与对象的关系。

(2)使用流程

安装docker&>&>安装nvidia-docker&>&>下载镜像&>&>启动镜像、建立容器、映射目录&>&>在目录下运行程序

(3)安装Docker

现有很多安装教程,可以自己研究一下

https://www.cnblogs.com/leton/p/11674796.html

https://cloud.tencent.com/developer/article/1491566

https://www.cnblogs.com/bingmang/p/9813686.html

https://github.com/NVIDIA/nvidia-docker

http://blog.chinaunix.net/uid-10915175-id-4443127.html

(4)使用 docker 拉取镜像

Deepo 是一个几乎包含所有流行深度学习框架的 Docker 映像,拥有一个完整的可复制的深度学习研究环境。它涵盖了当前最流行的深度学习框架:theano,tensorflow,sonnet,pytorch等等

具体安装某一种框架的方式

$ docker pull ufoym/deepo

安装 TensorFlow 的镜像

$ docker pull ufoym/deepo:tensorflow

如果不想使用 Deepo,当然也可以安装其他镜像,比如pytorch的官方镜像

docker pull pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-devel

#显示已下载的所有镜像

$ docker images

#映射目录 启动镜像 调用GPU

-it 以交互模式运行 --gpus=all 调用系统中的 gpu 映射本地目录到容器中的 /workspace 路径

$ docker run -it --gpus=all -v /home/用户名/你要映射的本地目录_dir:/workspace pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-devel

这样就可以愉快地用不同的框架炼丹了,输入exit就可以在交互模式下退出镜像


如果只是做科研的话,我个人会比较推荐第一种方法


可以,虚拟机


可以的,可同时安装tensor flow,pytorch,…


用docker,你不会后悔


当然可以,建议使用docker

不光可以切换框架, python 环境

还可以切换cuda

(驱动不行)


当然可以


随便装啊,虚拟环境了解一下


题主的疑惑大概不是伺服器上能不能装两个深度学习框架,而是同一个环境内能不能装两个深度学习框架,担心两个深度学习框架同时存在于一个环境里会产生冲突。

最初我都是在命令行里面直接pip install后来发现装上了运行就报错,而且报错莫名其妙,具体什么我也忘记了,原因大概就是这个基础环境里面已经被我装了太多包了,而且各个依赖包版本也不一致。

不过后来开了个虚拟环境,每装一个框架都新开一个虚拟环境,里面只装必要的包就没有问题了。而且同一个虚拟环境都挺干净的,同时装上pytorch和tensorflow也毫无问题。

推荐使用anaconda进行包管理,miniconda,virtualenv也都行,都差不多。

大致命令如下

//创建虚拟环境
conda create -n 你的虚拟环境名称 python=3.6
//进入虚拟环境
activate 虚拟环境名称

pip install tensorflow
pip instal 你想安装的包


可以的,但要考虑两个框架对应的CUDA版本兼容问题。


可以。怕冲突可以用conda创建两个虚拟环境使用


推荐阅读:
相关文章