在服务器上创建可使用GPU的pytorch和Tensorflow环境
准备工作
注:本教程默认你使用的服务器上已经安装好了cuda和anaconda,若没有安装请联系服务器管理员安装,或是按照https://developer.nvidia.com/cuda-downloads官网的提示自行安装。
- 确认服务器上可用的GPU及以安装好的cuda版本
nvidia-smi
nvcc-V
二者版本不一致的情况下请参看
- 查看当前用户的环境变量
env
HOME是当前用户创建新的conda环境默认的位置,LD_LIBRARY_PATH是cuda的路径。由于服务器上home文件夹的空间一般都比较小,在创建环境时可以在别的位置创建。具体见下文。
创建新的conda环境
- 如果需要改变创建conda环境默认的位置,可以如下图修改配置文件。
vim ~/.condarc
创建好的环境会在/your_path/conda/环境名称下,缓存的包会在conda_pkgs下。
- 用下面的命令创建并切换到新创建的环境
conda create -n 环境名称
source activate 环境名称
- 添加conda国内镜像源
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/
# 中科大镜像源,你也可以查询添加更多的源
# conda config --remove-key channels 该命令可以删除所有用户添加的源
- 查询当前conda环境下所有已安装的包
conda list
安装TensorFlow-GPU
- 首先根据服务器上cuda的版本和自身需要,查询TensorFlow和cudatookit的对应关系,见https://www.tensorflow.org/install/source#linux
- 使用conda或pip安装tensorflow-gpu和cudatoolkit
- conda安装,使用如下的命令
conda install tensorflow='版本号'
#若需要安装TensorFlow1,使用 conda install tensorflow_gpu='版本号'
conda install cudatoolkit='版本号'
- pip安装
先说一下pip安装和conda安装的关系。经过我的测试,pip安装的包除了可以使用
pip list
查看外,使用
conda list
也可以查看到,反之则不行。conda安装包的目录是在上文所说的目录下,而pip安装的目录则有所不同。若当前conda环境中有pip时,则会安装到当前conda环境中python的site-package中,若当前conda 环境中没有pip,则会使用服务器python目录下的pip安装到服务器python环境中。为了隔离不同的环境,在使用pip安装包前,需要先查看当前conda环境中有无pip,没有则先安装pip。使用命令
which pip
查看当前使用的是哪个pip。
确定好pip安装的位置后,使用如下的命令安装TensorFlow
pip install tensorflow=='版本号'
# pip好像是装不了cudatoolkit,需要用conda安装
安装pytorch
- pytorch的安装比较方便,直接在官网就可以查询到对应的命令。https://pytorch.org/get-started/locally/
我踩过的坑
- cudatoolkit的版本不一定要跟cuda一致,但应该要低于cuda 的版本。安装时一定要选择对应的cudatoolkit安装。
- 在conda安装包时,经常会出现找不到包的问题。除了使用命令conda search 包名来找之外,终极方法是离线安装。在官网https://anaconda.org/可以查询到提供的所有包,例如找cudatoolkit11.3:
选择合适的版本下载并上传到服务器,在目录下
conda install 下载的包名
即可安装。