最近带一个学弟做毕设,深度学习方向,需要安装TensorFlow、PyTorch等深度学习框架。想当初自己是新手的时候可没少被配环境、安装深度学习框架折腾…吃一堑长一智,趁着带毕设,重新回顾一下配环境、装框架那些事儿,并形成文档,方便后期查看~~
使用anaconda安装TensorFlow、Caffe、PyTorch等深度学习框架很方便,大致思路为:首先通过anaconda创建虚拟环境(如果没有安装过anaconda,先要安装anaconda);其次在不同的虚拟环境下安装不同版本的深度学习框架(例如在一个虚拟环境上安装一个tensorflow1.4,在另一个虚拟环境中上安装一个tensorflow1.6,在另一个虚拟环境中安装pytorch),这样做的好处是一旦配置出错,可以直接删除虚拟环境包,而不影响整个系统。
conda create -n py3tf pip python=3.5
上述代码创建了一个名叫py3tf的虚拟环境(环境名字可以随便起,但最好包含tf、caffe或pytorch和对相应的版本字样,以免日后混淆),并在这个环境里安装了python3.5。
【注:】这里的python3.5和anaconda的版本没有对应关系,假设通过anaconda安装的python版本是3.6,但是这里也可以安装python3.5。
source activate py3tf
这就进入了虚拟环境,进入后你会发现命令行和之前的有所不同,这时命令行前面多了括号,括号里面含有虚拟环境的名字,之后在这种状态下安装的所有内容就都会安装在虚拟环境里,退出虚拟环境后,将不能使用该虚拟环境中安装的东西。
修改下载源主要是为了加快下载速度。
**pip源设置:**在linux系统下创建.pip文件夹,穿件pip.conf文本,写入以下内容(这里使用清华源)。
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
**conda源设置:**在终端输入
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
如果你的系统中已经安装了cuda和cudnn,这一步就不需要执行了,虚拟环境需要使用cuda和cudnn时会自动调用系统中的。但是如果你的系统的cudnn和cuda版本和所要安装的TensorFlow或者PyTorch不匹配,就需要在虚拟环境中重新安装,安装方法如下:
conda install cudnn=7.1.2
通过上述命令安装cudnn,会自动安装依赖项 cuda(也可以自己通过conda install cuda =9.0自己安装),这里我安装的cudnn版本是7.1.2。如果安装不成功的话,可以尝试加入清华的源(上述命令 加入 -c 源地址)。
pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.12.0-cp35-cp35m-linux_x86_64.whl
后面给的地址是gpu版的TensorFlow(linux环境,gpu版本,cp35-cp35m表示python的版本是python35,tensorflow的版本是1.12.0)。这里是软件包位置https://tensorflow.google.cn/install/pip找到与python版本一致的url放到这里。
【注:】有时候上述命令一次不行,需要再试一次,再不行的话就要考虑cuda与cudnn的问题了。
pip install keras
pip install opencv-python
在虚拟环境下输入python,进入python环境,看看包是否可以导入
import tensorflow as tf # 查看是否可以导入tensorflow
tf.__version__ # 查看tensorflow版本
import keras # 查看是否可以导入keras
keras.__version__ # 查看keras版本
import cv2 # 查看是否可以导入opencv
cv2.__version__ # 查看opencv版本
conda install pytorch torchvision -c pytorch
import torch
torch__version__
conda env list
source activate 虚拟环境名称
source deactivate
conda remove -n 虚拟环境名称 --all
conda remove --name $虚拟环境名称 $包名称
conda list
conda create --name py3tf16gpu --clone py3tf #根据py3tf16创造一个名称为py3tf16gpu的虚拟环境